@emmvish/stable-request 1.8.0 → 1.9.0
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 +194 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/stable-api-gateway.d.ts.map +1 -1
- package/dist/core/stable-api-gateway.js +1 -5
- package/dist/core/stable-api-gateway.js.map +1 -1
- package/dist/core/stable-workflow-graph.d.ts +3 -0
- package/dist/core/stable-workflow-graph.d.ts.map +1 -0
- package/dist/core/stable-workflow-graph.js +5 -0
- package/dist/core/stable-workflow-graph.js.map +1 -0
- package/dist/core/stable-workflow.d.ts.map +1 -1
- package/dist/core/stable-workflow.js +24 -21
- package/dist/core/stable-workflow.js.map +1 -1
- package/dist/enums/index.d.ts +13 -0
- package/dist/enums/index.d.ts.map +1 -1
- package/dist/enums/index.js +15 -0
- package/dist/enums/index.js.map +1 -1
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +93 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utilities/execute-branch-workflow.d.ts.map +1 -1
- package/dist/utilities/execute-branch-workflow.js +98 -8
- package/dist/utilities/execute-branch-workflow.js.map +1 -1
- package/dist/utilities/execute-non-linear-workflow.d.ts.map +1 -1
- package/dist/utilities/execute-non-linear-workflow.js +47 -3
- package/dist/utilities/execute-non-linear-workflow.js.map +1 -1
- package/dist/utilities/execute-phase.d.ts +1 -1
- package/dist/utilities/execute-phase.d.ts.map +1 -1
- package/dist/utilities/execute-phase.js +34 -12
- package/dist/utilities/execute-phase.js.map +1 -1
- package/dist/utilities/execute-workflow-graph.d.ts +3 -0
- package/dist/utilities/execute-workflow-graph.d.ts.map +1 -0
- package/dist/utilities/execute-workflow-graph.js +286 -0
- package/dist/utilities/execute-workflow-graph.js.map +1 -0
- package/dist/utilities/index.d.ts +3 -0
- package/dist/utilities/index.d.ts.map +1 -1
- package/dist/utilities/index.js +3 -0
- package/dist/utilities/index.js.map +1 -1
- package/dist/utilities/validate-workflow-graph.d.ts +10 -0
- package/dist/utilities/validate-workflow-graph.d.ts.map +1 -0
- package/dist/utilities/validate-workflow-graph.js +233 -0
- package/dist/utilities/validate-workflow-graph.js.map +1 -0
- package/dist/utilities/workflow-graph-builder.d.ts +37 -0
- package/dist/utilities/workflow-graph-builder.d.ts.map +1 -0
- package/dist/utilities/workflow-graph-builder.js +225 -0
- package/dist/utilities/workflow-graph-builder.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -200,6 +200,78 @@ console.log(`Failed: ${result.failedRequests}`);
|
|
|
200
200
|
console.log(`Execution time: ${result.executionTime}ms`);
|
|
201
201
|
```
|
|
202
202
|
|
|
203
|
+
### Graph-Based Workflow
|
|
204
|
+
|
|
205
|
+
Build sophisticated workflows with explicit graph structures, conditional routing, and parallel execution:
|
|
206
|
+
|
|
207
|
+
```typescript
|
|
208
|
+
import { stableWorkflowGraph, WorkflowGraphBuilder, WorkflowEdgeConditionTypes, REQUEST_METHODS } from '@emmvish/stable-request';
|
|
209
|
+
|
|
210
|
+
const graph = new WorkflowGraphBuilder()
|
|
211
|
+
// Add validation phase
|
|
212
|
+
.addPhase('validate-order', {
|
|
213
|
+
requests: [{
|
|
214
|
+
id: 'validate-req',
|
|
215
|
+
requestOptions: {
|
|
216
|
+
reqData: { hostname: 'api.example.com', path: '/validate', method: REQUEST_METHODS.POST },
|
|
217
|
+
resReq: true,
|
|
218
|
+
logAllSuccessfulAttempts: true
|
|
219
|
+
}
|
|
220
|
+
}]
|
|
221
|
+
})
|
|
222
|
+
|
|
223
|
+
// Add conditional routing
|
|
224
|
+
.addConditional('check-validation', async ({ sharedBuffer }) => {
|
|
225
|
+
return sharedBuffer.valid ? 'process-order' : 'reject-order';
|
|
226
|
+
})
|
|
227
|
+
|
|
228
|
+
// Add parallel processing group
|
|
229
|
+
.addParallelGroup('process-order', ['check-inventory', 'process-payment'])
|
|
230
|
+
|
|
231
|
+
.addPhase('check-inventory', {
|
|
232
|
+
requests: [{ id: 'inventory', requestOptions: { reqData: { path: '/inventory' }, resReq: true } }]
|
|
233
|
+
})
|
|
234
|
+
|
|
235
|
+
.addPhase('process-payment', {
|
|
236
|
+
requests: [{ id: 'payment', requestOptions: { reqData: { path: '/payment' }, resReq: true } }]
|
|
237
|
+
})
|
|
238
|
+
|
|
239
|
+
// Add merge point to synchronize parallel paths
|
|
240
|
+
.addMergePoint('processing-complete', ['check-inventory', 'process-payment'])
|
|
241
|
+
|
|
242
|
+
.addPhase('fulfill-order', {
|
|
243
|
+
requests: [{ id: 'fulfill', requestOptions: { reqData: { path: '/fulfill' }, resReq: true } }]
|
|
244
|
+
})
|
|
245
|
+
|
|
246
|
+
.addPhase('reject-order', {
|
|
247
|
+
requests: [{ id: 'reject', requestOptions: { reqData: { path: '/reject' }, resReq: true } }]
|
|
248
|
+
})
|
|
249
|
+
|
|
250
|
+
// Connect nodes with edge conditions
|
|
251
|
+
.connect('validate-order', 'check-validation', { condition: { type: WorkflowEdgeConditionTypes.ALWAYS } })
|
|
252
|
+
.connect('check-validation', 'process-order', { condition: { type: WorkflowEdgeConditionTypes.SUCCESS } })
|
|
253
|
+
.connect('check-validation', 'reject-order', { condition: { type: WorkflowEdgeConditionTypes.FAILURE } })
|
|
254
|
+
.connect('process-order', 'check-inventory', { condition: { type: WorkflowEdgeConditionTypes.ALWAYS } })
|
|
255
|
+
.connect('process-order', 'process-payment', { condition: { type: WorkflowEdgeConditionTypes.ALWAYS } })
|
|
256
|
+
.connect('check-inventory', 'processing-complete', { condition: { type: WorkflowEdgeConditionTypes.ALWAYS } })
|
|
257
|
+
.connect('process-payment', 'processing-complete', { condition: { type: WorkflowEdgeConditionTypes.ALWAYS } })
|
|
258
|
+
.connect('processing-complete', 'fulfill-order', { condition: { type: WorkflowEdgeConditionTypes.ALWAYS } })
|
|
259
|
+
|
|
260
|
+
.setEntryPoint('validate-order')
|
|
261
|
+
.build();
|
|
262
|
+
|
|
263
|
+
const result = await stableWorkflowGraph(graph, {
|
|
264
|
+
workflowId: 'order-processing',
|
|
265
|
+
sharedBuffer: {},
|
|
266
|
+
validateGraph: true, // Enforce DAG constraints
|
|
267
|
+
logPhaseResults: true
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
console.log(`Graph workflow completed: ${result.success}`);
|
|
271
|
+
console.log(`Phases executed: ${result.completedPhases}/${result.totalPhases}`);
|
|
272
|
+
console.log(`Execution path:`, result.executionHistory.map(h => h.phaseId));
|
|
273
|
+
```
|
|
274
|
+
|
|
203
275
|
## Core Features
|
|
204
276
|
|
|
205
277
|
### Intelligent Retry Strategies
|
|
@@ -921,6 +993,85 @@ phaseDecisionHook: async ({
|
|
|
921
993
|
}
|
|
922
994
|
```
|
|
923
995
|
|
|
996
|
+
### Dynamic Phase and Branch Addition
|
|
997
|
+
|
|
998
|
+
Dynamically add phases or branches during workflow execution based on runtime conditions:
|
|
999
|
+
|
|
1000
|
+
**Adding Phases Dynamically**:
|
|
1001
|
+
```typescript
|
|
1002
|
+
const phases = [
|
|
1003
|
+
{
|
|
1004
|
+
id: 'initial-phase',
|
|
1005
|
+
requests: [...],
|
|
1006
|
+
phaseDecisionHook: async ({ phaseResult }) => {
|
|
1007
|
+
const needsExtraProcessing = phaseResult.responses[0]?.data?.requiresValidation;
|
|
1008
|
+
|
|
1009
|
+
if (needsExtraProcessing) {
|
|
1010
|
+
return {
|
|
1011
|
+
action: PHASE_DECISION_ACTIONS.CONTINUE,
|
|
1012
|
+
addPhases: [
|
|
1013
|
+
{
|
|
1014
|
+
id: 'validation-phase',
|
|
1015
|
+
requests: [{ id: 'validate', requestOptions: { reqData: { path: '/validate' }, resReq: true } }]
|
|
1016
|
+
}
|
|
1017
|
+
]
|
|
1018
|
+
};
|
|
1019
|
+
}
|
|
1020
|
+
return { action: PHASE_DECISION_ACTIONS.CONTINUE };
|
|
1021
|
+
}
|
|
1022
|
+
}
|
|
1023
|
+
];
|
|
1024
|
+
|
|
1025
|
+
await stableWorkflow(phases, {
|
|
1026
|
+
enableNonLinearExecution: true,
|
|
1027
|
+
commonRequestData: { hostname: 'api.example.com' }
|
|
1028
|
+
});
|
|
1029
|
+
```
|
|
1030
|
+
|
|
1031
|
+
**Adding Branches Dynamically**:
|
|
1032
|
+
```typescript
|
|
1033
|
+
const branches = [
|
|
1034
|
+
{
|
|
1035
|
+
id: 'main-branch',
|
|
1036
|
+
phases: [...],
|
|
1037
|
+
branchDecisionHook: async ({ branchResults }) => {
|
|
1038
|
+
const requiresAudit = branchResults.some(p => p.responses[0]?.data?.flagged);
|
|
1039
|
+
|
|
1040
|
+
if (requiresAudit) {
|
|
1041
|
+
return {
|
|
1042
|
+
action: PHASE_DECISION_ACTIONS.CONTINUE,
|
|
1043
|
+
addBranches: [
|
|
1044
|
+
{
|
|
1045
|
+
id: 'audit-branch',
|
|
1046
|
+
phases: [{ id: 'audit', requests: [...] }]
|
|
1047
|
+
}
|
|
1048
|
+
]
|
|
1049
|
+
};
|
|
1050
|
+
}
|
|
1051
|
+
return { action: PHASE_DECISION_ACTIONS.CONTINUE };
|
|
1052
|
+
}
|
|
1053
|
+
}
|
|
1054
|
+
];
|
|
1055
|
+
|
|
1056
|
+
await stableWorkflow([], {
|
|
1057
|
+
enableBranchExecution: true,
|
|
1058
|
+
branches,
|
|
1059
|
+
commonRequestData: { hostname: 'api.example.com' }
|
|
1060
|
+
});
|
|
1061
|
+
```
|
|
1062
|
+
|
|
1063
|
+
**Extending Current Branch**:
|
|
1064
|
+
```typescript
|
|
1065
|
+
branchDecisionHook: async ({ branchResults }) => {
|
|
1066
|
+
return {
|
|
1067
|
+
action: PHASE_DECISION_ACTIONS.CONTINUE,
|
|
1068
|
+
addPhases: [
|
|
1069
|
+
{ id: 'extra-phase', requests: [...] } // Branch re-executes with new phases
|
|
1070
|
+
]
|
|
1071
|
+
};
|
|
1072
|
+
}
|
|
1073
|
+
```
|
|
1074
|
+
|
|
924
1075
|
### Branched Workflows
|
|
925
1076
|
|
|
926
1077
|
Execute multiple independent workflow paths in parallel or sequentially:
|
|
@@ -1188,6 +1339,49 @@ console.log(sharedBuffer); // Updated with data from workfl
|
|
|
1188
1339
|
}
|
|
1189
1340
|
```
|
|
1190
1341
|
|
|
1342
|
+
**Pre-Phase Execution Hooks**:
|
|
1343
|
+
|
|
1344
|
+
Modify phase configuration before execution:
|
|
1345
|
+
|
|
1346
|
+
```typescript
|
|
1347
|
+
const phases = [
|
|
1348
|
+
{
|
|
1349
|
+
id: 'data-phase',
|
|
1350
|
+
requests: [...],
|
|
1351
|
+
prePhaseExecutionHook: async ({ phase, sharedBuffer, params }) => {
|
|
1352
|
+
// Dynamically modify phase based on shared state
|
|
1353
|
+
if (sharedBuffer.environment === 'production') {
|
|
1354
|
+
phase.commonConfig = { commonAttempts: 5, commonWait: 2000 };
|
|
1355
|
+
}
|
|
1356
|
+
return phase;
|
|
1357
|
+
}
|
|
1358
|
+
}
|
|
1359
|
+
];
|
|
1360
|
+
```
|
|
1361
|
+
|
|
1362
|
+
**Pre-Branch Execution Hooks**:
|
|
1363
|
+
|
|
1364
|
+
Modify branch configuration before execution:
|
|
1365
|
+
|
|
1366
|
+
```typescript
|
|
1367
|
+
const branches = [
|
|
1368
|
+
{
|
|
1369
|
+
id: 'api-branch',
|
|
1370
|
+
phases: [...],
|
|
1371
|
+
preBranchExecutionHook: async ({ branch, sharedBuffer }) => {
|
|
1372
|
+
// Add authentication header dynamically
|
|
1373
|
+
branch.commonConfig = {
|
|
1374
|
+
...branch.commonConfig,
|
|
1375
|
+
commonRequestData: {
|
|
1376
|
+
headers: { 'Authorization': `Bearer ${sharedBuffer.token}` }
|
|
1377
|
+
}
|
|
1378
|
+
};
|
|
1379
|
+
return branch;
|
|
1380
|
+
}
|
|
1381
|
+
}
|
|
1382
|
+
];
|
|
1383
|
+
```
|
|
1384
|
+
|
|
1191
1385
|
### State Persistence and Recovery
|
|
1192
1386
|
|
|
1193
1387
|
Persist workflow state to external storage for recovery, distributed coordination, and long-running workflows.
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { stableRequest } from './stable-request.js';
|
|
2
2
|
export { stableApiGateway } from './stable-api-gateway.js';
|
|
3
3
|
export { stableWorkflow } from './stable-workflow.js';
|
|
4
|
+
export { stableWorkflowGraph } from './stable-workflow-graph.js';
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/core/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { stableRequest } from './stable-request.js';
|
|
2
2
|
export { stableApiGateway } from './stable-api-gateway.js';
|
|
3
3
|
export { stableWorkflow } from './stable-workflow.js';
|
|
4
|
+
export { stableWorkflowGraph } from './stable-workflow-graph.js';
|
|
4
5
|
//# sourceMappingURL=index.js.map
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stable-api-gateway.d.ts","sourceRoot":"","sources":["../../src/core/stable-api-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,mBAAmB,EAEnB,kBAAkB,EAOrB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"stable-api-gateway.d.ts","sourceRoot":"","sources":["../../src/core/stable-api-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,mBAAmB,EAEnB,kBAAkB,EAOrB,MAAM,mBAAmB,CAAC;AAa3B,wBAAsB,gBAAgB,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAChF,QAAQ,GAAE,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAO,EACvE,OAAO,GAAE,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,CAAM,GACrE,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CA6F/C"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import { executeConcurrently, executeSequentially, extractCommonRequestConfigOptions as extractCommonOptions, MetricsAggregator } from '../utilities/index.js';
|
|
2
|
-
import { CircuitBreaker, getGlobalCircuitBreaker } from '../utilities/circuit-breaker.js';
|
|
3
|
-
import { getGlobalCacheManager } from '../utilities/cache-manager.js';
|
|
4
|
-
import { getGlobalRateLimiter } from '../utilities/rate-limiter.js';
|
|
5
|
-
import { getGlobalConcurrencyLimiter } from '../utilities/concurrency-limiter.js';
|
|
1
|
+
import { executeConcurrently, executeSequentially, extractCommonRequestConfigOptions as extractCommonOptions, MetricsAggregator, CircuitBreaker, getGlobalCircuitBreaker, getGlobalCacheManager, getGlobalRateLimiter, getGlobalConcurrencyLimiter } from '../utilities/index.js';
|
|
6
2
|
export async function stableApiGateway(requests = [], options = {}) {
|
|
7
3
|
const { concurrentExecution = true, stopOnFirstError = false, requestGroups = [], maxConcurrentRequests, rateLimit, circuitBreaker, } = options;
|
|
8
4
|
if (!Array.isArray(requests) || requests.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stable-api-gateway.js","sourceRoot":"","sources":["../../src/core/stable-api-gateway.ts"],"names":[],"mappings":"AAYA,OAAO,EACH,mBAAmB,EACnB,mBAAmB,EACnB,iCAAiC,IAAI,oBAAoB,EACzD,iBAAiB,
|
|
1
|
+
{"version":3,"file":"stable-api-gateway.js","sourceRoot":"","sources":["../../src/core/stable-api-gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { WorkflowGraph, WorkflowGraphOptions, STABLE_WORKFLOW_RESULT } from '../types/index.js';
|
|
2
|
+
export declare function stableWorkflowGraph<RequestDataType = any, ResponseDataType = any>(graph: WorkflowGraph<RequestDataType, ResponseDataType>, options?: WorkflowGraphOptions<RequestDataType, ResponseDataType>): Promise<STABLE_WORKFLOW_RESULT<ResponseDataType>>;
|
|
3
|
+
//# sourceMappingURL=stable-workflow-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stable-workflow-graph.d.ts","sourceRoot":"","sources":["../../src/core/stable-workflow-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAG3B,wBAAsB,mBAAmB,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EACrF,KAAK,EAAE,aAAa,CAAC,eAAe,EAAE,gBAAgB,CAAC,EACvD,OAAO,GAAE,oBAAoB,CAAC,eAAe,EAAE,gBAAgB,CAAM,GACpE,OAAO,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CAEnD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stable-workflow-graph.js","sourceRoot":"","sources":["../../src/core/stable-workflow-graph.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAuD,EACvD,UAAmE,EAAE;IAErE,OAAO,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stable-workflow.d.ts","sourceRoot":"","sources":["../../src/core/stable-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACzB,MAAM,mBAAmB,CAAC;AAY3B,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":"AAAA,OAAO,EACH,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACzB,MAAM,mBAAmB,CAAC;AAY3B,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,CAmfnD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { executeBranchWorkflow, executePhase, executeNonLinearWorkflow, executeWithPersistence, safelyStringify, CircuitBreaker, formatLogContext, MetricsAggregator } from '../utilities/index.js';
|
|
2
2
|
export async function stableWorkflow(phases, options = {}) {
|
|
3
|
-
const { stopOnFirstPhaseError = false, logPhaseResults = false, handlePhaseCompletion = ({ workflowId, phaseResult, maxSerializableChars = 1000 }) => console.info(
|
|
3
|
+
const { stopOnFirstPhaseError = false, logPhaseResults = false, handlePhaseCompletion = ({ workflowId, phaseResult, maxSerializableChars = 1000 }) => console.info(`${formatLogContext({ workflowId })}stable-request:\n`, 'Workflow ID:\n', workflowId, '\nPhase result:\n', safelyStringify(phaseResult, maxSerializableChars)), handlePhaseError = ({ workflowId, error, phaseResult, maxSerializableChars = 1000 }) => console.error(`${formatLogContext({ workflowId })}stable-request:\n`, 'Workflow ID:\n', workflowId, '\nError:\n', safelyStringify({ error, phaseResult }, maxSerializableChars)), handlePhaseDecision = (options) => { }, handleBranchCompletion = ({ success, branchId, workflowId, maxSerializableChars }) => console.info(`${formatLogContext({ workflowId, branchId })}stable-request: Branch ${branchId} completed with status: ${success ? 'SUCCESS' : 'FAILURE'}`), handleBranchDecision = (decision, branchResult, maxSerializableChars) => { }, maxSerializableChars = 1000, requestGroups = [], workflowHookParams = {}, concurrentPhaseExecution = false, enableMixedExecution = false, enableBranchExecution = false, enableNonLinearExecution = false, maxWorkflowIterations = 1000, branches, ...commonGatewayOptions } = options;
|
|
4
4
|
const workflowStartTime = Date.now();
|
|
5
5
|
const workflowId = options.workflowId || `workflow-${Date.now()}`;
|
|
6
6
|
const phaseResults = [];
|
|
@@ -16,7 +16,7 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
16
16
|
try {
|
|
17
17
|
if (enableBranchExecution && branches && branches.length > 0) {
|
|
18
18
|
if (logPhaseResults) {
|
|
19
|
-
console.info(
|
|
19
|
+
console.info(`${formatLogContext({ workflowId })}stable-request: Starting branch-based workflow execution with ${branches.length} branches`);
|
|
20
20
|
}
|
|
21
21
|
const branchResult = await executeBranchWorkflow({
|
|
22
22
|
branches,
|
|
@@ -28,6 +28,8 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
28
28
|
handlePhaseError,
|
|
29
29
|
handleBranchCompletion,
|
|
30
30
|
handleBranchDecision,
|
|
31
|
+
preBranchExecutionHook: options.preBranchExecutionHook,
|
|
32
|
+
prePhaseExecutionHook: options.prePhaseExecutionHook,
|
|
31
33
|
maxSerializableChars,
|
|
32
34
|
workflowHookParams,
|
|
33
35
|
sharedBuffer: options.sharedBuffer,
|
|
@@ -64,7 +66,7 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
64
66
|
}
|
|
65
67
|
if (enableNonLinearExecution) {
|
|
66
68
|
if (logPhaseResults) {
|
|
67
|
-
console.info(
|
|
69
|
+
console.info(`${formatLogContext({ workflowId })}stable-request: Starting non-linear workflow execution with ${phases.length} phases`);
|
|
68
70
|
}
|
|
69
71
|
const nonLinearResult = await executeNonLinearWorkflow({
|
|
70
72
|
phases,
|
|
@@ -75,6 +77,7 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
75
77
|
handlePhaseCompletion,
|
|
76
78
|
handlePhaseError,
|
|
77
79
|
handlePhaseDecision,
|
|
80
|
+
prePhaseExecutionHook: options.prePhaseExecutionHook,
|
|
78
81
|
maxSerializableChars,
|
|
79
82
|
workflowHookParams,
|
|
80
83
|
sharedBuffer: options.sharedBuffer,
|
|
@@ -106,9 +109,9 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
106
109
|
const allResponses = phaseResults.flatMap(phase => phase.responses);
|
|
107
110
|
result.requestGroupMetrics = MetricsAggregator.extractRequestGroupMetrics(allResponses);
|
|
108
111
|
if (logPhaseResults) {
|
|
109
|
-
console.info(
|
|
112
|
+
console.info(`${formatLogContext({ workflowId })}stable-request: Non-linear workflow completed:`, `${successfulRequests}/${totalRequests} requests successful`, `across ${phaseResults.length} phase executions`, `(${workflowExecutionTime}ms)`);
|
|
110
113
|
if (nonLinearResult.terminatedEarly) {
|
|
111
|
-
console.info(
|
|
114
|
+
console.info(`${formatLogContext({ workflowId })}stable-request: Workflow terminated early: ${nonLinearResult.terminationReason}`);
|
|
112
115
|
}
|
|
113
116
|
}
|
|
114
117
|
return result;
|
|
@@ -135,7 +138,7 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
135
138
|
};
|
|
136
139
|
processPhaseResult(phaseResult);
|
|
137
140
|
if (logPhaseResults) {
|
|
138
|
-
console.error(`${formatLogContext({ workflowId, phaseId })}stable-request: Phase ${phaseId} failed:`, error);
|
|
141
|
+
console.error(`${formatLogContext({ workflowId, phaseId })}stable-request: Phase ${phaseId} failed:`, error.message);
|
|
139
142
|
}
|
|
140
143
|
try {
|
|
141
144
|
await executeWithPersistence(handlePhaseError, {
|
|
@@ -148,7 +151,7 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
148
151
|
}, workflowHookParams?.statePersistence, { workflowId }, options.sharedBuffer || {});
|
|
149
152
|
}
|
|
150
153
|
catch (hookError) {
|
|
151
|
-
console.error(
|
|
154
|
+
console.error(`${formatLogContext({ workflowId })}stable-request: Error in handlePhaseError hook:`, hookError);
|
|
152
155
|
}
|
|
153
156
|
};
|
|
154
157
|
if (enableMixedExecution && !concurrentPhaseExecution) {
|
|
@@ -167,9 +170,9 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
167
170
|
}
|
|
168
171
|
if (logPhaseResults) {
|
|
169
172
|
const phaseIds = concurrentGroup.map(({ phase, index }) => phase.id || `phase-${index + 1}`).join(', ');
|
|
170
|
-
console.info(
|
|
173
|
+
console.info(`${formatLogContext({ workflowId })}stable-request: Executing concurrent group: [${phaseIds}]`);
|
|
171
174
|
}
|
|
172
|
-
const groupPromises = concurrentGroup.map(({ phase, index }) => executePhase(phase, index, workflowId, commonGatewayOptionsWithBreaker, requestGroups, logPhaseResults, handlePhaseCompletion, maxSerializableChars, workflowHookParams, options.sharedBuffer));
|
|
175
|
+
const groupPromises = concurrentGroup.map(({ phase, index }) => executePhase(phase, index, workflowId, commonGatewayOptionsWithBreaker, requestGroups, logPhaseResults, handlePhaseCompletion, maxSerializableChars, workflowHookParams, options.sharedBuffer, undefined, options.prePhaseExecutionHook));
|
|
173
176
|
const settledGroup = await Promise.allSettled(groupPromises);
|
|
174
177
|
for (let k = 0; k < settledGroup.length; k++) {
|
|
175
178
|
const result = settledGroup[k];
|
|
@@ -184,7 +187,7 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
184
187
|
}
|
|
185
188
|
if (stopOnFirstPhaseError && failedRequests > 0) {
|
|
186
189
|
if (logPhaseResults) {
|
|
187
|
-
console.error(
|
|
190
|
+
console.error(`${formatLogContext({ workflowId })}stable-request: Stopping workflow due to phase failure in concurrent group`);
|
|
188
191
|
}
|
|
189
192
|
break;
|
|
190
193
|
}
|
|
@@ -192,14 +195,14 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
192
195
|
}
|
|
193
196
|
else {
|
|
194
197
|
if (logPhaseResults) {
|
|
195
|
-
console.info(
|
|
198
|
+
console.info(`${formatLogContext({ workflowId, phaseId: currentPhaseId })}stable-request: Starting Phase ${i + 1}/${phases.length}: ${currentPhaseId}`);
|
|
196
199
|
}
|
|
197
200
|
try {
|
|
198
201
|
const phaseResult = await executePhase(currentPhase, i, workflowId, commonGatewayOptionsWithBreaker, requestGroups, logPhaseResults, handlePhaseCompletion, maxSerializableChars, workflowHookParams, options.sharedBuffer);
|
|
199
202
|
processPhaseResult(phaseResult);
|
|
200
203
|
if (phaseResult.failedRequests > 0 && stopOnFirstPhaseError) {
|
|
201
204
|
if (logPhaseResults) {
|
|
202
|
-
console.error(
|
|
205
|
+
console.error(`${formatLogContext({ workflowId })}stable-request: Stopping workflow due to phase failure`);
|
|
203
206
|
}
|
|
204
207
|
break;
|
|
205
208
|
}
|
|
@@ -208,7 +211,7 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
208
211
|
await handlePhaseExecutionError(currentPhaseId, i, phaseError, currentPhase);
|
|
209
212
|
if (stopOnFirstPhaseError) {
|
|
210
213
|
if (logPhaseResults) {
|
|
211
|
-
console.error(
|
|
214
|
+
console.error(`${formatLogContext({ workflowId })}stable-request: Stopping workflow due to phase error`);
|
|
212
215
|
}
|
|
213
216
|
break;
|
|
214
217
|
}
|
|
@@ -218,7 +221,7 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
218
221
|
}
|
|
219
222
|
}
|
|
220
223
|
else if (concurrentPhaseExecution) {
|
|
221
|
-
const phasePromises = phases.map((phase, i) => executePhase(phase, i, workflowId, commonGatewayOptionsWithBreaker, requestGroups, logPhaseResults, handlePhaseCompletion, maxSerializableChars, workflowHookParams, options.sharedBuffer));
|
|
224
|
+
const phasePromises = phases.map((phase, i) => executePhase(phase, i, workflowId, commonGatewayOptionsWithBreaker, requestGroups, logPhaseResults, handlePhaseCompletion, maxSerializableChars, workflowHookParams, options.sharedBuffer, undefined, options.prePhaseExecutionHook));
|
|
222
225
|
const settledPhases = await Promise.allSettled(phasePromises);
|
|
223
226
|
for (let i = 0; i < settledPhases.length; i++) {
|
|
224
227
|
const result = settledPhases[i];
|
|
@@ -235,14 +238,14 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
235
238
|
const phase = phases[i];
|
|
236
239
|
const phaseId = phase.id || `phase-${i + 1}`;
|
|
237
240
|
if (logPhaseResults) {
|
|
238
|
-
console.info(
|
|
241
|
+
console.info(`${formatLogContext({ workflowId, phaseId })}stable-request: Starting Phase ${i + 1}/${phases.length}: ${phaseId}`);
|
|
239
242
|
}
|
|
240
243
|
try {
|
|
241
|
-
const phaseResult = await executePhase(phase, i, workflowId, commonGatewayOptionsWithBreaker, requestGroups, logPhaseResults, handlePhaseCompletion, maxSerializableChars, workflowHookParams, options.sharedBuffer);
|
|
244
|
+
const phaseResult = await executePhase(phase, i, workflowId, commonGatewayOptionsWithBreaker, requestGroups, logPhaseResults, handlePhaseCompletion, maxSerializableChars, workflowHookParams, options.sharedBuffer, undefined, options.prePhaseExecutionHook);
|
|
242
245
|
processPhaseResult(phaseResult);
|
|
243
|
-
if (phaseResult.
|
|
246
|
+
if (!phaseResult.success && stopOnFirstPhaseError) {
|
|
244
247
|
if (logPhaseResults) {
|
|
245
|
-
console.error(
|
|
248
|
+
console.error(`${formatLogContext({ workflowId })}stable-request: Stopping workflow due to phase error`);
|
|
246
249
|
}
|
|
247
250
|
break;
|
|
248
251
|
}
|
|
@@ -251,7 +254,7 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
251
254
|
await handlePhaseExecutionError(phaseId, i, phaseError, phase);
|
|
252
255
|
if (stopOnFirstPhaseError) {
|
|
253
256
|
if (logPhaseResults) {
|
|
254
|
-
console.error(
|
|
257
|
+
console.error(`${formatLogContext({ workflowId })}stable-request: Stopping workflow due to phase error`);
|
|
255
258
|
}
|
|
256
259
|
break;
|
|
257
260
|
}
|
|
@@ -277,14 +280,14 @@ export async function stableWorkflow(phases, options = {}) {
|
|
|
277
280
|
const allResponses = phaseResults.flatMap(phase => phase.responses);
|
|
278
281
|
result.requestGroupMetrics = MetricsAggregator.extractRequestGroupMetrics(allResponses);
|
|
279
282
|
if (logPhaseResults) {
|
|
280
|
-
console.info(
|
|
283
|
+
console.info(`${formatLogContext({ workflowId })}stable-request: Completed:`, `${successfulRequests}/${totalRequests} requests successful`, `across ${phaseResults.length}/${phases.length} phases`, `(${workflowExecutionTime}ms)`);
|
|
281
284
|
}
|
|
282
285
|
return result;
|
|
283
286
|
}
|
|
284
287
|
catch (workflowError) {
|
|
285
288
|
const workflowExecutionTime = Date.now() - workflowStartTime;
|
|
286
289
|
if (logPhaseResults) {
|
|
287
|
-
console.error(
|
|
290
|
+
console.error(`${formatLogContext({ workflowId })}stable-request: Fatal error:`, workflowError.message);
|
|
288
291
|
}
|
|
289
292
|
const errorResult = {
|
|
290
293
|
workflowId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stable-workflow.js","sourceRoot":"","sources":["../../src/core/stable-workflow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stable-workflow.js","sourceRoot":"","sources":["../../src/core/stable-workflow.ts"],"names":[],"mappings":"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"}
|
package/dist/enums/index.d.ts
CHANGED
|
@@ -37,4 +37,17 @@ export declare enum VALID_REQUEST_PROTOCOLS {
|
|
|
37
37
|
HTTP = "http",
|
|
38
38
|
HTTPS = "https"
|
|
39
39
|
}
|
|
40
|
+
export declare enum WorkflowNodeTypes {
|
|
41
|
+
PHASE = "phase",
|
|
42
|
+
BRANCH = "branch",
|
|
43
|
+
CONDITIONAL = "conditional",
|
|
44
|
+
PARALLEL_GROUP = "parallel-group",
|
|
45
|
+
MERGE_POINT = "merge-point"
|
|
46
|
+
}
|
|
47
|
+
export declare enum WorkflowEdgeConditionTypes {
|
|
48
|
+
SUCCESS = "success",
|
|
49
|
+
FAILURE = "failure",
|
|
50
|
+
CUSTOM = "custom",
|
|
51
|
+
ALWAYS = "always"
|
|
52
|
+
}
|
|
40
53
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;IAC7B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,SAAS,cAAc;CACxB;AAED,oBAAY,sBAAsB;IAChC,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,SAAS,cAAc;CACxB;AAED,oBAAY,uBAAuB;IACjC,KAAK,eAAe;IACpB,QAAQ,cAAc;IACtB,OAAO,iBAAiB;IACxB,QAAQ,cAAc;IACtB,SAAS,cAAc;CACxB;AAED,oBAAY,eAAe;IACzB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,GAAG,QAAQ;CACZ;AAED,oBAAY,eAAe;IACzB,UAAU,eAAe;IACzB,eAAe,oBAAoB;CACpC;AAED,oBAAY,gBAAgB;IAC1B,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,WAAW,gBAAgB;CAC5B;AAED,oBAAY,uBAAuB;IACjC,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,oBAAY,iBAAiB;IAC3B,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;CAC5B;AAED,oBAAY,0BAA0B;IACpC,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB"}
|
package/dist/enums/index.js
CHANGED
|
@@ -44,4 +44,19 @@ export var VALID_REQUEST_PROTOCOLS;
|
|
|
44
44
|
VALID_REQUEST_PROTOCOLS["HTTP"] = "http";
|
|
45
45
|
VALID_REQUEST_PROTOCOLS["HTTPS"] = "https";
|
|
46
46
|
})(VALID_REQUEST_PROTOCOLS || (VALID_REQUEST_PROTOCOLS = {}));
|
|
47
|
+
export var WorkflowNodeTypes;
|
|
48
|
+
(function (WorkflowNodeTypes) {
|
|
49
|
+
WorkflowNodeTypes["PHASE"] = "phase";
|
|
50
|
+
WorkflowNodeTypes["BRANCH"] = "branch";
|
|
51
|
+
WorkflowNodeTypes["CONDITIONAL"] = "conditional";
|
|
52
|
+
WorkflowNodeTypes["PARALLEL_GROUP"] = "parallel-group";
|
|
53
|
+
WorkflowNodeTypes["MERGE_POINT"] = "merge-point";
|
|
54
|
+
})(WorkflowNodeTypes || (WorkflowNodeTypes = {}));
|
|
55
|
+
export var WorkflowEdgeConditionTypes;
|
|
56
|
+
(function (WorkflowEdgeConditionTypes) {
|
|
57
|
+
WorkflowEdgeConditionTypes["SUCCESS"] = "success";
|
|
58
|
+
WorkflowEdgeConditionTypes["FAILURE"] = "failure";
|
|
59
|
+
WorkflowEdgeConditionTypes["CUSTOM"] = "custom";
|
|
60
|
+
WorkflowEdgeConditionTypes["ALWAYS"] = "always";
|
|
61
|
+
})(WorkflowEdgeConditionTypes || (WorkflowEdgeConditionTypes = {}));
|
|
47
62
|
//# sourceMappingURL=index.js.map
|
package/dist/enums/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,oCAAa,CAAA;IACb,8CAAuB,CAAA;AACzB,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AAED,MAAM,CAAN,IAAY,sBAMX;AAND,WAAY,sBAAsB;IAChC,+CAAqB,CAAA;IACrB,uCAAa,CAAA;IACb,2CAAiB,CAAA;IACjB,uCAAa,CAAA;IACb,iDAAuB,CAAA;AACzB,CAAC,EANW,sBAAsB,KAAtB,sBAAsB,QAMjC;AAED,MAAM,CAAN,IAAY,uBAMX;AAND,WAAY,uBAAuB;IACjC,+CAAoB,CAAA;IACpB,iDAAsB,CAAA;IACtB,mDAAwB,CAAA;IACxB,iDAAsB,CAAA;IACtB,kDAAuB,CAAA;AACzB,CAAC,EANW,uBAAuB,KAAvB,uBAAuB,QAMlC;AAED,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,8BAAW,CAAA;IACX,gCAAa,CAAA;IACb,oCAAiB,CAAA;IACjB,kCAAe,CAAA;IACf,8BAAW,CAAA;AACb,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B;AAED,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,4CAAyB,CAAA;IACzB,sDAAmC,CAAA;AACrC,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,+CAA2B,CAAA;AAC7B,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,wCAAa,CAAA;IACb,0CAAe,CAAA;AACjB,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC;AAED,MAAM,CAAN,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC3B,oCAAe,CAAA;IACf,sCAAiB,CAAA;IACjB,gDAA2B,CAAA;IAC3B,sDAAiC,CAAA;IACjC,gDAA2B,CAAA;AAC7B,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,QAM5B;AAED,MAAM,CAAN,IAAY,0BAKX;AALD,WAAY,0BAA0B;IACpC,iDAAmB,CAAA;IACnB,iDAAmB,CAAA;IACnB,+CAAiB,CAAA;IACjB,+CAAiB,CAAA;AACnB,CAAC,EALW,0BAA0B,KAA1B,0BAA0B,QAKrC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
export { stableRequest, stableApiGateway, stableWorkflow } from './core/index.js';
|
|
2
|
-
export { CircuitBreakerState, INVALID_AXIOS_RESPONSES, PHASE_DECISION_ACTIONS, REQUEST_METHODS, RESPONSE_ERRORS, RETRY_STRATEGIES, VALID_REQUEST_PROTOCOLS } from './enums/index.js';
|
|
3
|
-
export type { API_GATEWAY_OPTIONS, API_GATEWAY_REQUEST, API_GATEWAY_REQUEST_OPTIONS_TYPE, API_GATEWAY_RESPONSE, API_GATEWAY_RESULT, BranchDecisionHookOptions, BranchExecutionDecision, BranchExecutionRecord, BranchExecutionResult, BranchWorkflowContext, CacheConfig, CachedResponse, CircuitBreakerConfig, CONCURRENT_REQUEST_EXECUTION_OPTIONS, ERROR_LOG, EXECUTE_BRANCH_WORKFLOW_RESPONSE, EXECUTE_NON_LINEAR_WORKFLOW_RESPONSE, ExecutionContext, FinalErrorAnalysisHookOptions, HandleBranchCompletionHookOptions, HandleErrorHookOptions, HandlePhaseCompletionHookOptions, HandlePhaseDecisionHookOptions, HandlePhaseErrorHookOptions, HandleSuccessfulAttemptDataHookOptions, HookParams, PhaseExecutionDecision, PhaseDecisionHookOptions, PhaseExecutionRecord, NonLinearWorkflowContext, PreExecutionHookOptions, RateLimitConfig, RequestPreExecutionOptions, ReqFnResponse, REQUEST_DATA, RequestGroup, REQUEST_METHOD_TYPES, ResponseAnalysisHookOptions, RETRY_STRATEGY_TYPES, SEQUENTIAL_REQUEST_EXECUTION_OPTIONS, STABLE_REQUEST, STABLE_REQUEST_RESULT, STABLE_WORKFLOW_BRANCH, STABLE_WORKFLOW_PHASE, STABLE_WORKFLOW_OPTIONS, STABLE_WORKFLOW_PHASE_RESULT, STABLE_WORKFLOW_RESULT, StatePersistenceConfig, StatePersistenceOptions, SUCCESSFUL_ATTEMPT_DATA, VALID_REQUEST_PROTOCOL_TYPES, WorkflowHookParams, TRIAL_MODE_OPTIONS, WorkflowMetrics, BranchMetrics, PhaseMetrics, RequestGroupMetrics, RequestMetrics, CircuitBreakerDashboardMetrics, CacheDashboardMetrics, RateLimiterDashboardMetrics, ConcurrencyLimiterDashboardMetrics, SystemMetrics } from './types/index.js';
|
|
4
|
-
export { CacheManager, getGlobalCacheManager, resetGlobalCacheManager, CircuitBreaker, CircuitBreakerOpenError, getGlobalCircuitBreaker, resetGlobalCircuitBreaker, ConcurrencyLimiter, getGlobalConcurrencyLimiter, resetGlobalConcurrencyLimiter, delay, executeBranchWorkflow, executeConcurrently, executeNonLinearWorkflow, executePhase, executeSequentially, executeWithPersistence, extractCommonRequestConfigOptions, formatLogContext, generateAxiosRequestConfig, getNewDelayTime, isRetryableError, MetricsAggregator, prepareApiRequestData, prepareApiRequestOptions, RateLimiter, getGlobalRateLimiter, resetGlobalRateLimiter, reqFn, safelyExecuteUnknownFunction, safelyStringify, validateTrialModeProbabilities } from './utilities/index.js';
|
|
5
|
-
export type {} from './utilities/index.js';
|
|
1
|
+
export { stableRequest, stableApiGateway, stableWorkflow, stableWorkflowGraph } from './core/index.js';
|
|
2
|
+
export { CircuitBreakerState, INVALID_AXIOS_RESPONSES, PHASE_DECISION_ACTIONS, REQUEST_METHODS, RESPONSE_ERRORS, RETRY_STRATEGIES, VALID_REQUEST_PROTOCOLS, WorkflowEdgeConditionTypes, WorkflowNodeTypes } from './enums/index.js';
|
|
3
|
+
export type { API_GATEWAY_OPTIONS, API_GATEWAY_REQUEST, API_GATEWAY_REQUEST_OPTIONS_TYPE, API_GATEWAY_RESPONSE, API_GATEWAY_RESULT, BranchDecisionHookOptions, BranchExecutionDecision, BranchExecutionRecord, BranchExecutionResult, BranchWorkflowContext, CacheConfig, CachedResponse, CircuitBreakerConfig, CONCURRENT_REQUEST_EXECUTION_OPTIONS, ERROR_LOG, EXECUTE_BRANCH_WORKFLOW_RESPONSE, EXECUTE_NON_LINEAR_WORKFLOW_RESPONSE, ExecutionContext, FinalErrorAnalysisHookOptions, HandleBranchCompletionHookOptions, HandleErrorHookOptions, HandlePhaseCompletionHookOptions, HandlePhaseDecisionHookOptions, HandlePhaseErrorHookOptions, HandleSuccessfulAttemptDataHookOptions, HookParams, PrePhaseExecutionHookOptions, PreBranchExecutionHookOptions, PhaseExecutionDecision, PhaseDecisionHookOptions, PhaseExecutionRecord, NonLinearWorkflowContext, PreExecutionHookOptions, RateLimitConfig, RequestPreExecutionOptions, ReqFnResponse, REQUEST_DATA, RequestGroup, REQUEST_METHOD_TYPES, ResponseAnalysisHookOptions, RETRY_STRATEGY_TYPES, SEQUENTIAL_REQUEST_EXECUTION_OPTIONS, STABLE_REQUEST, STABLE_REQUEST_RESULT, STABLE_WORKFLOW_BRANCH, STABLE_WORKFLOW_PHASE, STABLE_WORKFLOW_OPTIONS, STABLE_WORKFLOW_PHASE_RESULT, STABLE_WORKFLOW_RESULT, StatePersistenceConfig, StatePersistenceOptions, SUCCESSFUL_ATTEMPT_DATA, VALID_REQUEST_PROTOCOL_TYPES, WorkflowHookParams, TRIAL_MODE_OPTIONS, WorkflowMetrics, BranchMetrics, PhaseMetrics, RequestGroupMetrics, RequestMetrics, CircuitBreakerDashboardMetrics, CacheDashboardMetrics, RateLimiterDashboardMetrics, ConcurrencyLimiterDashboardMetrics, SystemMetrics, WorkflowGraph, WorkflowNode, WorkflowNodeType, WorkflowEdge, EdgeCondition, EdgeEvaluationContext, ConditionalNode, ConditionalEvaluationContext, WorkflowGraphOptions, WorkflowGraphValidationResult, WorkflowGraphExecutionPlan, EdgeConditionType } from './types/index.js';
|
|
4
|
+
export { CacheManager, getGlobalCacheManager, resetGlobalCacheManager, CircuitBreaker, CircuitBreakerOpenError, getGlobalCircuitBreaker, resetGlobalCircuitBreaker, ConcurrencyLimiter, getGlobalConcurrencyLimiter, resetGlobalConcurrencyLimiter, delay, executeBranchWorkflow, executeConcurrently, executeNonLinearWorkflow, executePhase, executeSequentially, executeWithPersistence, extractCommonRequestConfigOptions, formatLogContext, generateAxiosRequestConfig, getNewDelayTime, isRetryableError, MetricsAggregator, prepareApiRequestData, prepareApiRequestOptions, RateLimiter, getGlobalRateLimiter, resetGlobalRateLimiter, reqFn, safelyExecuteUnknownFunction, safelyStringify, validateTrialModeProbabilities, WorkflowGraphBuilder, createLinearWorkflowGraph, validateWorkflowGraph, detectCycles, detectUnreachableNodes, detectOrphanNodes, calculateGraphDepth, executeWorkflowGraph } from './utilities/index.js';
|
|
6
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,gBAAgB,EAChB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACR,mBAAmB,EACnB,mBAAmB,EACnB,gCAAgC,EAChC,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,oCAAoC,EACpC,SAAS,EACT,gCAAgC,EAChC,oCAAoC,EACpC,gBAAgB,EAChB,6BAA6B,EAC7B,iCAAiC,EACjC,sBAAsB,EACtB,gCAAgC,EAChC,8BAA8B,EAC9B,2BAA2B,EAC3B,sCAAsC,EACtC,UAAU,EACV,4BAA4B,EAC5B,6BAA6B,EAC7B,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,0BAA0B,EAC1B,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,oCAAoC,EACpC,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,4BAA4B,EAC5B,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,8BAA8B,EAC9B,qBAAqB,EACrB,2BAA2B,EAC3B,kCAAkC,EAClC,aAAa,EACb,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,4BAA4B,EAC5B,oBAAoB,EACpB,6BAA6B,EAC7B,0BAA0B,EAC1B,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACH,YAAY,EACZ,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,2BAA2B,EAC3B,6BAA6B,EAC7B,KAAK,EACL,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,iCAAiC,EACjC,gBAAgB,EAChB,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,WAAW,EACX,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,EACL,4BAA4B,EAC5B,eAAe,EACf,8BAA8B,EAC9B,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACvB,MAAM,sBAAsB,CAAC"}
|