@emmvish/stable-request 1.3.9 โ 1.3.11
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/README.md +61 -15
- package/dist/core/stable-workflow.d.ts.map +1 -1
- package/dist/core/stable-workflow.js +131 -87
- package/dist/core/stable-workflow.js.map +1 -1
- package/dist/types/index.d.ts +3 -4
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/core/send-stable-request.d.ts +0 -3
- package/dist/core/send-stable-request.d.ts.map +0 -1
- package/dist/core/send-stable-request.js +0 -170
- package/dist/core/send-stable-request.js.map +0 -1
package/README.md
CHANGED
|
@@ -61,6 +61,7 @@ All in all, it provides you with the **entire ecosystem** to build **API-integra
|
|
|
61
61
|
- [Phase Configuration](#phase-configuration)
|
|
62
62
|
- [Workflow with Request Groups](#workflow-with-request-groups)
|
|
63
63
|
- [Phase Observability Hooks](#phase-observability-hooks)
|
|
64
|
+
- [Concurrent Execution of Phases](#concurrent-execution-of-phases)
|
|
64
65
|
- [Real-World Examples](#real-world-examples)
|
|
65
66
|
- [Polling for Job Completion](#1-polling-for-job-completion)
|
|
66
67
|
- [Database Replication Lag](#2-database-replication-lag)
|
|
@@ -113,18 +114,23 @@ Most HTTP clients answer only one question:
|
|
|
113
114
|
### Core capabilities
|
|
114
115
|
|
|
115
116
|
โ
**Content-aware retries**
|
|
117
|
+
|
|
116
118
|
Retry based on response validation, not just status codes
|
|
117
119
|
|
|
118
120
|
๐ **Deterministic execution semantics**
|
|
121
|
+
|
|
119
122
|
Fixed, linear, or exponential retry strategies with hard limits
|
|
120
123
|
|
|
121
124
|
๐ง **Graceful failure handling**
|
|
125
|
+
|
|
122
126
|
Suppress non-critical failures without crashing workflows
|
|
123
127
|
|
|
124
128
|
๐งช **Trial mode / chaos testing**
|
|
129
|
+
|
|
125
130
|
Simulate failures without depending on real outages
|
|
126
131
|
|
|
127
132
|
๐ **First-class observability hooks**
|
|
133
|
+
|
|
128
134
|
Inspect every failed and successful attempt
|
|
129
135
|
|
|
130
136
|
---
|
|
@@ -132,12 +138,15 @@ Most HTTP clients answer only one question:
|
|
|
132
138
|
### Scaling beyond single requests
|
|
133
139
|
|
|
134
140
|
๐ **Batch execution with shared state (`stableApiGateway`)**
|
|
141
|
+
|
|
135
142
|
Run many requests concurrently or sequentially with shared configuration and shared state
|
|
136
143
|
|
|
137
144
|
๐ฏ **Request groups**
|
|
145
|
+
|
|
138
146
|
Apply different reliability rules to critical, standard, and optional services
|
|
139
147
|
|
|
140
148
|
๐งฑ **Hierarchical configuration**
|
|
149
|
+
|
|
141
150
|
Workflow โ Phase โ Group โ Request (predictable overrides)
|
|
142
151
|
|
|
143
152
|
---
|
|
@@ -145,19 +154,24 @@ Most HTTP clients answer only one question:
|
|
|
145
154
|
### Full workflow orchestration
|
|
146
155
|
|
|
147
156
|
๐งฉ **Multi-phase workflows with shared state (`stableWorkflow`)**
|
|
157
|
+
|
|
148
158
|
Model real-world business flows as deterministic, observable execution graphs.
|
|
149
159
|
|
|
150
160
|
๐ **Mix concurrent and sequential execution**
|
|
161
|
+
|
|
151
162
|
Parallelize where safe, serialize where correctness matters.
|
|
152
163
|
|
|
153
164
|
๐ **Stop early or degrade gracefully**
|
|
154
|
-
|
|
165
|
+
|
|
166
|
+
Stop execution early or continue based on business criticality.
|
|
155
167
|
|
|
156
168
|
๐ **Phase-level metrics and hooks**
|
|
157
|
-
|
|
169
|
+
|
|
170
|
+
Track execution time, success rates, and failure boundaries per phase.
|
|
158
171
|
|
|
159
172
|
๐งญ **Deterministic, observable execution paths**
|
|
160
|
-
|
|
173
|
+
|
|
174
|
+
Every decision is explicit, traceable, and reproducible.
|
|
161
175
|
|
|
162
176
|
---
|
|
163
177
|
|
|
@@ -1250,7 +1264,7 @@ const workflow = await stableWorkflow(
|
|
|
1250
1264
|
workflowId: 'monitored-workflow',
|
|
1251
1265
|
|
|
1252
1266
|
// Called after each phase completes successfully
|
|
1253
|
-
handlePhaseCompletion: async ({ workflowId, phaseResult,
|
|
1267
|
+
handlePhaseCompletion: async ({ workflowId, phaseResult, sharedBuffer }) => {
|
|
1254
1268
|
console.log(`Phase ${phaseResult.phaseId} completed`);
|
|
1255
1269
|
|
|
1256
1270
|
await analytics.track('workflow_phase_complete', {
|
|
@@ -1262,7 +1276,7 @@ const workflow = await stableWorkflow(
|
|
|
1262
1276
|
},
|
|
1263
1277
|
|
|
1264
1278
|
// Called when a phase fails
|
|
1265
|
-
handlePhaseError: async ({ workflowId, phaseResult, error,
|
|
1279
|
+
handlePhaseError: async ({ workflowId, phaseResult, error, sharedBuffer }) => {
|
|
1266
1280
|
console.error(`Phase ${phaseResult.phaseId} failed`);
|
|
1267
1281
|
|
|
1268
1282
|
await alerting.notify('workflow_phase_failed', {
|
|
@@ -1336,12 +1350,43 @@ const phases = [
|
|
|
1336
1350
|
const result = await stableWorkflow(phases, {
|
|
1337
1351
|
workflowId: 'wf-buffer-demo',
|
|
1338
1352
|
commonRequestData: { hostname: 'api.example.com' },
|
|
1339
|
-
workflowBuffer
|
|
1353
|
+
sharedBuffer: workflowBuffer
|
|
1340
1354
|
});
|
|
1341
1355
|
|
|
1342
1356
|
console.log(workflowBuffer); // { token: 'wf-token' setIn: 'p1', usedIn: 'p2' }
|
|
1343
1357
|
```
|
|
1358
|
+
### Concurrent Execution of Phases
|
|
1344
1359
|
|
|
1360
|
+
```typescript
|
|
1361
|
+
const phases = [
|
|
1362
|
+
{
|
|
1363
|
+
id: 'phase-1',
|
|
1364
|
+
requests: [
|
|
1365
|
+
{ id: 'r1', requestOptions: { reqData: { path: '/p1/r1' }, resReq: true } }
|
|
1366
|
+
]
|
|
1367
|
+
},
|
|
1368
|
+
{
|
|
1369
|
+
id: 'phase-2',
|
|
1370
|
+
requests: [
|
|
1371
|
+
{ id: 'r2', requestOptions: { reqData: { path: '/p2/r1' }, resReq: true } }
|
|
1372
|
+
]
|
|
1373
|
+
},
|
|
1374
|
+
{
|
|
1375
|
+
id: 'phase-3',
|
|
1376
|
+
requests: [
|
|
1377
|
+
{ id: 'r3', requestOptions: { reqData: { path: '/p3/r1' }, resReq: true } }
|
|
1378
|
+
]
|
|
1379
|
+
}
|
|
1380
|
+
] satisfies STABLE_WORKFLOW_PHASE[];
|
|
1381
|
+
|
|
1382
|
+
const result = await stableWorkflow(phases, {
|
|
1383
|
+
workflowId: 'wf-concurrent-phases',
|
|
1384
|
+
commonRequestData: { hostname: 'api.example.com' },
|
|
1385
|
+
commonAttempts: 1,
|
|
1386
|
+
commonWait: 1,
|
|
1387
|
+
concurrentPhaseExecution: true
|
|
1388
|
+
});
|
|
1389
|
+
```
|
|
1345
1390
|
|
|
1346
1391
|
## Real-World Examples
|
|
1347
1392
|
|
|
@@ -1794,11 +1839,12 @@ interface STABLE_WORKFLOW_PHASE {
|
|
|
1794
1839
|
| `workflowId` | `string` | `workflow-{timestamp}` | Workflow identifier |
|
|
1795
1840
|
| `stopOnFirstPhaseError` | `boolean` | `false` | Stop workflow if any phase fails |
|
|
1796
1841
|
| `logPhaseResults` | `boolean` | `false` | Log phase execution to console |
|
|
1842
|
+
| `concurrentPhaseExecution` | `boolean` | `false` | Execute all phases in parallel |
|
|
1797
1843
|
| `handlePhaseCompletion` | `function` | `undefined` | Hook called after each successful phase |
|
|
1798
1844
|
| `handlePhaseError` | `function` | `undefined` | Hook called when a phase fails |
|
|
1799
1845
|
| `maxSerializableChars` | `number` | `1000` | Max chars for serialization in hooks |
|
|
1800
1846
|
| `workflowHookParams` | `WorkflowHookParams` | {} | Custom set of params passed to hooks |
|
|
1801
|
-
| `
|
|
1847
|
+
| `sharedBuffer` | `Record<string, any>` | `undefined` | Buffer shared by all phases and all requests within them |
|
|
1802
1848
|
| All `stableApiGateway` options | - | - | Applied as workflow-level defaults |
|
|
1803
1849
|
|
|
1804
1850
|
**STABLE_WORKFLOW_RESULT response:**
|
|
@@ -1906,7 +1952,7 @@ finalErrorAnalyzer: async ({ reqData, error, trialMode, params, commonBuffer })
|
|
|
1906
1952
|
**Purpose:** Execute phase-bridging code upon successful completion of a phase
|
|
1907
1953
|
|
|
1908
1954
|
```typescript
|
|
1909
|
-
handlePhaseCompletion: async ({ workflowId, phaseResult, maxSerializableChars, params,
|
|
1955
|
+
handlePhaseCompletion: async ({ workflowId, phaseResult, maxSerializableChars, params, sharedBuffer }) => {
|
|
1910
1956
|
await logger.log(phaseResult.phaseId, phaseResult.success);
|
|
1911
1957
|
}
|
|
1912
1958
|
```
|
|
@@ -1916,7 +1962,7 @@ handlePhaseCompletion: async ({ workflowId, phaseResult, maxSerializableChars, p
|
|
|
1916
1962
|
**Purpose:** Execute error handling code if a phase runs into an error
|
|
1917
1963
|
|
|
1918
1964
|
```typescript
|
|
1919
|
-
handlePhaseError: async ({ workflowId, phaseResult, error, maxSerializableChars, params,
|
|
1965
|
+
handlePhaseError: async ({ workflowId, phaseResult, error, maxSerializableChars, params, sharedBuffer }) => {
|
|
1920
1966
|
await logger.error(error);
|
|
1921
1967
|
}
|
|
1922
1968
|
```
|
|
@@ -1925,16 +1971,16 @@ handlePhaseError: async ({ workflowId, phaseResult, error, maxSerializableChars,
|
|
|
1925
1971
|
|
|
1926
1972
|
Configuration precedence across orchestration:
|
|
1927
1973
|
|
|
1928
|
-
Workflow-level (
|
|
1929
|
-
Phase-level (commonConfig)
|
|
1930
|
-
Request group (requestGroups[].commonConfig)
|
|
1931
|
-
Individual request options (highest priority)
|
|
1974
|
+
- Workflow-level (options.sharedBuffer)
|
|
1975
|
+
- Phase-level (commonConfig)
|
|
1976
|
+
- Request group (requestGroups[].commonConfig)
|
|
1977
|
+
- Individual request options (highest priority)
|
|
1932
1978
|
|
|
1933
1979
|
Buffers are state (not config):
|
|
1934
1980
|
|
|
1935
1981
|
- Request scope: commonBuffer
|
|
1936
|
-
- Gateway scope: sharedBuffer
|
|
1937
|
-
- Workflow scope:
|
|
1982
|
+
- Gateway scope: Gateway's / Phase's sharedBuffer
|
|
1983
|
+
- Workflow scope: Workflow's sharedBuffer
|
|
1938
1984
|
|
|
1939
1985
|
## TypeScript Support
|
|
1940
1986
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stable-workflow.d.ts","sourceRoot":"","sources":["../../src/core/stable-workflow.ts"],"names":[],"mappings":"AACA,OAAO,EACH,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACzB,MAAM,mBAAmB,CAAC;AAM3B,wBAAsB,cAAc,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAC9E,MAAM,EAAE,qBAAqB,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,EAClE,OAAO,GAAE,uBAAuB,CAAC,eAAe,EAAE,gBAAgB,CAAM,GACzE,OAAO,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"stable-workflow.d.ts","sourceRoot":"","sources":["../../src/core/stable-workflow.ts"],"names":[],"mappings":"AACA,OAAO,EACH,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACzB,MAAM,mBAAmB,CAAC;AAM3B,wBAAsB,cAAc,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAC9E,MAAM,EAAE,qBAAqB,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,EAClE,OAAO,GAAE,uBAAuB,CAAC,eAAe,EAAE,gBAAgB,CAAM,GACzE,OAAO,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CA2OnD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { stableApiGateway } from './stable-api-gateway.js';
|
|
2
2
|
import { safelyExecuteUnknownFunction, safelyStringify } from '../utilities/index.js';
|
|
3
3
|
export async function stableWorkflow(phases, options = {}) {
|
|
4
|
-
const { stopOnFirstPhaseError = false, logPhaseResults = false, handlePhaseCompletion = ({ workflowId, phaseResult, maxSerializableChars = 1000 }) => console.info('stable-request:\n', 'Workflow ID:\n', workflowId, '\nPhase result:\n', safelyStringify(phaseResult, maxSerializableChars)), handlePhaseError = ({ workflowId, error, phaseResult, maxSerializableChars = 1000 }) => console.error('stable-request:\n', 'Workflow ID:\n', workflowId, '\nError:\n', safelyStringify({ error, phaseResult }, maxSerializableChars)), maxSerializableChars = 1000, requestGroups = [], workflowHookParams = {}, ...commonGatewayOptions } = options;
|
|
4
|
+
const { stopOnFirstPhaseError = false, logPhaseResults = false, handlePhaseCompletion = ({ workflowId, phaseResult, maxSerializableChars = 1000 }) => console.info('stable-request:\n', 'Workflow ID:\n', workflowId, '\nPhase result:\n', safelyStringify(phaseResult, maxSerializableChars)), handlePhaseError = ({ workflowId, error, phaseResult, maxSerializableChars = 1000 }) => console.error('stable-request:\n', 'Workflow ID:\n', workflowId, '\nError:\n', safelyStringify({ error, phaseResult }, maxSerializableChars)), maxSerializableChars = 1000, requestGroups = [], workflowHookParams = {}, concurrentPhaseExecution = false, ...commonGatewayOptions } = options;
|
|
5
5
|
const workflowStartTime = Date.now();
|
|
6
6
|
const workflowId = options.workflowId || `workflow-${Date.now()}`;
|
|
7
7
|
const phaseResults = [];
|
|
@@ -9,103 +9,102 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
9
9
|
let successfulRequests = 0;
|
|
10
10
|
let failedRequests = 0;
|
|
11
11
|
try {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
totalRequests
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
12
|
+
if (concurrentPhaseExecution) {
|
|
13
|
+
// Execute all phases concurrently
|
|
14
|
+
const phasePromises = phases.map((phase, i) => executePhase(phase, i, workflowId, commonGatewayOptions, requestGroups, logPhaseResults, handlePhaseCompletion, handlePhaseError, maxSerializableChars, workflowHookParams, options.sharedBuffer));
|
|
15
|
+
const settledPhases = await Promise.allSettled(phasePromises);
|
|
16
|
+
// Process results from concurrent execution
|
|
17
|
+
settledPhases.forEach((result, i) => {
|
|
18
|
+
if (result.status === 'fulfilled') {
|
|
19
|
+
const phaseResult = result.value;
|
|
20
|
+
phaseResults.push(phaseResult);
|
|
21
|
+
totalRequests += phaseResult.totalRequests;
|
|
22
|
+
successfulRequests += phaseResult.successfulRequests;
|
|
23
|
+
failedRequests += phaseResult.failedRequests;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
// Handle rejected phase
|
|
27
|
+
const phaseId = phases[i].id || `phase-${i + 1}`;
|
|
28
|
+
const phaseResult = {
|
|
29
|
+
phaseId,
|
|
30
|
+
phaseIndex: i,
|
|
31
|
+
success: false,
|
|
32
|
+
executionTime: 0,
|
|
33
|
+
timestamp: new Date().toISOString(),
|
|
34
|
+
totalRequests: phases[i].requests.length,
|
|
35
|
+
successfulRequests: 0,
|
|
36
|
+
failedRequests: phases[i].requests.length,
|
|
37
|
+
responses: [],
|
|
38
|
+
error: result.reason?.message || 'Phase execution failed'
|
|
39
|
+
};
|
|
40
|
+
phaseResults.push(phaseResult);
|
|
41
|
+
totalRequests += phases[i].requests.length;
|
|
42
|
+
failedRequests += phases[i].requests.length;
|
|
43
|
+
if (logPhaseResults) {
|
|
44
|
+
console.error(`stable-request: [Workflow: ${workflowId}] Phase ${phaseId} failed:`, result.reason);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// Execute phases sequentially (existing behavior)
|
|
51
|
+
for (let i = 0; i < phases.length; i++) {
|
|
52
|
+
const phase = phases[i];
|
|
53
|
+
const phaseId = phase.id || `phase-${i + 1}`;
|
|
47
54
|
if (logPhaseResults) {
|
|
48
|
-
console.info(
|
|
55
|
+
console.info(`\nstable-request: [Workflow: ${workflowId}] Starting Phase ${i + 1}/${phases.length}: ${phaseId}`);
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
const phaseResult = await executePhase(phase, i, workflowId, commonGatewayOptions, requestGroups, logPhaseResults, handlePhaseCompletion, handlePhaseError, maxSerializableChars, workflowHookParams, options.sharedBuffer);
|
|
59
|
+
phaseResults.push(phaseResult);
|
|
60
|
+
totalRequests += phaseResult.totalRequests;
|
|
61
|
+
successfulRequests += phaseResult.successfulRequests;
|
|
62
|
+
failedRequests += phaseResult.failedRequests;
|
|
63
|
+
if (phaseResult.failedRequests > 0 && stopOnFirstPhaseError) {
|
|
64
|
+
if (logPhaseResults) {
|
|
65
|
+
console.error(`stable-request: [Workflow: ${workflowId}] Stopping workflow due to phase failure`);
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
49
69
|
}
|
|
50
|
-
|
|
70
|
+
catch (phaseError) {
|
|
71
|
+
const phaseResult = {
|
|
72
|
+
phaseId,
|
|
73
|
+
phaseIndex: i,
|
|
74
|
+
success: false,
|
|
75
|
+
executionTime: 0,
|
|
76
|
+
timestamp: new Date().toISOString(),
|
|
77
|
+
totalRequests: phase.requests.length,
|
|
78
|
+
successfulRequests: 0,
|
|
79
|
+
failedRequests: phase.requests.length,
|
|
80
|
+
responses: [],
|
|
81
|
+
error: phaseError.message
|
|
82
|
+
};
|
|
83
|
+
phaseResults.push(phaseResult);
|
|
84
|
+
totalRequests += phase.requests.length;
|
|
85
|
+
failedRequests += phase.requests.length;
|
|
86
|
+
if (logPhaseResults) {
|
|
87
|
+
console.error(`stable-request: [Workflow: ${workflowId}] Phase ${phaseId} failed:`, phaseError.message);
|
|
88
|
+
}
|
|
51
89
|
try {
|
|
52
|
-
await safelyExecuteUnknownFunction(
|
|
90
|
+
await safelyExecuteUnknownFunction(handlePhaseError, {
|
|
53
91
|
workflowId,
|
|
54
92
|
phaseResult,
|
|
93
|
+
error: phaseError,
|
|
55
94
|
maxSerializableChars,
|
|
56
|
-
params: workflowHookParams?.
|
|
57
|
-
|
|
95
|
+
params: workflowHookParams?.handlePhaseErrorParams,
|
|
96
|
+
sharedBuffer: options.sharedBuffer
|
|
58
97
|
});
|
|
59
98
|
}
|
|
60
99
|
catch (hookError) {
|
|
61
|
-
console.error(`stable-request: [Workflow: ${workflowId}] Error in
|
|
100
|
+
console.error(`stable-request: [Workflow: ${workflowId}] Error in handlePhaseError hook:`, hookError);
|
|
62
101
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
102
|
+
if (stopOnFirstPhaseError) {
|
|
103
|
+
if (logPhaseResults) {
|
|
104
|
+
console.error(`stable-request: [Workflow: ${workflowId}] Stopping workflow due to phase error`);
|
|
105
|
+
}
|
|
106
|
+
break;
|
|
67
107
|
}
|
|
68
|
-
break;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
catch (phaseError) {
|
|
72
|
-
const phaseExecutionTime = Date.now() - phaseStartTime;
|
|
73
|
-
const phaseResult = {
|
|
74
|
-
phaseId,
|
|
75
|
-
phaseIndex: i,
|
|
76
|
-
success: false,
|
|
77
|
-
executionTime: phaseExecutionTime,
|
|
78
|
-
timestamp: new Date(phaseStartTime).toISOString(),
|
|
79
|
-
totalRequests: phase.requests.length,
|
|
80
|
-
successfulRequests: 0,
|
|
81
|
-
failedRequests: phase.requests.length,
|
|
82
|
-
responses: [],
|
|
83
|
-
error: phaseError.message
|
|
84
|
-
};
|
|
85
|
-
phaseResults.push(phaseResult);
|
|
86
|
-
totalRequests += phase.requests.length;
|
|
87
|
-
failedRequests += phase.requests.length;
|
|
88
|
-
if (logPhaseResults) {
|
|
89
|
-
console.error(`stable-request: [Workflow: ${workflowId}] Phase ${phaseId} failed:`, phaseError.message);
|
|
90
|
-
}
|
|
91
|
-
try {
|
|
92
|
-
await safelyExecuteUnknownFunction(handlePhaseError, {
|
|
93
|
-
workflowId,
|
|
94
|
-
phaseResult,
|
|
95
|
-
error: phaseError,
|
|
96
|
-
maxSerializableChars,
|
|
97
|
-
params: workflowHookParams?.handlePhaseErrorParams,
|
|
98
|
-
workflowBuffer: options.workflowBuffer
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
catch (hookError) {
|
|
102
|
-
console.error(`stable-request: [Workflow: ${workflowId}] Error in handlePhaseError hook:`, hookError);
|
|
103
|
-
}
|
|
104
|
-
if (stopOnFirstPhaseError) {
|
|
105
|
-
if (logPhaseResults) {
|
|
106
|
-
console.error(`stable-request: [Workflow: ${workflowId}] Stopping workflow due to phase error`);
|
|
107
|
-
}
|
|
108
|
-
break;
|
|
109
108
|
}
|
|
110
109
|
}
|
|
111
110
|
}
|
|
@@ -148,4 +147,49 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
148
147
|
};
|
|
149
148
|
}
|
|
150
149
|
}
|
|
150
|
+
async function executePhase(phase, phaseIndex, workflowId, commonGatewayOptions, requestGroups, logPhaseResults, handlePhaseCompletion, handlePhaseError, maxSerializableChars, workflowHookParams, sharedBuffer) {
|
|
151
|
+
const phaseId = phase.id || `phase-${phaseIndex + 1}`;
|
|
152
|
+
const phaseStartTime = Date.now();
|
|
153
|
+
const phaseGatewayOptions = {
|
|
154
|
+
...commonGatewayOptions,
|
|
155
|
+
...(phase.commonConfig || {}),
|
|
156
|
+
concurrentExecution: phase.concurrentExecution ?? true,
|
|
157
|
+
stopOnFirstError: phase.stopOnFirstError ?? false,
|
|
158
|
+
requestGroups,
|
|
159
|
+
sharedBuffer
|
|
160
|
+
};
|
|
161
|
+
const phaseResponses = await stableApiGateway(phase.requests, phaseGatewayOptions);
|
|
162
|
+
const phaseExecutionTime = Date.now() - phaseStartTime;
|
|
163
|
+
const phaseSuccessCount = phaseResponses.filter(r => r.success).length;
|
|
164
|
+
const phaseFailureCount = phaseResponses.filter(r => !r.success).length;
|
|
165
|
+
const phaseResult = {
|
|
166
|
+
phaseId,
|
|
167
|
+
phaseIndex,
|
|
168
|
+
success: phaseFailureCount === 0,
|
|
169
|
+
executionTime: phaseExecutionTime,
|
|
170
|
+
timestamp: new Date(phaseStartTime).toISOString(),
|
|
171
|
+
totalRequests: phaseResponses.length,
|
|
172
|
+
successfulRequests: phaseSuccessCount,
|
|
173
|
+
failedRequests: phaseFailureCount,
|
|
174
|
+
responses: phaseResponses
|
|
175
|
+
};
|
|
176
|
+
if (logPhaseResults) {
|
|
177
|
+
console.info(`stable-request: [Workflow: ${workflowId}] Phase ${phaseId} completed:`, `${phaseSuccessCount}/${phaseResponses.length} successful`, `(${phaseExecutionTime}ms)`);
|
|
178
|
+
}
|
|
179
|
+
if (handlePhaseCompletion) {
|
|
180
|
+
try {
|
|
181
|
+
await safelyExecuteUnknownFunction(handlePhaseCompletion, {
|
|
182
|
+
workflowId,
|
|
183
|
+
phaseResult,
|
|
184
|
+
maxSerializableChars,
|
|
185
|
+
params: workflowHookParams?.handlePhaseCompletionParams,
|
|
186
|
+
sharedBuffer
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
catch (hookError) {
|
|
190
|
+
console.error(`stable-request: [Workflow: ${workflowId}] Error in handlePhaseCompletion hook:`, hookError);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return phaseResult;
|
|
194
|
+
}
|
|
151
195
|
//# sourceMappingURL=stable-workflow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stable-workflow.js","sourceRoot":"","sources":["../../src/core/stable-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAM3D,OAAO,EACH,4BAA4B,EAC5B,eAAe,EAClB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,MAAkE,EAClE,UAAsE,EAAE;IAExE,MAAM,EACF,qBAAqB,GAAG,KAAK,EAC7B,eAAe,GAAG,KAAK,EACvB,qBAAqB,GAAG,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,GAAG,IAAI,EAAE,EAAE,EAAE,CACjF,OAAO,CAAC,IAAI,CACR,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,eAAe,CAAC,WAAW,EAAE,oBAAoB,CAAC,CACrD,EACL,gBAAgB,GAAG,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,oBAAoB,GAAG,IAAI,EAAE,EAAE,EAAE,CACnF,OAAO,CAAC,KAAK,CACT,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,eAAe,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,oBAAoB,CAAC,CAChE,EACL,oBAAoB,GAAG,IAAI,EAC3B,aAAa,GAAG,EAAE,EAClB,kBAAkB,GAAG,EAAE,EACvB,GAAG,oBAAoB,EAC1B,GAAG,OAAO,CAAC;IAEZ,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAClE,MAAM,YAAY,GAAuD,EAAE,CAAC;IAC5E,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,IAAI,CAAC;QACD,
|
|
1
|
+
{"version":3,"file":"stable-workflow.js","sourceRoot":"","sources":["../../src/core/stable-workflow.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -164,18 +164,17 @@ export interface STABLE_WORKFLOW_PHASE<RequestDataType = any, ResponseDataType =
|
|
|
164
164
|
requests: API_GATEWAY_REQUEST<RequestDataType, ResponseDataType>[];
|
|
165
165
|
concurrentExecution?: boolean;
|
|
166
166
|
stopOnFirstError?: boolean;
|
|
167
|
-
|
|
168
|
-
commonConfig?: Omit<API_GATEWAY_OPTIONS<RequestDataType, ResponseDataType>, 'concurrentExecution' | 'stopOnFirstError' | 'requestGroups' | 'sharedBuffer'>;
|
|
167
|
+
commonConfig?: Omit<API_GATEWAY_OPTIONS<RequestDataType, ResponseDataType>, 'concurrentExecution' | 'stopOnFirstError' | 'requestGroups'>;
|
|
169
168
|
}
|
|
170
169
|
export interface STABLE_WORKFLOW_OPTIONS<RequestDataType = any, ResponseDataType = any> extends Omit<API_GATEWAY_OPTIONS<RequestDataType, ResponseDataType>, 'concurrentExecution' | 'stopOnFirstError'> {
|
|
171
170
|
workflowId?: string;
|
|
172
171
|
stopOnFirstPhaseError?: boolean;
|
|
173
172
|
logPhaseResults?: boolean;
|
|
173
|
+
concurrentPhaseExecution?: boolean;
|
|
174
174
|
handlePhaseCompletion?: (options: HandlePhaseCompletionHookOptions<ResponseDataType>) => any | Promise<any>;
|
|
175
175
|
handlePhaseError?: (options: HandlePhaseErrorHookOptions<ResponseDataType>) => any | Promise<any>;
|
|
176
176
|
maxSerializableChars?: number;
|
|
177
177
|
workflowHookParams?: WorkflowHookParams;
|
|
178
|
-
workflowBuffer?: Record<string, any>;
|
|
179
178
|
}
|
|
180
179
|
export interface STABLE_WORKFLOW_PHASE_RESULT<ResponseDataType = any> {
|
|
181
180
|
phaseId: string;
|
|
@@ -211,7 +210,7 @@ export interface HandlePhaseCompletionHookOptions<ResponseDataType = any> {
|
|
|
211
210
|
phaseResult: STABLE_WORKFLOW_PHASE_RESULT<ResponseDataType>;
|
|
212
211
|
maxSerializableChars?: number;
|
|
213
212
|
params?: any;
|
|
214
|
-
|
|
213
|
+
sharedBuffer?: Record<string, any>;
|
|
215
214
|
}
|
|
216
215
|
export interface HandlePhaseErrorHookOptions<ResponseDataType = any> extends HandlePhaseCompletionHookOptions<ResponseDataType> {
|
|
217
216
|
error: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@emmvish/stable-request",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.11",
|
|
4
4
|
"description": "stable-request is a TypeScript-first HTTP reliability toolkit for workflow-driven API integrations, that goes beyond status-code retries by validating response content, handling eventual consistency, coordinating batch workflows with intelligent grouping, and providing deep observability into every request attempt. It is designed for real-world distributed systems where HTTP success does not guarantee business success. It also provides extensive support for managing multiple requests so as to achieve workflow automation.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { STABLE_REQUEST } from '../types/index.js';
|
|
2
|
-
export declare function sendStableRequest<RequestDataType = any, ResponseDataType = any>(options: STABLE_REQUEST<RequestDataType, ResponseDataType>): Promise<ResponseDataType | boolean>;
|
|
3
|
-
//# sourceMappingURL=send-stable-request.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"send-stable-request.d.ts","sourceRoot":"","sources":["../../src/core/send-stable-request.ts"],"names":[],"mappings":"AAOA,OAAO,EAIH,cAAc,EAEjB,MAAM,mBAAmB,CAAC;AAY3B,wBAAsB,iBAAiB,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EACnF,OAAO,EAAE,cAAc,CAAC,eAAe,EAAE,gBAAgB,CAAC,GACzD,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,CA4OrC"}
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
import { RETRY_STRATEGIES, RESPONSE_ERRORS } from '../enums/index.js';
|
|
2
|
-
import { generateAxiosRequestConfig, getNewDelayTime, delay, reqFn, safelyExecuteUnknownFunction, safelyStringify, validateTrialModeProbabilities } from '../utilities/index.js';
|
|
3
|
-
export async function sendStableRequest(options) {
|
|
4
|
-
const { preExecution = {
|
|
5
|
-
preExecutionHook: ({ inputParams, commonBuffer }) => { },
|
|
6
|
-
preExecutionHookParams: {},
|
|
7
|
-
applyPreExecutionConfigOverride: false,
|
|
8
|
-
continueOnPreExecutionHookFailure: false,
|
|
9
|
-
}, commonBuffer = {} } = options;
|
|
10
|
-
let preExecutionResult;
|
|
11
|
-
try {
|
|
12
|
-
preExecutionResult = await safelyExecuteUnknownFunction(preExecution?.preExecutionHook, {
|
|
13
|
-
inputParams: preExecution?.preExecutionHookParams,
|
|
14
|
-
commonBuffer
|
|
15
|
-
});
|
|
16
|
-
if (preExecution?.applyPreExecutionConfigOverride) {
|
|
17
|
-
const finalOptions = {
|
|
18
|
-
...options,
|
|
19
|
-
...preExecutionResult
|
|
20
|
-
};
|
|
21
|
-
Object.assign(options, finalOptions);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
catch (e) {
|
|
25
|
-
if (!preExecution?.continueOnPreExecutionHookFailure) {
|
|
26
|
-
throw e;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
const { reqData: givenReqData, responseAnalyzer = ({ reqData, data, trialMode = { enabled: false } }) => true, resReq = false, attempts: givenAttempts = 1, performAllAttempts = false, wait = 1000, maxAllowedWait = 60000, retryStrategy = RETRY_STRATEGIES.FIXED, logAllErrors = false, handleErrors = ({ reqData, errorLog, maxSerializableChars = 1000 }) => console.error('stable-request:\n', 'Request data:\n', safelyStringify(reqData, maxSerializableChars), '\nError log:\n', safelyStringify(errorLog, maxSerializableChars)), logAllSuccessfulAttempts = false, handleSuccessfulAttemptData = ({ reqData, successfulAttemptData, maxSerializableChars = 1000 }) => console.info('stable-request:\n', 'Request data:\n', safelyStringify(reqData, maxSerializableChars), '\nSuccessful attempt:\n', safelyStringify(successfulAttemptData, maxSerializableChars)), maxSerializableChars = 1000, finalErrorAnalyzer = ({ reqData, error, trialMode = { enabled: false } }) => false, trialMode = { enabled: false }, hookParams = {}, } = options;
|
|
30
|
-
let attempts = givenAttempts;
|
|
31
|
-
const reqData = generateAxiosRequestConfig(givenReqData);
|
|
32
|
-
try {
|
|
33
|
-
validateTrialModeProbabilities(trialMode);
|
|
34
|
-
let res = {
|
|
35
|
-
ok: false,
|
|
36
|
-
isRetryable: true,
|
|
37
|
-
timestamp: new Date().toISOString(),
|
|
38
|
-
executionTime: 0,
|
|
39
|
-
statusCode: 0
|
|
40
|
-
};
|
|
41
|
-
const maxAttempts = attempts;
|
|
42
|
-
let lastSuccessfulAttemptData = undefined;
|
|
43
|
-
let hadAtLeastOneSuccess = false;
|
|
44
|
-
do {
|
|
45
|
-
attempts--;
|
|
46
|
-
const currentAttempt = maxAttempts - attempts;
|
|
47
|
-
res = await reqFn(reqData, resReq, maxSerializableChars, trialMode);
|
|
48
|
-
const originalResOk = res.ok;
|
|
49
|
-
let performNextAttempt = false;
|
|
50
|
-
if (res.ok) {
|
|
51
|
-
try {
|
|
52
|
-
performNextAttempt = !(await safelyExecuteUnknownFunction(responseAnalyzer, {
|
|
53
|
-
reqData,
|
|
54
|
-
data: res?.data,
|
|
55
|
-
trialMode,
|
|
56
|
-
params: hookParams?.responseAnalyzerParams,
|
|
57
|
-
preExecutionResult,
|
|
58
|
-
commonBuffer
|
|
59
|
-
}));
|
|
60
|
-
}
|
|
61
|
-
catch (e) {
|
|
62
|
-
console.error(`stable-request: Unable to analyze the response returned on attempt #${currentAttempt}. Response: ${safelyStringify(res?.data, maxSerializableChars)}`);
|
|
63
|
-
performNextAttempt = true;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if ((!res.ok || (res.ok && performNextAttempt)) && logAllErrors) {
|
|
67
|
-
const errorLog = {
|
|
68
|
-
timestamp: res.timestamp,
|
|
69
|
-
attempt: `${currentAttempt}/${maxAttempts}`,
|
|
70
|
-
error: res?.error ??
|
|
71
|
-
`stable-request: The response did not match your expectations! Response: ${safelyStringify(res?.data, maxSerializableChars)}`,
|
|
72
|
-
type: !res.ok
|
|
73
|
-
? RESPONSE_ERRORS.HTTP_ERROR
|
|
74
|
-
: RESPONSE_ERRORS.INVALID_CONTENT,
|
|
75
|
-
isRetryable: res.isRetryable,
|
|
76
|
-
executionTime: res.executionTime,
|
|
77
|
-
statusCode: res.statusCode
|
|
78
|
-
};
|
|
79
|
-
try {
|
|
80
|
-
await safelyExecuteUnknownFunction(handleErrors, {
|
|
81
|
-
reqData,
|
|
82
|
-
errorLog,
|
|
83
|
-
maxSerializableChars,
|
|
84
|
-
params: hookParams?.handleErrorsParams,
|
|
85
|
-
preExecutionResult,
|
|
86
|
-
commonBuffer
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
catch (e) {
|
|
90
|
-
console.error('stable-request: Unable to report errors due to issues with error handler!');
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
if (res.ok && !performNextAttempt) {
|
|
94
|
-
hadAtLeastOneSuccess = true;
|
|
95
|
-
lastSuccessfulAttemptData = res?.data;
|
|
96
|
-
if (logAllSuccessfulAttempts) {
|
|
97
|
-
const successfulAttemptLog = {
|
|
98
|
-
attempt: `${currentAttempt}/${maxAttempts}`,
|
|
99
|
-
timestamp: res.timestamp,
|
|
100
|
-
data: res?.data,
|
|
101
|
-
executionTime: res.executionTime,
|
|
102
|
-
statusCode: res.statusCode
|
|
103
|
-
};
|
|
104
|
-
try {
|
|
105
|
-
await safelyExecuteUnknownFunction(handleSuccessfulAttemptData, {
|
|
106
|
-
reqData,
|
|
107
|
-
successfulAttemptData: successfulAttemptLog,
|
|
108
|
-
maxSerializableChars,
|
|
109
|
-
params: hookParams?.handleSuccessfulAttemptDataParams,
|
|
110
|
-
preExecutionResult,
|
|
111
|
-
commonBuffer
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
catch (e) {
|
|
115
|
-
console.error('stable-request: Unable to report successful attempts due to issues with successful attempt data handler!');
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
if (performNextAttempt && res.isRetryable) {
|
|
120
|
-
res.ok = false;
|
|
121
|
-
}
|
|
122
|
-
if (attempts > 0 &&
|
|
123
|
-
((!originalResOk && res.isRetryable) ||
|
|
124
|
-
(originalResOk && performNextAttempt) ||
|
|
125
|
-
performAllAttempts)) {
|
|
126
|
-
await delay(getNewDelayTime(retryStrategy, wait, currentAttempt), maxAllowedWait);
|
|
127
|
-
}
|
|
128
|
-
} while (attempts > 0 &&
|
|
129
|
-
((res.isRetryable && !res.ok) || performAllAttempts));
|
|
130
|
-
if (performAllAttempts && hadAtLeastOneSuccess) {
|
|
131
|
-
if (trialMode.enabled) {
|
|
132
|
-
console.info('stable-request: Final response (performAllAttempts mode):\n', safelyStringify(lastSuccessfulAttemptData, maxSerializableChars));
|
|
133
|
-
}
|
|
134
|
-
return resReq ? lastSuccessfulAttemptData : true;
|
|
135
|
-
}
|
|
136
|
-
else if (res.ok) {
|
|
137
|
-
if (trialMode.enabled) {
|
|
138
|
-
const finalResponse = res?.data ?? lastSuccessfulAttemptData;
|
|
139
|
-
console.info('stable-request: Final response:\n', safelyStringify(finalResponse, maxSerializableChars));
|
|
140
|
-
}
|
|
141
|
-
return resReq ? res?.data ?? lastSuccessfulAttemptData : true;
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
throw new Error(safelyStringify({
|
|
145
|
-
error: res?.error,
|
|
146
|
-
'Request Data': reqData,
|
|
147
|
-
}, maxSerializableChars));
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
catch (e) {
|
|
151
|
-
if (trialMode.enabled) {
|
|
152
|
-
console.error('stable-request: Final error:\n', e.message);
|
|
153
|
-
}
|
|
154
|
-
const errorAnalysisResult = await safelyExecuteUnknownFunction(finalErrorAnalyzer, {
|
|
155
|
-
reqData,
|
|
156
|
-
error: e,
|
|
157
|
-
trialMode,
|
|
158
|
-
params: hookParams?.finalErrorAnalyzerParams,
|
|
159
|
-
preExecutionResult,
|
|
160
|
-
commonBuffer
|
|
161
|
-
});
|
|
162
|
-
if (!errorAnalysisResult) {
|
|
163
|
-
throw e;
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
return false;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
//# sourceMappingURL=send-stable-request.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"send-stable-request.js","sourceRoot":"","sources":["../../src/core/send-stable-request.ts"],"names":[],"mappings":"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"}
|