@emmvish/stable-request 1.8.1 → 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.
Files changed (41) hide show
  1. package/README.md +72 -0
  2. package/dist/core/index.d.ts +1 -0
  3. package/dist/core/index.d.ts.map +1 -1
  4. package/dist/core/index.js +1 -0
  5. package/dist/core/index.js.map +1 -1
  6. package/dist/core/stable-api-gateway.d.ts.map +1 -1
  7. package/dist/core/stable-api-gateway.js +1 -5
  8. package/dist/core/stable-api-gateway.js.map +1 -1
  9. package/dist/core/stable-workflow-graph.d.ts +3 -0
  10. package/dist/core/stable-workflow-graph.d.ts.map +1 -0
  11. package/dist/core/stable-workflow-graph.js +5 -0
  12. package/dist/core/stable-workflow-graph.js.map +1 -0
  13. package/dist/core/stable-workflow.js +17 -17
  14. package/dist/core/stable-workflow.js.map +1 -1
  15. package/dist/enums/index.d.ts +13 -0
  16. package/dist/enums/index.d.ts.map +1 -1
  17. package/dist/enums/index.js +15 -0
  18. package/dist/enums/index.js.map +1 -1
  19. package/dist/index.d.ts +4 -4
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +3 -3
  22. package/dist/index.js.map +1 -1
  23. package/dist/types/index.d.ts +67 -1
  24. package/dist/types/index.d.ts.map +1 -1
  25. package/dist/utilities/execute-workflow-graph.d.ts +3 -0
  26. package/dist/utilities/execute-workflow-graph.d.ts.map +1 -0
  27. package/dist/utilities/execute-workflow-graph.js +286 -0
  28. package/dist/utilities/execute-workflow-graph.js.map +1 -0
  29. package/dist/utilities/index.d.ts +3 -0
  30. package/dist/utilities/index.d.ts.map +1 -1
  31. package/dist/utilities/index.js +3 -0
  32. package/dist/utilities/index.js.map +1 -1
  33. package/dist/utilities/validate-workflow-graph.d.ts +10 -0
  34. package/dist/utilities/validate-workflow-graph.d.ts.map +1 -0
  35. package/dist/utilities/validate-workflow-graph.js +233 -0
  36. package/dist/utilities/validate-workflow-graph.js.map +1 -0
  37. package/dist/utilities/workflow-graph-builder.d.ts +37 -0
  38. package/dist/utilities/workflow-graph-builder.d.ts.map +1 -0
  39. package/dist/utilities/workflow-graph-builder.js +225 -0
  40. package/dist/utilities/workflow-graph-builder.js.map +1 -0
  41. 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
@@ -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
@@ -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"}
@@ -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
@@ -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;AAY3B,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
+ {"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":"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"}
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,5 @@
1
+ import { executeWorkflowGraph } from '../utilities/index.js';
2
+ export async function stableWorkflowGraph(graph, options = {}) {
3
+ return executeWorkflowGraph(graph, options);
4
+ }
5
+ //# sourceMappingURL=stable-workflow-graph.js.map
@@ -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,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('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)), handlePhaseDecision = (options) => { }, handleBranchCompletion = ({ success, branchId, workflowId, maxSerializableChars }) => console.info(`stable-request: [Workflow: ${workflowId}] 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;
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(`\nstable-request: [Workflow: ${workflowId}] Starting branch-based workflow execution with ${branches.length} branches`);
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,
@@ -66,7 +66,7 @@ export async function stableWorkflow(phases, options = {}) {
66
66
  }
67
67
  if (enableNonLinearExecution) {
68
68
  if (logPhaseResults) {
69
- console.info(`\nstable-request: [Workflow: ${workflowId}] Starting non-linear workflow execution with ${phases.length} phases`);
69
+ console.info(`${formatLogContext({ workflowId })}stable-request: Starting non-linear workflow execution with ${phases.length} phases`);
70
70
  }
71
71
  const nonLinearResult = await executeNonLinearWorkflow({
72
72
  phases,
@@ -109,9 +109,9 @@ export async function stableWorkflow(phases, options = {}) {
109
109
  const allResponses = phaseResults.flatMap(phase => phase.responses);
110
110
  result.requestGroupMetrics = MetricsAggregator.extractRequestGroupMetrics(allResponses);
111
111
  if (logPhaseResults) {
112
- console.info(`\nstable-request: [Workflow: ${workflowId}] Non-linear workflow completed:`, `${successfulRequests}/${totalRequests} requests successful`, `across ${phaseResults.length} phase executions`, `(${workflowExecutionTime}ms)`);
112
+ console.info(`${formatLogContext({ workflowId })}stable-request: Non-linear workflow completed:`, `${successfulRequests}/${totalRequests} requests successful`, `across ${phaseResults.length} phase executions`, `(${workflowExecutionTime}ms)`);
113
113
  if (nonLinearResult.terminatedEarly) {
114
- console.info(`stable-request: [Workflow: ${workflowId}] Workflow terminated early: ${nonLinearResult.terminationReason}`);
114
+ console.info(`${formatLogContext({ workflowId })}stable-request: Workflow terminated early: ${nonLinearResult.terminationReason}`);
115
115
  }
116
116
  }
117
117
  return result;
@@ -138,7 +138,7 @@ export async function stableWorkflow(phases, options = {}) {
138
138
  };
139
139
  processPhaseResult(phaseResult);
140
140
  if (logPhaseResults) {
141
- console.error(`${formatLogContext({ workflowId, phaseId })}stable-request: Phase ${phaseId} failed:`, error);
141
+ console.error(`${formatLogContext({ workflowId, phaseId })}stable-request: Phase ${phaseId} failed:`, error.message);
142
142
  }
143
143
  try {
144
144
  await executeWithPersistence(handlePhaseError, {
@@ -151,7 +151,7 @@ export async function stableWorkflow(phases, options = {}) {
151
151
  }, workflowHookParams?.statePersistence, { workflowId }, options.sharedBuffer || {});
152
152
  }
153
153
  catch (hookError) {
154
- console.error(`stable-request: [Workflow: ${workflowId}] Error in handlePhaseError hook:`, hookError);
154
+ console.error(`${formatLogContext({ workflowId })}stable-request: Error in handlePhaseError hook:`, hookError);
155
155
  }
156
156
  };
157
157
  if (enableMixedExecution && !concurrentPhaseExecution) {
@@ -170,7 +170,7 @@ export async function stableWorkflow(phases, options = {}) {
170
170
  }
171
171
  if (logPhaseResults) {
172
172
  const phaseIds = concurrentGroup.map(({ phase, index }) => phase.id || `phase-${index + 1}`).join(', ');
173
- console.info(`\nstable-request: [Workflow: ${workflowId}] Executing concurrent group: [${phaseIds}]`);
173
+ console.info(`${formatLogContext({ workflowId })}stable-request: Executing concurrent group: [${phaseIds}]`);
174
174
  }
175
175
  const groupPromises = concurrentGroup.map(({ phase, index }) => executePhase(phase, index, workflowId, commonGatewayOptionsWithBreaker, requestGroups, logPhaseResults, handlePhaseCompletion, maxSerializableChars, workflowHookParams, options.sharedBuffer, undefined, options.prePhaseExecutionHook));
176
176
  const settledGroup = await Promise.allSettled(groupPromises);
@@ -187,7 +187,7 @@ export async function stableWorkflow(phases, options = {}) {
187
187
  }
188
188
  if (stopOnFirstPhaseError && failedRequests > 0) {
189
189
  if (logPhaseResults) {
190
- console.error(`stable-request: [Workflow: ${workflowId}] Stopping workflow due to phase failure in concurrent group`);
190
+ console.error(`${formatLogContext({ workflowId })}stable-request: Stopping workflow due to phase failure in concurrent group`);
191
191
  }
192
192
  break;
193
193
  }
@@ -195,14 +195,14 @@ export async function stableWorkflow(phases, options = {}) {
195
195
  }
196
196
  else {
197
197
  if (logPhaseResults) {
198
- console.info(`\nstable-request: [Workflow: ${workflowId}] Starting Phase ${i + 1}/${phases.length}: ${currentPhaseId}`);
198
+ console.info(`${formatLogContext({ workflowId, phaseId: currentPhaseId })}stable-request: Starting Phase ${i + 1}/${phases.length}: ${currentPhaseId}`);
199
199
  }
200
200
  try {
201
201
  const phaseResult = await executePhase(currentPhase, i, workflowId, commonGatewayOptionsWithBreaker, requestGroups, logPhaseResults, handlePhaseCompletion, maxSerializableChars, workflowHookParams, options.sharedBuffer);
202
202
  processPhaseResult(phaseResult);
203
203
  if (phaseResult.failedRequests > 0 && stopOnFirstPhaseError) {
204
204
  if (logPhaseResults) {
205
- console.error(`stable-request: [Workflow: ${workflowId}] Stopping workflow due to phase failure`);
205
+ console.error(`${formatLogContext({ workflowId })}stable-request: Stopping workflow due to phase failure`);
206
206
  }
207
207
  break;
208
208
  }
@@ -211,7 +211,7 @@ export async function stableWorkflow(phases, options = {}) {
211
211
  await handlePhaseExecutionError(currentPhaseId, i, phaseError, currentPhase);
212
212
  if (stopOnFirstPhaseError) {
213
213
  if (logPhaseResults) {
214
- console.error(`stable-request: [Workflow: ${workflowId}] Stopping workflow due to phase error`);
214
+ console.error(`${formatLogContext({ workflowId })}stable-request: Stopping workflow due to phase error`);
215
215
  }
216
216
  break;
217
217
  }
@@ -238,14 +238,14 @@ export async function stableWorkflow(phases, options = {}) {
238
238
  const phase = phases[i];
239
239
  const phaseId = phase.id || `phase-${i + 1}`;
240
240
  if (logPhaseResults) {
241
- console.info(`\nstable-request: [Workflow: ${workflowId}] Starting Phase ${i + 1}/${phases.length}: ${phaseId}`);
241
+ console.info(`${formatLogContext({ workflowId, phaseId })}stable-request: Starting Phase ${i + 1}/${phases.length}: ${phaseId}`);
242
242
  }
243
243
  try {
244
244
  const phaseResult = await executePhase(phase, i, workflowId, commonGatewayOptionsWithBreaker, requestGroups, logPhaseResults, handlePhaseCompletion, maxSerializableChars, workflowHookParams, options.sharedBuffer, undefined, options.prePhaseExecutionHook);
245
245
  processPhaseResult(phaseResult);
246
246
  if (!phaseResult.success && stopOnFirstPhaseError) {
247
247
  if (logPhaseResults) {
248
- console.error(`stable-request: [Workflow: ${workflowId}] Stopping workflow due to phase error`);
248
+ console.error(`${formatLogContext({ workflowId })}stable-request: Stopping workflow due to phase error`);
249
249
  }
250
250
  break;
251
251
  }
@@ -254,7 +254,7 @@ export async function stableWorkflow(phases, options = {}) {
254
254
  await handlePhaseExecutionError(phaseId, i, phaseError, phase);
255
255
  if (stopOnFirstPhaseError) {
256
256
  if (logPhaseResults) {
257
- console.error(`stable-request: [Workflow: ${workflowId}] Stopping workflow due to phase error`);
257
+ console.error(`${formatLogContext({ workflowId })}stable-request: Stopping workflow due to phase error`);
258
258
  }
259
259
  break;
260
260
  }
@@ -280,14 +280,14 @@ export async function stableWorkflow(phases, options = {}) {
280
280
  const allResponses = phaseResults.flatMap(phase => phase.responses);
281
281
  result.requestGroupMetrics = MetricsAggregator.extractRequestGroupMetrics(allResponses);
282
282
  if (logPhaseResults) {
283
- console.info(`\nstable-request: [Workflow: ${workflowId}] Completed:`, `${successfulRequests}/${totalRequests} requests successful`, `across ${phaseResults.length}/${phases.length} phases`, `(${workflowExecutionTime}ms)`);
283
+ console.info(`${formatLogContext({ workflowId })}stable-request: Completed:`, `${successfulRequests}/${totalRequests} requests successful`, `across ${phaseResults.length}/${phases.length} phases`, `(${workflowExecutionTime}ms)`);
284
284
  }
285
285
  return result;
286
286
  }
287
287
  catch (workflowError) {
288
288
  const workflowExecutionTime = Date.now() - workflowStartTime;
289
289
  if (logPhaseResults) {
290
- console.error(`stable-request: [Workflow: ${workflowId}] Fatal error:`, workflowError.message);
290
+ console.error(`${formatLogContext({ workflowId })}stable-request: Fatal error:`, workflowError.message);
291
291
  }
292
292
  const errorResult = {
293
293
  workflowId,
@@ -1 +1 @@
1
- {"version":3,"file":"stable-workflow.js","sourceRoot":"","sources":["../../src/core/stable-workflow.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,qBAAqB,EACrB,YAAY,EACZ,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACpB,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,mBAAmB,GAAG,CAAC,OAAY,EAAE,EAAE,GAAE,CAAC,EAC1C,sBAAsB,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,oBAAoB,EAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CACnG,8BAA8B,UAAU,YAAY,QAAQ,2BAA2B,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAC3H,EACD,oBAAoB,GAAG,CAAC,QAAa,EAAE,YAAiB,EAAE,oBAA6B,EAAE,EAAE,GAAE,CAAC,EAC9F,oBAAoB,GAAG,IAAI,EAC3B,aAAa,GAAG,EAAE,EAClB,kBAAkB,GAAG,EAAE,EACvB,wBAAwB,GAAG,KAAK,EAChC,oBAAoB,GAAG,KAAK,EAC5B,qBAAqB,GAAG,KAAK,EAC7B,wBAAwB,GAAG,KAAK,EAChC,qBAAqB,GAAG,IAAI,EAC5B,QAAQ,EACR,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,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,cAAc;QAC9D,CAAC,CAAC,IAAI,cAAc,CAAC,oBAAoB,CAAC,cAAc,CAAC;QACzD,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,+BAA+B,GAAG,sBAAsB;QAC1D,CAAC,CAAC,EAAE,GAAG,oBAAoB,EAAE,cAAc,EAAE,sBAA6B,EAAE;QAC5E,CAAC,CAAC,oBAAoB,CAAC;IAE3B,IAAI,CAAC;QACD,IAAI,qBAAqB,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,IAAI,eAAe,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CACR,gCAAgC,UAAU,mDAAmD,QAAQ,CAAC,MAAM,WAAW,CAC1H,CAAC;YACN,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAAC;gBAC7C,QAAQ;gBACR,UAAU;gBACV,oBAAoB,EAAE,+BAA+B;gBACrD,aAAa;gBACb,eAAe;gBACf,qBAAqB;gBACrB,gBAAgB;gBAChB,sBAAsB;gBACtB,oBAAoB;gBACpB,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;gBACtD,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;gBACpD,oBAAoB;gBACpB,kBAAkB;gBAClB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,qBAAqB;gBACrB,qBAAqB;aACxB,CAAC,CAAC;YAEH,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;YACnD,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;YAC3C,kBAAkB,GAAG,YAAY,CAAC,kBAAkB,CAAC;YACrD,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC;YAE7C,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;YAC7D,MAAM,eAAe,GAAG,cAAc,KAAK,CAAC,CAAC;YAE7C,MAAM,MAAM,GAA2B;gBACnC,UAAU;gBACV,OAAO,EAAE,eAAe;gBACxB,aAAa,EAAE,qBAAqB;gBACpC,SAAS,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE;gBACpD,WAAW,EAAE,YAAY,CAAC,eAAe,CAAC,MAAM;gBAChD,eAAe,EAAE,YAAY,CAAC,eAAe,CAAC,MAAM;gBACpD,aAAa;gBACb,kBAAkB;gBAClB,cAAc;gBACd,MAAM,EAAE,YAAY;gBACpB,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;gBAC/C,QAAQ,EAAE,YAAY,CAAC,aAAa;gBACpC,sBAAsB,EAAE,YAAY,CAAC,sBAAsB;gBAC3D,eAAe,EAAE,YAAY,CAAC,eAAe;gBAC7C,iBAAiB,EAAE,YAAY,CAAC,iBAAiB;aACpD,CAAC;YAEF,MAAM,CAAC,OAAO,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YAElE,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACpE,MAAM,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;YAExF,OAAO,MAAM,CAAC;QAClB,CAAC;QAGD,IAAI,wBAAwB,EAAE,CAAC;YAC3B,IAAI,eAAe,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CACR,gCAAgC,UAAU,iDAAiD,MAAM,CAAC,MAAM,SAAS,CACpH,CAAC;YACN,CAAC;YAED,MAAM,eAAe,GAAG,MAAM,wBAAwB,CAAC;gBACnD,MAAM;gBACN,UAAU;gBACV,oBAAoB,EAAE,+BAA+B;gBACrD,aAAa;gBACb,eAAe;gBACf,qBAAqB;gBACrB,gBAAgB;gBAChB,mBAAmB;gBACnB,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;gBACpD,oBAAoB;gBACpB,kBAAkB;gBAClB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,qBAAqB;gBACrB,qBAAqB;aACxB,CAAC,CAAC;YAEH,YAAY,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YACnD,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC;YAC9C,kBAAkB,GAAG,eAAe,CAAC,kBAAkB,CAAC;YACxD,cAAc,GAAG,eAAe,CAAC,cAAc,CAAC;YAEhD,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;YAC7D,MAAM,eAAe,GAAG,cAAc,KAAK,CAAC,CAAC;YAE7C,MAAM,MAAM,GAA6C;gBACrD,UAAU;gBACV,OAAO,EAAE,eAAe;gBACxB,aAAa,EAAE,qBAAqB;gBACpC,SAAS,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE;gBACpD,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,eAAe,EAAE,YAAY,CAAC,MAAM;gBACpC,aAAa;gBACb,kBAAkB;gBAClB,cAAc;gBACd,MAAM,EAAE,YAAY;gBACpB,gBAAgB,EAAE,eAAe,CAAC,gBAAgB;gBAClD,eAAe,EAAE,eAAe,CAAC,eAAe;gBAChD,iBAAiB,EAAE,eAAe,CAAC,iBAAiB;aACvD,CAAC;YAEF,MAAM,CAAC,OAAO,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YAElE,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACpE,MAAM,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;YAExF,IAAI,eAAe,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CACR,gCAAgC,UAAU,kCAAkC,EAC5E,GAAG,kBAAkB,IAAI,aAAa,sBAAsB,EAC5D,UAAU,YAAY,CAAC,MAAM,mBAAmB,EAChD,IAAI,qBAAqB,KAAK,CACjC,CAAC;gBAEF,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC;oBAClC,OAAO,CAAC,IAAI,CACR,8BAA8B,UAAU,gCAAgC,eAAe,CAAC,iBAAiB,EAAE,CAC9G,CAAC;gBACN,CAAC;YACL,CAAC;YAED,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,MAAM,kBAAkB,GAAG,CAAC,WAAuE,EAAE,EAAE;YACnG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/B,aAAa,IAAI,WAAW,CAAC,aAAa,CAAC;YAC3C,kBAAkB,IAAI,WAAW,CAAC,kBAAkB,CAAC;YACrD,cAAc,IAAI,WAAW,CAAC,cAAc,CAAC;QACjD,CAAC,CAAC;QAEF,MAAM,yBAAyB,GAAG,KAAK,EAAE,OAAe,EAAE,UAAkB,EAAE,KAAU,EAAE,KAA+D,EAAE,EAAE;YACzJ,MAAM,WAAW,GAAG;gBAChB,UAAU;gBACV,OAAO;gBACP,UAAU;gBACV,OAAO,EAAE,KAAK;gBACd,aAAa,EAAE,CAAC;gBAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;gBACpC,kBAAkB,EAAE,CAAC;gBACrB,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;gBACrC,SAAS,EAAE,EAAE;gBACb,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,wBAAwB;aACpD,CAAC;YAEF,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAEhC,IAAI,eAAe,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CACT,GAAG,gBAAgB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,yBAAyB,OAAO,UAAU,EACtF,KAAK,CACR,CAAC;YACN,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,sBAAsB,CACxB,gBAAgB,EAAE;oBACd,UAAU;oBACV,WAAW;oBACX,KAAK;oBACL,oBAAoB;oBACpB,MAAM,EAAE,kBAAkB,EAAE,sBAAsB;oBAClD,YAAY,EAAE,OAAO,CAAC,YAAY;iBACrC,EACD,kBAAkB,EAAE,gBAAgB,EACpC,EAAE,UAAU,EAAE,EACd,OAAO,CAAC,YAAY,IAAI,EAAE,CAC7B,CAAC;YACN,CAAC;YAAC,OAAO,SAAS,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CACT,8BAA8B,UAAU,mCAAmC,EAC3E,SAAS,CACZ,CAAC;YACN,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,oBAAoB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACpD,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,cAAc,GAAG,YAAY,CAAC,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBAE3D,IAAI,YAAY,CAAC,mBAAmB,EAAE,CAAC;oBACnC,MAAM,eAAe,GAAyF;wBAC1G,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE;qBACpC,CAAC;oBAEF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;wBACxD,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;wBACrD,CAAC,EAAE,CAAC;oBACR,CAAC;oBAED,IAAI,eAAe,EAAE,CAAC;wBAClB,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CACtD,KAAK,CAAC,EAAE,IAAI,SAAS,KAAK,GAAG,CAAC,EAAE,CACnC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACb,OAAO,CAAC,IAAI,CACR,gCAAgC,UAAU,kCAAkC,QAAQ,GAAG,CAC1F,CAAC;oBACN,CAAC;oBAED,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAC3D,YAAY,CACR,KAAK,EACL,KAAK,EACL,UAAU,EACV,+BAA+B,EAC/B,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,OAAO,CAAC,YAAY,EACpB,SAAS,EACT,OAAO,CAAC,qBAAqB,CAChC,CACJ,CAAC;oBAEF,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;oBAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;wBAC/B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;wBAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,IAAI,SAAS,KAAK,GAAG,CAAC,EAAE,CAAC;wBAEjD,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;4BAChC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACrC,CAAC;6BAAM,CAAC;4BACJ,MAAM,yBAAyB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;wBAC1E,CAAC;oBACL,CAAC;oBAED,IAAI,qBAAqB,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;wBAC9C,IAAI,eAAe,EAAE,CAAC;4BAClB,OAAO,CAAC,KAAK,CACT,8BAA8B,UAAU,8DAA8D,CACzG,CAAC;wBACN,CAAC;wBACD,MAAM;oBACV,CAAC;oBAED,CAAC,GAAG,CAAC,CAAC;gBACV,CAAC;qBAAM,CAAC;oBACJ,IAAI,eAAe,EAAE,CAAC;wBAClB,OAAO,CAAC,IAAI,CACR,gCAAgC,UAAU,oBAAoB,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc,EAAE,CAC5G,CAAC;oBACN,CAAC;oBAED,IAAI,CAAC;wBACD,MAAM,WAAW,GAAG,MAAM,YAAY,CAClC,YAAY,EACZ,CAAC,EACD,UAAU,EACV,+BAA+B,EAC/B,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,OAAO,CAAC,YAAY,CACvB,CAAC;wBAEF,kBAAkB,CAAC,WAAW,CAAC,CAAC;wBAEhC,IAAI,WAAW,CAAC,cAAc,GAAG,CAAC,IAAI,qBAAqB,EAAE,CAAC;4BAC1D,IAAI,eAAe,EAAE,CAAC;gCAClB,OAAO,CAAC,KAAK,CACT,8BAA8B,UAAU,0CAA0C,CACrF,CAAC;4BACN,CAAC;4BACD,MAAM;wBACV,CAAC;oBAEL,CAAC;oBAAC,OAAO,UAAe,EAAE,CAAC;wBACvB,MAAM,yBAAyB,CAAC,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;wBAE7E,IAAI,qBAAqB,EAAE,CAAC;4BACxB,IAAI,eAAe,EAAE,CAAC;gCAClB,OAAO,CAAC,KAAK,CACT,8BAA8B,UAAU,wCAAwC,CACnF,CAAC;4BACN,CAAC;4BACD,MAAM;wBACV,CAAC;oBACL,CAAC;oBAED,CAAC,EAAE,CAAC;gBACR,CAAC;YACL,CAAC;QACL,CAAC;aAAM,IAAI,wBAAwB,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAC1C,YAAY,CACR,KAAK,EACL,CAAC,EACD,UAAU,EACV,+BAA+B,EAC/B,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,OAAO,CAAC,YAAY,EACpB,SAAS,EACT,OAAO,CAAC,qBAAqB,CAChC,CACJ,CAAC;YAEF,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAE9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBAChC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACJ,MAAM,yBAAyB,CAC3B,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,EAChC,CAAC,EACD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,CAAC,CAAC,CACZ,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBAE7C,IAAI,eAAe,EAAE,CAAC;oBAClB,OAAO,CAAC,IAAI,CAAC,gCAAgC,UAAU,oBAAoB,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;gBACrH,CAAC;gBAED,IAAI,CAAC;oBACD,MAAM,WAAW,GAAG,MAAM,YAAY,CAClC,KAAK,EACL,CAAC,EACD,UAAU,EACV,+BAA+B,EAC/B,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,OAAO,CAAC,YAAY,EACpB,SAAS,EACT,OAAO,CAAC,qBAAqB,CAChC,CAAC;oBAEF,kBAAkB,CAAC,WAAW,CAAC,CAAC;oBAEhC,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,qBAAqB,EAAE,CAAC;wBAChD,IAAI,eAAe,EAAE,CAAC;4BAClB,OAAO,CAAC,KAAK,CACT,8BAA8B,UAAU,wCAAwC,CACnF,CAAC;wBACN,CAAC;wBACD,MAAM;oBACV,CAAC;gBAEL,CAAC;gBAAC,OAAO,UAAe,EAAE,CAAC;oBACvB,MAAM,yBAAyB,CAAC,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;oBAE/D,IAAI,qBAAqB,EAAE,CAAC;wBACxB,IAAI,eAAe,EAAE,CAAC;4BAClB,OAAO,CAAC,KAAK,CACT,8BAA8B,UAAU,wCAAwC,CACnF,CAAC;wBACN,CAAC;wBACD,MAAM;oBACV,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;QAC7D,MAAM,eAAe,GAAG,cAAc,KAAK,CAAC,CAAC;QAE7C,MAAM,MAAM,GAA6C;YACrD,UAAU;YACV,OAAO,EAAE,eAAe;YACxB,aAAa,EAAE,qBAAqB;YACpC,SAAS,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE;YACpD,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,eAAe,EAAE,YAAY,CAAC,MAAM;YACpC,aAAa;YACb,kBAAkB;YAClB,cAAc;YACd,MAAM,EAAE,YAAY;YACpB,gBAAgB,EAAE,EAAE;SACvB,CAAC;QAEF,MAAM,CAAC,OAAO,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAElE,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpE,MAAM,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;QAExF,IAAI,eAAe,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CACR,gCAAgC,UAAU,cAAc,EACxD,GAAG,kBAAkB,IAAI,aAAa,sBAAsB,EAC5D,UAAU,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,SAAS,EACvD,IAAI,qBAAqB,KAAK,CACjC,CAAC;QACN,CAAC;QAED,OAAO,MAAM,CAAC;IAElB,CAAC;IAAC,OAAO,aAAkB,EAAE,CAAC;QAC1B,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;QAE7D,IAAI,eAAe,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CACT,8BAA8B,UAAU,gBAAgB,EACxD,aAAa,CAAC,OAAO,CACxB,CAAC;QACN,CAAC;QAED,MAAM,WAAW,GAA2B;YACxC,UAAU;YACV,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,qBAAqB;YACpC,SAAS,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE;YACpD,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,eAAe,EAAE,YAAY,CAAC,MAAM;YACpC,aAAa;YACb,kBAAkB;YAClB,cAAc;YACd,MAAM,EAAE,YAAY;YACpB,gBAAgB,EAAE,EAAE;YACpB,KAAK,EAAE,aAAa,CAAC,OAAO;SAC/B,CAAC;QAEF,WAAW,CAAC,OAAO,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAE5E,OAAO,WAAW,CAAC;IACvB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"stable-workflow.js","sourceRoot":"","sources":["../../src/core/stable-workflow.ts"],"names":[],"mappings":"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"}
@@ -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;IAC3B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,SAAS,cAAc;CAC1B;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"}
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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC3B,wCAAiB,CAAA;IACjB,oCAAa,CAAA;IACb,8CAAuB,CAAA;AAC3B,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"}
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,5 +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, 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 } 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';
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';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,gBAAgB,EAChB,cAAc,EACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EAC1B,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,EAChB,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,EACjC,MAAM,sBAAsB,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"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
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 { 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';
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 { 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';
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,gBAAgB,EAChB,cAAc,EACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EAC1B,MAAM,kBAAkB,CAAC;AAsE1B,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,EACjC,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","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;AAkF1B,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"}
@@ -1,5 +1,5 @@
1
1
  import { AxiosRequestConfig } from 'axios';
2
- import { PHASE_DECISION_ACTIONS, REQUEST_METHODS, RESPONSE_ERRORS, RETRY_STRATEGIES, VALID_REQUEST_PROTOCOLS } from '../enums/index.js';
2
+ import { PHASE_DECISION_ACTIONS, REQUEST_METHODS, RESPONSE_ERRORS, RETRY_STRATEGIES, VALID_REQUEST_PROTOCOLS, WorkflowEdgeConditionTypes, WorkflowNodeTypes } from '../enums/index.js';
3
3
  import { CircuitBreaker } from '../utilities/index.js';
4
4
  export interface ExecutionContext {
5
5
  workflowId?: string;
@@ -713,5 +713,71 @@ export interface SystemMetrics {
713
713
  rateLimiter?: RateLimiterDashboardMetrics;
714
714
  concurrencyLimiter?: ConcurrencyLimiterDashboardMetrics;
715
715
  }
716
+ export type WorkflowNodeType = WorkflowNodeTypes.PHASE | WorkflowNodeTypes.BRANCH | WorkflowNodeTypes.CONDITIONAL | WorkflowNodeTypes.PARALLEL_GROUP | WorkflowNodeTypes.MERGE_POINT;
717
+ export interface WorkflowGraph<RequestDataType = any, ResponseDataType = any> {
718
+ nodes: Map<string, WorkflowNode<RequestDataType, ResponseDataType>>;
719
+ edges: Map<string, WorkflowEdge[]>;
720
+ entryPoint: string;
721
+ exitPoints?: string[];
722
+ metadata?: Record<string, any>;
723
+ }
724
+ export interface WorkflowNode<RequestDataType = any, ResponseDataType = any> {
725
+ id: string;
726
+ type: WorkflowNodeType;
727
+ phase?: STABLE_WORKFLOW_PHASE<RequestDataType, ResponseDataType>;
728
+ branch?: STABLE_WORKFLOW_BRANCH<RequestDataType, ResponseDataType>;
729
+ condition?: ConditionalNode<ResponseDataType>;
730
+ parallelNodes?: string[];
731
+ waitForNodes?: string[];
732
+ metadata?: Record<string, any>;
733
+ }
734
+ export interface WorkflowEdge {
735
+ from: string;
736
+ to: string;
737
+ condition?: EdgeCondition;
738
+ weight?: number;
739
+ label?: string;
740
+ metadata?: Record<string, any>;
741
+ }
742
+ export type EdgeConditionType = WorkflowEdgeConditionTypes.SUCCESS | WorkflowEdgeConditionTypes.FAILURE | WorkflowEdgeConditionTypes.CUSTOM | WorkflowEdgeConditionTypes.ALWAYS;
743
+ export interface EdgeCondition {
744
+ type: EdgeConditionType;
745
+ evaluate?: (context: EdgeEvaluationContext) => boolean | Promise<boolean>;
746
+ }
747
+ export interface EdgeEvaluationContext {
748
+ results: Map<string, STABLE_WORKFLOW_PHASE_RESULT<any>>;
749
+ sharedBuffer?: Record<string, any>;
750
+ executionHistory: PhaseExecutionRecord[];
751
+ currentNodeId: string;
752
+ }
753
+ export interface ConditionalNode<ResponseDataType = any> {
754
+ evaluate: (context: ConditionalEvaluationContext<ResponseDataType>) => string | Promise<string>;
755
+ }
756
+ export interface ConditionalEvaluationContext<ResponseDataType = any> {
757
+ results: Map<string, STABLE_WORKFLOW_PHASE_RESULT<ResponseDataType>>;
758
+ sharedBuffer?: Record<string, any>;
759
+ executionHistory: PhaseExecutionRecord[];
760
+ currentNodeId: string;
761
+ phaseResult?: STABLE_WORKFLOW_PHASE_RESULT<ResponseDataType>;
762
+ }
763
+ export interface WorkflowGraphOptions<RequestDataType = any, ResponseDataType = any> extends Omit<STABLE_WORKFLOW_OPTIONS<RequestDataType, ResponseDataType>, 'branches' | 'enableBranchExecution' | 'concurrentPhaseExecution' | 'enableMixedExecution' | 'enableNonLinearExecution'> {
764
+ validateGraph?: boolean;
765
+ optimizeExecution?: boolean;
766
+ maxGraphDepth?: number;
767
+ }
768
+ export interface WorkflowGraphValidationResult {
769
+ valid: boolean;
770
+ errors: string[];
771
+ warnings: string[];
772
+ cycles?: string[][];
773
+ unreachableNodes?: string[];
774
+ orphanNodes?: string[];
775
+ }
776
+ export interface WorkflowGraphExecutionPlan {
777
+ orderedNodes: string[];
778
+ parallelGroups: string[][];
779
+ dependencies: Map<string, string[]>;
780
+ estimatedDepth: number;
781
+ }
716
782
  export {};
717
783
  //# sourceMappingURL=index.d.ts.map