@emmvish/stable-request 1.1.8 โ†’ 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,6 +9,7 @@ It is designed for real-world distributed systems where HTTP success (200) does
9
9
  Most HTTP client libraries only retry on network failures or specific HTTP status codes. **stable-request** goes further by providing:
10
10
 
11
11
  - โœ… **Content-aware Retries** - Validate response content and retry even on successful HTTP responses
12
+ - ๐Ÿ”„ **Multi-Phase Workflows** - Orchestrate complex workflows with sequential phases and mixed phase execution modes (concurrent & sequential)
12
13
  - ๐Ÿš€ **Batch Processing** - Execute multiple requests with hierarchical configuration (global โ†’ group โ†’ request)
13
14
  - ๐ŸŽฏ **Request Groups** - Organize related requests with shared settings and logical boundaries
14
15
  - ๐Ÿงช **Trial Mode** - Simulate failures to test your retry logic without depending on real network instability
@@ -717,6 +718,275 @@ const results = await stableApiGateway(
717
718
  );
718
719
  ```
719
720
 
721
+ ## Multi-Phase Workflows
722
+
723
+ For complex operations that require multiple stages of execution, use `stableWorkflow` to orchestrate phase-based workflows with full control over execution order and error handling.
724
+
725
+ ### Basic Workflow
726
+
727
+ ```typescript
728
+ import { stableWorkflow } from '@emmvish/stable-request';
729
+
730
+ const workflow = await stableWorkflow(
731
+ [
732
+ {
733
+ id: 'validation',
734
+ concurrentExecution: true,
735
+ requests: [
736
+ {
737
+ id: 'check-inventory',
738
+ requestOptions: {
739
+ reqData: { path: '/inventory/check' },
740
+ resReq: true
741
+ }
742
+ },
743
+ {
744
+ id: 'validate-payment',
745
+ requestOptions: {
746
+ reqData: { path: '/payment/validate' },
747
+ resReq: true
748
+ }
749
+ }
750
+ ]
751
+ },
752
+ {
753
+ id: 'processing',
754
+ concurrentExecution: false,
755
+ stopOnFirstError: true,
756
+ requests: [
757
+ {
758
+ id: 'charge-payment',
759
+ requestOptions: {
760
+ reqData: { path: '/payment/charge', method: REQUEST_METHODS.POST },
761
+ resReq: true
762
+ }
763
+ },
764
+ {
765
+ id: 'reserve-inventory',
766
+ requestOptions: {
767
+ reqData: { path: '/inventory/reserve', method: REQUEST_METHODS.POST },
768
+ resReq: true
769
+ }
770
+ }
771
+ ]
772
+ }
773
+ ],
774
+ {
775
+ workflowId: 'order-processing-123',
776
+ stopOnFirstPhaseError: true,
777
+ logPhaseResults: true,
778
+ commonRequestData: {
779
+ hostname: 'api.example.com',
780
+ headers: { 'X-Transaction-Id': 'txn-123' }
781
+ },
782
+ commonAttempts: 3,
783
+ commonWait: 1000
784
+ }
785
+ );
786
+
787
+ console.log('Workflow completed:', workflow.success);
788
+ console.log(`${workflow.successfulRequests}/${workflow.totalRequests} requests succeeded`);
789
+ console.log(`Completed in ${workflow.executionTime}ms`);
790
+ ```
791
+
792
+ **Workflow Result:**
793
+ ```typescript
794
+ interface STABLE_WORKFLOW_RESULT {
795
+ workflowId: string; // Workflow identifier
796
+ success: boolean; // Did all phases succeed?
797
+ executionTime: number; // Total workflow duration (ms)
798
+ timestamp: string; // ISO timestamp
799
+ totalPhases: number; // Number of phases defined
800
+ completedPhases: number; // Number of phases executed
801
+ totalRequests: number; // Total requests across all phases
802
+ successfulRequests: number; // Successful requests
803
+ failedRequests: number; // Failed requests
804
+ phases: PHASE_RESULT[]; // Detailed results per phase
805
+ error?: string; // Workflow-level error (if any)
806
+ }
807
+ ```
808
+
809
+ ### Phase Configuration
810
+
811
+ Each phase can have its own execution mode and error handling:
812
+
813
+ ```typescript
814
+ {
815
+ id: 'phase-name', // Optional: phase identifier
816
+ concurrentExecution?: boolean, // true = parallel, false = sequential
817
+ stopOnFirstError?: boolean, // Stop phase on first request failure
818
+ commonConfig?: { /* phase-level common config */ },
819
+ requests: [/* array of requests */]
820
+ }
821
+ ```
822
+
823
+ **Configuration Priority:**
824
+ Individual Request > Phase Common Config > Workflow Common Config
825
+
826
+ ### Workflow with Request Groups
827
+
828
+ Combine workflows with request groups for fine-grained control:
829
+
830
+ ```typescript
831
+ const workflow = await stableWorkflow(
832
+ [
833
+ {
834
+ id: 'critical-validation',
835
+ concurrentExecution: true,
836
+ requests: [
837
+ {
838
+ id: 'auth-check',
839
+ groupId: 'critical',
840
+ requestOptions: {
841
+ reqData: { path: '/auth/verify' },
842
+ resReq: true
843
+ }
844
+ },
845
+ {
846
+ id: 'rate-limit-check',
847
+ groupId: 'critical',
848
+ requestOptions: {
849
+ reqData: { path: '/ratelimit/check' },
850
+ resReq: true
851
+ }
852
+ }
853
+ ]
854
+ },
855
+ {
856
+ id: 'data-processing',
857
+ concurrentExecution: false,
858
+ commonConfig: {
859
+ // Phase-specific overrides
860
+ commonAttempts: 5,
861
+ commonRetryStrategy: RETRY_STRATEGIES.EXPONENTIAL
862
+ },
863
+ requests: [
864
+ {
865
+ id: 'process-data',
866
+ groupId: 'standard',
867
+ requestOptions: {
868
+ reqData: { path: '/data/process', method: REQUEST_METHODS.POST },
869
+ resReq: true
870
+ }
871
+ },
872
+ {
873
+ id: 'store-result',
874
+ groupId: 'standard',
875
+ requestOptions: {
876
+ reqData: { path: '/data/store', method: REQUEST_METHODS.POST },
877
+ resReq: true
878
+ }
879
+ }
880
+ ]
881
+ },
882
+ {
883
+ id: 'notifications',
884
+ concurrentExecution: true,
885
+ requests: [
886
+ {
887
+ id: 'email-notification',
888
+ groupId: 'optional',
889
+ requestOptions: {
890
+ reqData: { path: '/notify/email' },
891
+ resReq: true
892
+ }
893
+ },
894
+ {
895
+ id: 'webhook-notification',
896
+ groupId: 'optional',
897
+ requestOptions: {
898
+ reqData: { path: '/notify/webhook' },
899
+ resReq: true
900
+ }
901
+ }
902
+ ]
903
+ }
904
+ ],
905
+ {
906
+ workflowId: 'data-pipeline-workflow',
907
+ stopOnFirstPhaseError: true,
908
+ logPhaseResults: true,
909
+
910
+ commonRequestData: {
911
+ hostname: 'api.example.com'
912
+ },
913
+ commonAttempts: 3,
914
+ commonWait: 1000,
915
+
916
+ // Request groups with different reliability requirements
917
+ requestGroups: [
918
+ {
919
+ id: 'critical',
920
+ commonConfig: {
921
+ commonAttempts: 10,
922
+ commonRetryStrategy: RETRY_STRATEGIES.EXPONENTIAL,
923
+ commonWait: 2000,
924
+ commonHandleErrors: async ({ errorLog }) => {
925
+ await alerting.critical('Critical service failure', errorLog);
926
+ }
927
+ }
928
+ },
929
+ {
930
+ id: 'standard',
931
+ commonConfig: {
932
+ commonAttempts: 5,
933
+ commonRetryStrategy: RETRY_STRATEGIES.LINEAR,
934
+ commonWait: 1000
935
+ }
936
+ },
937
+ {
938
+ id: 'optional',
939
+ commonConfig: {
940
+ commonAttempts: 2,
941
+ commonFinalErrorAnalyzer: async () => true // Suppress errors
942
+ }
943
+ }
944
+ ]
945
+ }
946
+ );
947
+ ```
948
+
949
+ ### Phase Observability Hooks
950
+
951
+ Monitor workflow execution with phase-level hooks:
952
+
953
+ ```typescript
954
+ const workflow = await stableWorkflow(
955
+ [
956
+ // ...phases...
957
+ ],
958
+ {
959
+ workflowId: 'monitored-workflow',
960
+
961
+ // Called after each phase completes successfully
962
+ handlePhaseCompletion: async ({ workflowId, phaseResult }) => {
963
+ console.log(`Phase ${phaseResult.phaseId} completed`);
964
+
965
+ await analytics.track('workflow_phase_complete', {
966
+ workflowId,
967
+ phaseId: phaseResult.phaseId,
968
+ duration: phaseResult.executionTime,
969
+ successRate: phaseResult.successfulRequests / phaseResult.totalRequests
970
+ });
971
+ },
972
+
973
+ // Called when a phase fails
974
+ handlePhaseError: async ({ workflowId, phaseResult, error }) => {
975
+ console.error(`Phase ${phaseResult.phaseId} failed`);
976
+
977
+ await alerting.notify('workflow_phase_failed', {
978
+ workflowId,
979
+ phaseId: phaseResult.phaseId,
980
+ error: error.message,
981
+ failedRequests: phaseResult.failedRequests
982
+ });
983
+ },
984
+
985
+ logPhaseResults: true // Enable console logging
986
+ }
987
+ );
988
+ ```
989
+
720
990
  ## Real-World Examples
721
991
 
722
992
  ### 1. Polling for Job Completion
@@ -965,6 +1235,119 @@ const report = {
965
1235
  console.log('System Health:', report);
966
1236
  ```
967
1237
 
1238
+ ### 6. Data Pipeline (ETL Workflow)
1239
+
1240
+ ```typescript
1241
+ const etlWorkflow = await stableWorkflow(
1242
+ [
1243
+ {
1244
+ id: 'extract',
1245
+ concurrentExecution: true,
1246
+ commonConfig: {
1247
+ commonAttempts: 5,
1248
+ commonRetryStrategy: RETRY_STRATEGIES.EXPONENTIAL
1249
+ },
1250
+ requests: [
1251
+ { id: 'extract-users', requestOptions: { reqData: { path: '/extract/users' }, resReq: true } },
1252
+ { id: 'extract-orders', requestOptions: { reqData: { path: '/extract/orders' }, resReq: true } },
1253
+ { id: 'extract-products', requestOptions: { reqData: { path: '/extract/products' }, resReq: true } }
1254
+ ]
1255
+ },
1256
+ {
1257
+ id: 'transform',
1258
+ concurrentExecution: false,
1259
+ stopOnFirstError: true,
1260
+ requests: [
1261
+ {
1262
+ id: 'clean-data',
1263
+ requestOptions: {
1264
+ reqData: { path: '/transform/clean', method: REQUEST_METHODS.POST },
1265
+ resReq: true
1266
+ }
1267
+ },
1268
+ {
1269
+ id: 'enrich-data',
1270
+ requestOptions: {
1271
+ reqData: { path: '/transform/enrich', method: REQUEST_METHODS.POST },
1272
+ resReq: true
1273
+ }
1274
+ },
1275
+ {
1276
+ id: 'validate-data',
1277
+ requestOptions: {
1278
+ reqData: { path: '/transform/validate', method: REQUEST_METHODS.POST },
1279
+ resReq: true,
1280
+ responseAnalyzer: async ({ data }) => {
1281
+ return data?.validationErrors?.length === 0;
1282
+ }
1283
+ }
1284
+ }
1285
+ ]
1286
+ },
1287
+ {
1288
+ id: 'load',
1289
+ concurrentExecution: true,
1290
+ requests: [
1291
+ {
1292
+ id: 'load-warehouse',
1293
+ requestOptions: {
1294
+ reqData: { path: '/load/warehouse', method: REQUEST_METHODS.POST },
1295
+ resReq: true
1296
+ }
1297
+ },
1298
+ {
1299
+ id: 'update-indexes',
1300
+ requestOptions: {
1301
+ reqData: { path: '/load/indexes', method: REQUEST_METHODS.POST },
1302
+ resReq: true
1303
+ }
1304
+ },
1305
+ {
1306
+ id: 'refresh-cache',
1307
+ requestOptions: {
1308
+ reqData: { path: '/cache/refresh', method: REQUEST_METHODS.POST },
1309
+ resReq: true
1310
+ }
1311
+ }
1312
+ ]
1313
+ }
1314
+ ],
1315
+ {
1316
+ workflowId: `etl-${new Date().toISOString()}`,
1317
+ stopOnFirstPhaseError: true,
1318
+ logPhaseResults: true,
1319
+
1320
+ commonRequestData: {
1321
+ hostname: 'pipeline.example.com'
1322
+ },
1323
+ commonAttempts: 3,
1324
+ commonRetryStrategy: RETRY_STRATEGIES.EXPONENTIAL,
1325
+
1326
+ handlePhaseCompletion: async ({ phaseResult }) => {
1327
+ const recordsProcessed = phaseResult.responses
1328
+ .filter(r => r.success)
1329
+ .reduce((sum, r) => sum + (r.data?.recordCount || 0), 0);
1330
+
1331
+ await metrics.gauge('etl.phase.records', recordsProcessed, {
1332
+ phase: phaseResult.phaseId
1333
+ });
1334
+ },
1335
+
1336
+ handlePhaseError: async ({ phaseResult, error }) => {
1337
+ await pagerDuty.alert('ETL Pipeline Phase Failed', {
1338
+ phase: phaseResult.phaseId,
1339
+ error: error.message,
1340
+ failedRequests: phaseResult.failedRequests
1341
+ });
1342
+ }
1343
+ }
1344
+ );
1345
+
1346
+ console.log(`ETL Pipeline: ${etlWorkflow.success ? 'SUCCESS' : 'FAILED'}`);
1347
+ console.log(`Total time: ${etlWorkflow.executionTime}ms`);
1348
+ console.log(`Records processed: ${etlWorkflow.successfulRequests}/${etlWorkflow.totalRequests}`);
1349
+ ```
1350
+
968
1351
  ## Complete API Reference
969
1352
 
970
1353
  ### `stableRequest(options)`
@@ -1029,6 +1412,51 @@ interface REQUEST_DATA<RequestDataType = any> {
1029
1412
  | `commonRequestData` | `Partial<REQUEST_DATA>` | `{ hostname: '' }` | Common set of request options for each request |
1030
1413
  | `commonHookParams` | `HookParams` | `{ }` | Common options for each request hook |
1031
1414
 
1415
+ ### `stableWorkflow(phases, options)`
1416
+
1417
+ Execute a multi-phase workflow with full control over execution order and error handling.
1418
+
1419
+ **Phases Array:**
1420
+ ```typescript
1421
+ interface STABLE_WORKFLOW_PHASE {
1422
+ id?: string; // Phase identifier (auto-generated if omitted)
1423
+ concurrentExecution?: boolean; // true = parallel, false = sequential (default: true)
1424
+ stopOnFirstError?: boolean; // Stop phase on first request failure (default: false)
1425
+ commonConfig?: Omit<API_GATEWAY_OPTIONS, 'concurrentExecution' | 'stopOnFirstError' | 'requestGroups'>;
1426
+ requests: API_GATEWAY_REQUEST[]; // Array of requests for this phase
1427
+ }
1428
+ ```
1429
+
1430
+ **Workflow Options:**
1431
+
1432
+ | Option | Type | Default | Description |
1433
+ |--------|------|---------|-------------|
1434
+ | `workflowId` | `string` | `workflow-{timestamp}` | Workflow identifier |
1435
+ | `stopOnFirstPhaseError` | `boolean` | `false` | Stop workflow if any phase fails |
1436
+ | `logPhaseResults` | `boolean` | `false` | Log phase execution to console |
1437
+ | `handlePhaseCompletion` | `function` | `undefined` | Hook called after each successful phase |
1438
+ | `handlePhaseError` | `function` | `undefined` | Hook called when a phase fails |
1439
+ | `maxSerializableChars` | `number` | `1000` | Max chars for serialization in hooks |
1440
+ | `workflowHookParams` | `WorkflowHookParams` | {} | Custom set of params passed to hooks |
1441
+ | All `stableApiGateway` options | - | - | Applied as workflow-level defaults |
1442
+
1443
+ **STABLE_WORKFLOW_RESULT response:**
1444
+ ```typescript
1445
+ interface STABLE_WORKFLOW_RESULT {
1446
+ workflowId: string;
1447
+ success: boolean; // All phases successful?
1448
+ executionTime: number; // Total workflow duration (ms)
1449
+ timestamp: string; // ISO timestamp
1450
+ totalPhases: number;
1451
+ completedPhases: number;
1452
+ totalRequests: number;
1453
+ successfulRequests: number;
1454
+ failedRequests: number;
1455
+ phases: PHASE_RESULT[]; // Detailed results per phase
1456
+ error?: string; // Workflow-level error
1457
+ }
1458
+ ```
1459
+
1032
1460
  ### Hooks Reference
1033
1461
 
1034
1462
  #### responseAnalyzer
@@ -1084,6 +1512,40 @@ finalErrorAnalyzer: async ({ reqData, error, trialMode, params }) => {
1084
1512
  }
1085
1513
  ```
1086
1514
 
1515
+ #### handlePhaseCompletion
1516
+
1517
+ **Purpose:** Execute phase-bridging code upon successful completion of a phase
1518
+
1519
+ ```typescript
1520
+ handlePhaseCompletion: async ({ workflowId, phaseResult, maxSerializableChars, params }) => {
1521
+ await logger.log(phaseResult.phaseId, phaseResult.success);
1522
+ // phaseResult includes:
1523
+ // - phaseId, phaseIndex
1524
+ // - success, executionTime, timestamp
1525
+ // - totalRequests, successfulRequests, failedRequests
1526
+ // - responses array
1527
+ }
1528
+ ```
1529
+
1530
+ #### handlePhaseError
1531
+
1532
+ **Purpose:** Execute error handling code if a phase runs into an error
1533
+
1534
+ ```typescript
1535
+ handlePhaseError: async ({ workflowId, phaseResult, error, maxSerializableChars, params }) => {
1536
+ await logger.error(error);
1537
+ // Similar to handlePhaseCompletion, plus:
1538
+ // - error: the error object
1539
+ }
1540
+ ```
1541
+
1542
+ ## Configuration Hierarchy
1543
+
1544
+ 1. **Workflow-level** (lowest priority): Applied to all phases
1545
+ 2. **Phase-level**: Overrides workflow-level
1546
+ 3. **Request Group**: Overrides phase-level
1547
+ 4. **Individual Request** (highest priority): Overrides everything
1548
+
1087
1549
  ## TypeScript Support
1088
1550
 
1089
1551
  Fully typed with generics:
@@ -1130,6 +1592,11 @@ console.log(user.id); // TypeScript knows this exists
1130
1592
  8. **Set appropriate timeouts** to prevent hanging requests
1131
1593
  9. **Use idempotency keys** for payment/financial operations
1132
1594
  10. **Log contextual information** in your hooks for debugging
1595
+ 11. **Design workflows with clear phases** - Each phase should represent a logical stage
1596
+ 12. **Use phase hooks** (`handlePhaseCompletion`, `handlePhaseError`) for workflow observability
1597
+ 13. **Set `stopOnFirstPhaseError: true`** for critical workflows that shouldn't continue after failure
1598
+ 14. **Use mixed execution modes** - Concurrent for independent operations, sequential for dependencies
1599
+ 15. **Leverage request groups in workflows** for different reliability tiers within phases
1133
1600
 
1134
1601
  ## License
1135
1602
 
@@ -1,3 +1,4 @@
1
1
  export { sendStableRequest as stableRequest } from './send-stable-request.js';
2
2
  export { stableApiGateway } from './stable-api-gateway.js';
3
+ export { stableWorkflow } from './stable-workflow.js';
3
4
  //# 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,iBAAiB,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export { sendStableRequest as stableRequest } from './send-stable-request.js';
2
2
  export { stableApiGateway } from './stable-api-gateway.js';
3
+ export { stableWorkflow } from './stable-workflow.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { RETRY_STRATEGIES, RESPONSE_ERRORS } from '../enums/index.js';
2
2
  import { generateAxiosRequestConfig, getNewDelayTime, delay, reqFn, safelyExecuteUnknownFunction, safelyStringify, validateTrialModeProbabilities } from '../utilities/index.js';
3
3
  export async function sendStableRequest(options) {
4
- const { reqData: givenReqData, responseAnalyzer = ({ reqData, data, trialMode = { enabled: false } }) => true, resReq = false, attempts: givenAttempts = 1, performAllAttempts = false, wait = 1000, maxAllowedWait = 60000, retryStrategy = RETRY_STRATEGIES.FIXED, logAllErrors = false, handleErrors = ({ reqData, errorLog, maxSerializableChars = 1000 }) => console.log('Request data:\n', safelyStringify(reqData, maxSerializableChars), '\nError log:\n', safelyStringify(errorLog, maxSerializableChars)), logAllSuccessfulAttempts = false, handleSuccessfulAttemptData = ({ reqData, successfulAttemptData, maxSerializableChars = 1000 }) => console.log('Request data:\n', safelyStringify(reqData, maxSerializableChars), '\nSuccessful attempt:\n', safelyStringify(successfulAttemptData, maxSerializableChars)), maxSerializableChars = 1000, finalErrorAnalyzer = ({ reqData, error, trialMode = { enabled: false } }) => false, trialMode = { enabled: false }, hookParams = {} } = options;
4
+ const { reqData: givenReqData, responseAnalyzer = ({ reqData, data, trialMode = { enabled: false } }) => true, resReq = false, attempts: givenAttempts = 1, performAllAttempts = false, wait = 1000, maxAllowedWait = 60000, retryStrategy = RETRY_STRATEGIES.FIXED, logAllErrors = false, handleErrors = ({ reqData, errorLog, maxSerializableChars = 1000 }) => console.error('Request data:\n', safelyStringify(reqData, maxSerializableChars), '\nError log:\n', safelyStringify(errorLog, maxSerializableChars)), logAllSuccessfulAttempts = false, handleSuccessfulAttemptData = ({ reqData, successfulAttemptData, maxSerializableChars = 1000 }) => console.info('Request data:\n', safelyStringify(reqData, maxSerializableChars), '\nSuccessful attempt:\n', safelyStringify(successfulAttemptData, maxSerializableChars)), maxSerializableChars = 1000, finalErrorAnalyzer = ({ reqData, error, trialMode = { enabled: false } }) => false, trialMode = { enabled: false }, hookParams = {} } = options;
5
5
  let attempts = givenAttempts;
6
6
  const reqData = generateAxiosRequestConfig(givenReqData);
7
7
  try {
@@ -28,11 +28,11 @@ export async function sendStableRequest(options) {
28
28
  reqData,
29
29
  data: res?.data,
30
30
  trialMode,
31
- params: hookParams.responseAnalyzerParams
31
+ params: hookParams?.responseAnalyzerParams
32
32
  }));
33
33
  }
34
34
  catch (e) {
35
- console.log(`stable-request: Unable to analyze the response returned on attempt #${currentAttempt}. Response: ${safelyStringify(res?.data, maxSerializableChars)}`);
35
+ console.error(`stable-request: Unable to analyze the response returned on attempt #${currentAttempt}. Response: ${safelyStringify(res?.data, maxSerializableChars)}`);
36
36
  performNextAttempt = true;
37
37
  }
38
38
  }
@@ -57,7 +57,7 @@ export async function sendStableRequest(options) {
57
57
  });
58
58
  }
59
59
  catch (e) {
60
- console.log('stable-request: Unable to report errors due to issues with error handler!');
60
+ console.error('stable-request: Unable to report errors due to issues with error handler!');
61
61
  }
62
62
  }
63
63
  if (res.ok && !performNextAttempt) {
@@ -79,7 +79,7 @@ export async function sendStableRequest(options) {
79
79
  });
80
80
  }
81
81
  catch (e) {
82
- console.log('stable-request: Unable to report successful attempts due to issues with successful attempt data handler!');
82
+ console.error('stable-request: Unable to report successful attempts due to issues with successful attempt data handler!');
83
83
  }
84
84
  }
85
85
  }
@@ -96,14 +96,14 @@ export async function sendStableRequest(options) {
96
96
  ((res.isRetryable && !res.ok) || performAllAttempts));
97
97
  if (performAllAttempts && hadAtLeastOneSuccess) {
98
98
  if (trialMode.enabled) {
99
- console.log('Final response (performAllAttempts mode):\n', safelyStringify(lastSuccessfulAttemptData, maxSerializableChars));
99
+ console.info('stable-request: Final response (performAllAttempts mode):\n', safelyStringify(lastSuccessfulAttemptData, maxSerializableChars));
100
100
  }
101
101
  return resReq ? lastSuccessfulAttemptData : true;
102
102
  }
103
103
  else if (res.ok) {
104
104
  if (trialMode.enabled) {
105
105
  const finalResponse = res?.data ?? lastSuccessfulAttemptData;
106
- console.log('Final response:\n', safelyStringify(finalResponse, maxSerializableChars));
106
+ console.info('stable-request: Final response:\n', safelyStringify(finalResponse, maxSerializableChars));
107
107
  }
108
108
  return resReq ? res?.data ?? lastSuccessfulAttemptData : true;
109
109
  }
@@ -116,13 +116,13 @@ export async function sendStableRequest(options) {
116
116
  }
117
117
  catch (e) {
118
118
  if (trialMode.enabled) {
119
- console.log('Final error:\n', e.message);
119
+ console.error('stable-request: Final error:\n', e.message);
120
120
  }
121
121
  const errorAnalysisResult = await safelyExecuteUnknownFunction(finalErrorAnalyzer, {
122
122
  reqData,
123
123
  error: e,
124
124
  trialMode,
125
- params: hookParams.finalErrorAnalyzerParams
125
+ params: hookParams?.finalErrorAnalyzerParams
126
126
  });
127
127
  if (!errorAnalysisResult) {
128
128
  throw e;
@@ -1 +1 @@
1
- {"version":3,"file":"send-stable-request.js","sourceRoot":"","sources":["../../src/core/send-stable-request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send-stable-request.js","sourceRoot":"","sources":["../../src/core/send-stable-request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { STABLE_WORKFLOW_OPTIONS, STABLE_WORKFLOW_PHASE, STABLE_WORKFLOW_RESULT } from '../types/index.js';
2
+ export declare function stableWorkflow<RequestDataType = any, ResponseDataType = any>(phases: STABLE_WORKFLOW_PHASE<RequestDataType, ResponseDataType>[], options?: STABLE_WORKFLOW_OPTIONS<RequestDataType, ResponseDataType>): Promise<STABLE_WORKFLOW_RESULT<ResponseDataType>>;
3
+ //# sourceMappingURL=stable-workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stable-workflow.d.ts","sourceRoot":"","sources":["../../src/core/stable-workflow.ts"],"names":[],"mappings":"AACA,OAAO,EACH,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACzB,MAAM,mBAAmB,CAAC;AAG3B,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,CAgNnD"}
@@ -0,0 +1,150 @@
1
+ import { stableApiGateway } from './stable-api-gateway.js';
2
+ import { safelyExecuteUnknownFunction } from '../utilities/index.js';
3
+ export async function stableWorkflow(phases, options = {}) {
4
+ const { stopOnFirstPhaseError = false, logPhaseResults = false, handlePhaseCompletion, handlePhaseError, maxSerializableChars = 1000, requestGroups = [], workflowHookParams = {}, ...commonGatewayOptions } = options;
5
+ const workflowStartTime = Date.now();
6
+ const workflowId = options.workflowId || `workflow-${Date.now()}`;
7
+ const phaseResults = [];
8
+ let totalRequests = 0;
9
+ let successfulRequests = 0;
10
+ let failedRequests = 0;
11
+ try {
12
+ for (let i = 0; i < phases.length; i++) {
13
+ const phase = phases[i];
14
+ const phaseId = phase.id || `phase-${i + 1}`;
15
+ const phaseStartTime = Date.now();
16
+ if (logPhaseResults) {
17
+ console.info(`\nstable-request: [Workflow: ${workflowId}] Starting Phase ${i + 1}/${phases.length}: ${phaseId}`);
18
+ }
19
+ const phaseGatewayOptions = {
20
+ ...commonGatewayOptions,
21
+ ...(phase.commonConfig || {}),
22
+ concurrentExecution: phase.concurrentExecution ?? true,
23
+ stopOnFirstError: phase.stopOnFirstError ?? false,
24
+ requestGroups,
25
+ };
26
+ try {
27
+ const phaseResponses = await stableApiGateway(phase.requests, phaseGatewayOptions);
28
+ const phaseExecutionTime = Date.now() - phaseStartTime;
29
+ const phaseSuccessCount = phaseResponses.filter(r => r.success).length;
30
+ const phaseFailureCount = phaseResponses.filter(r => !r.success).length;
31
+ totalRequests += phaseResponses.length;
32
+ successfulRequests += phaseSuccessCount;
33
+ failedRequests += phaseFailureCount;
34
+ const phaseResult = {
35
+ phaseId,
36
+ phaseIndex: i,
37
+ success: phaseFailureCount === 0,
38
+ executionTime: phaseExecutionTime,
39
+ timestamp: new Date(phaseStartTime).toISOString(),
40
+ totalRequests: phaseResponses.length,
41
+ successfulRequests: phaseSuccessCount,
42
+ failedRequests: phaseFailureCount,
43
+ responses: phaseResponses
44
+ };
45
+ phaseResults.push(phaseResult);
46
+ if (logPhaseResults) {
47
+ console.info(`stable-request: [Workflow: ${workflowId}] Phase ${phaseId} completed:`, `${phaseSuccessCount}/${phaseResponses.length} successful`, `(${phaseExecutionTime}ms)`);
48
+ }
49
+ if (handlePhaseCompletion) {
50
+ try {
51
+ await safelyExecuteUnknownFunction(handlePhaseCompletion, {
52
+ workflowId,
53
+ phaseResult,
54
+ maxSerializableChars,
55
+ params: workflowHookParams?.handlePhaseCompletionParams
56
+ });
57
+ }
58
+ catch (hookError) {
59
+ console.error(`stable-request: [Workflow: ${workflowId}] Error in handlePhaseCompletion hook:`, hookError);
60
+ }
61
+ }
62
+ if (phaseFailureCount > 0 && stopOnFirstPhaseError) {
63
+ if (logPhaseResults) {
64
+ console.error(`stable-request: [Workflow: ${workflowId}] Stopping workflow due to phase failure`);
65
+ }
66
+ break;
67
+ }
68
+ }
69
+ catch (phaseError) {
70
+ const phaseExecutionTime = Date.now() - phaseStartTime;
71
+ const phaseResult = {
72
+ phaseId,
73
+ phaseIndex: i,
74
+ success: false,
75
+ executionTime: phaseExecutionTime,
76
+ timestamp: new Date(phaseStartTime).toISOString(),
77
+ totalRequests: phase.requests.length,
78
+ successfulRequests: 0,
79
+ failedRequests: phase.requests.length,
80
+ responses: [],
81
+ error: phaseError.message
82
+ };
83
+ phaseResults.push(phaseResult);
84
+ totalRequests += phase.requests.length;
85
+ failedRequests += phase.requests.length;
86
+ if (logPhaseResults) {
87
+ console.error(`stable-request: [Workflow: ${workflowId}] Phase ${phaseId} failed:`, phaseError.message);
88
+ }
89
+ if (handlePhaseError) {
90
+ try {
91
+ await safelyExecuteUnknownFunction(handlePhaseError, {
92
+ workflowId,
93
+ phaseResult,
94
+ error: phaseError,
95
+ maxSerializableChars,
96
+ params: workflowHookParams?.handlePhaseErrorParams
97
+ });
98
+ }
99
+ catch (hookError) {
100
+ console.error(`stable-request: [Workflow: ${workflowId}] Error in handlePhaseError hook:`, hookError);
101
+ }
102
+ }
103
+ if (stopOnFirstPhaseError) {
104
+ if (logPhaseResults) {
105
+ console.error(`stable-request: [Workflow: ${workflowId}] Stopping workflow due to phase error`);
106
+ }
107
+ break;
108
+ }
109
+ }
110
+ }
111
+ const workflowExecutionTime = Date.now() - workflowStartTime;
112
+ const workflowSuccess = failedRequests === 0;
113
+ const result = {
114
+ workflowId,
115
+ success: workflowSuccess,
116
+ executionTime: workflowExecutionTime,
117
+ timestamp: new Date(workflowStartTime).toISOString(),
118
+ totalPhases: phases.length,
119
+ completedPhases: phaseResults.length,
120
+ totalRequests,
121
+ successfulRequests,
122
+ failedRequests,
123
+ phases: phaseResults
124
+ };
125
+ if (logPhaseResults) {
126
+ console.info(`\nstable-request: [Workflow: ${workflowId}] Completed:`, `${successfulRequests}/${totalRequests} requests successful`, `across ${phaseResults.length}/${phases.length} phases`, `(${workflowExecutionTime}ms)`);
127
+ }
128
+ return result;
129
+ }
130
+ catch (workflowError) {
131
+ const workflowExecutionTime = Date.now() - workflowStartTime;
132
+ if (logPhaseResults) {
133
+ console.error(`stable-request: [Workflow: ${workflowId}] Fatal error:`, workflowError.message);
134
+ }
135
+ return {
136
+ workflowId,
137
+ success: false,
138
+ executionTime: workflowExecutionTime,
139
+ timestamp: new Date(workflowStartTime).toISOString(),
140
+ totalPhases: phases.length,
141
+ completedPhases: phaseResults.length,
142
+ totalRequests,
143
+ successfulRequests,
144
+ failedRequests,
145
+ phases: phaseResults,
146
+ error: workflowError.message
147
+ };
148
+ }
149
+ }
150
+ //# sourceMappingURL=stable-workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stable-workflow.js","sourceRoot":"","sources":["../../src/core/stable-workflow.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { stableRequest, stableApiGateway } from './core/index.js';
1
+ export { stableRequest, stableApiGateway, stableWorkflow } from './core/index.js';
2
2
  export { INVALID_AXIOS_RESPONSES, 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, CONCURRENT_REQUEST_EXECUTION_OPTIONS, ERROR_LOG, FinalErrorAnalysisHookOptions, HandleErrorHookOptions, HandleSuccessfulAttemptDataHookOptions, HookParams, ReqFnResponse, REQUEST_DATA, RequestGroup, REQUEST_METHOD_TYPES, ResponseAnalysisHookOptions, RETRY_STRATEGY_TYPES, SEQUENTIAL_REQUEST_EXECUTION_OPTIONS, STABLE_REQUEST, SUCCESSFUL_ATTEMPT_DATA, VALID_REQUEST_PROTOCOL_TYPES, TRIAL_MODE_OPTIONS } from './types/index.js';
3
+ export type { API_GATEWAY_OPTIONS, API_GATEWAY_REQUEST, API_GATEWAY_REQUEST_OPTIONS_TYPE, API_GATEWAY_RESPONSE, CONCURRENT_REQUEST_EXECUTION_OPTIONS, ERROR_LOG, FinalErrorAnalysisHookOptions, HandleErrorHookOptions, HandlePhaseCompletionHookOptions, HandlePhaseErrorHookOptions, HandleSuccessfulAttemptDataHookOptions, HookParams, ReqFnResponse, REQUEST_DATA, RequestGroup, REQUEST_METHOD_TYPES, ResponseAnalysisHookOptions, RETRY_STRATEGY_TYPES, SEQUENTIAL_REQUEST_EXECUTION_OPTIONS, STABLE_REQUEST, STABLE_WORKFLOW_PHASE, STABLE_WORKFLOW_OPTIONS, STABLE_WORKFLOW_PHASE_RESULT, STABLE_WORKFLOW_RESULT, SUCCESSFUL_ATTEMPT_DATA, VALID_REQUEST_PROTOCOL_TYPES, WorkflowHookParams, TRIAL_MODE_OPTIONS } from './types/index.js';
4
4
  export { delay, executeConcurrently, executeSequentially, extractCommonRequestConfigOptions, generateAxiosRequestConfig, getNewDelayTime, isRetryableError, prepareApiRequestData, prepareApiRequestOptions, reqFn, safelyExecuteUnknownFunction, safelyStringify, validateTrialModeProbabilities } 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,EACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EAC1B,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACR,mBAAmB,EACnB,mBAAmB,EACnB,gCAAgC,EAChC,oBAAoB,EACpB,oCAAoC,EACpC,SAAS,EACT,6BAA6B,EAC7B,sBAAsB,EACtB,sCAAsC,EACtC,UAAU,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,oCAAoC,EACpC,cAAc,EACd,uBAAuB,EACvB,4BAA4B,EAC5B,kBAAkB,EACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACH,KAAK,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iCAAiC,EACjC,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,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,EACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EAC1B,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACR,mBAAmB,EACnB,mBAAmB,EACnB,gCAAgC,EAChC,oBAAoB,EACpB,oCAAoC,EACpC,SAAS,EACT,6BAA6B,EAC7B,sBAAsB,EACtB,gCAAgC,EAChC,2BAA2B,EAC3B,sCAAsC,EACtC,UAAU,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,oCAAoC,EACpC,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,EACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACH,KAAK,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iCAAiC,EACjC,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,EACL,4BAA4B,EAC5B,eAAe,EACf,8BAA8B,EACjC,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { stableRequest, stableApiGateway } from './core/index.js';
1
+ export { stableRequest, stableApiGateway, stableWorkflow } from './core/index.js';
2
2
  export { INVALID_AXIOS_RESPONSES, REQUEST_METHODS, RESPONSE_ERRORS, RETRY_STRATEGIES, VALID_REQUEST_PROTOCOLS } from './enums/index.js';
3
3
  export { delay, executeConcurrently, executeSequentially, extractCommonRequestConfigOptions, generateAxiosRequestConfig, getNewDelayTime, isRetryableError, prepareApiRequestData, prepareApiRequestOptions, reqFn, safelyExecuteUnknownFunction, safelyStringify, validateTrialModeProbabilities } 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,EACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EAC1B,MAAM,kBAAkB,CAAC;AA0B1B,OAAO,EACH,KAAK,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iCAAiC,EACjC,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,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,EACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EAC1B,MAAM,kBAAkB,CAAC;AAiC1B,OAAO,EACH,KAAK,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iCAAiC,EACjC,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,EACL,4BAA4B,EAC5B,eAAe,EACf,8BAA8B,EACjC,MAAM,sBAAsB,CAAC"}
@@ -138,5 +138,59 @@ export interface TRIAL_MODE_OPTIONS {
138
138
  retryFailureProbability?: number;
139
139
  }
140
140
  export type VALID_REQUEST_PROTOCOL_TYPES = VALID_REQUEST_PROTOCOLS.HTTP | VALID_REQUEST_PROTOCOLS.HTTPS;
141
+ export interface STABLE_WORKFLOW_PHASE<RequestDataType = any, ResponseDataType = any> {
142
+ id?: string;
143
+ requests: API_GATEWAY_REQUEST<RequestDataType, ResponseDataType>[];
144
+ concurrentExecution?: boolean;
145
+ stopOnFirstError?: boolean;
146
+ commonConfig?: Omit<API_GATEWAY_OPTIONS<RequestDataType, ResponseDataType>, 'concurrentExecution' | 'stopOnFirstError' | 'requestGroups'>;
147
+ }
148
+ export interface STABLE_WORKFLOW_OPTIONS<RequestDataType = any, ResponseDataType = any> extends Omit<API_GATEWAY_OPTIONS<RequestDataType, ResponseDataType>, 'concurrentExecution' | 'stopOnFirstError'> {
149
+ workflowId?: string;
150
+ stopOnFirstPhaseError?: boolean;
151
+ logPhaseResults?: boolean;
152
+ handlePhaseCompletion?: (options: HandlePhaseCompletionHookOptions<ResponseDataType>) => any | Promise<any>;
153
+ handlePhaseError?: (options: HandlePhaseErrorHookOptions<ResponseDataType>) => any | Promise<any>;
154
+ maxSerializableChars?: number;
155
+ workflowHookParams?: WorkflowHookParams;
156
+ }
157
+ export interface STABLE_WORKFLOW_PHASE_RESULT<ResponseDataType = any> {
158
+ phaseId: string;
159
+ phaseIndex: number;
160
+ success: boolean;
161
+ executionTime: number;
162
+ timestamp: string;
163
+ totalRequests: number;
164
+ successfulRequests: number;
165
+ failedRequests: number;
166
+ responses: API_GATEWAY_RESPONSE<ResponseDataType>[];
167
+ error?: string;
168
+ }
169
+ export interface STABLE_WORKFLOW_RESULT<ResponseDataType = any> {
170
+ workflowId: string;
171
+ success: boolean;
172
+ executionTime: number;
173
+ timestamp: string;
174
+ totalPhases: number;
175
+ completedPhases: number;
176
+ totalRequests: number;
177
+ successfulRequests: number;
178
+ failedRequests: number;
179
+ phases: STABLE_WORKFLOW_PHASE_RESULT<ResponseDataType>[];
180
+ error?: string;
181
+ }
182
+ export interface WorkflowHookParams {
183
+ handlePhaseCompletionParams?: any;
184
+ handlePhaseErrorParams?: any;
185
+ }
186
+ export interface HandlePhaseCompletionHookOptions<ResponseDataType = any> {
187
+ workflowId: string;
188
+ phaseResult: STABLE_WORKFLOW_PHASE_RESULT<ResponseDataType>;
189
+ maxSerializableChars?: number;
190
+ params?: any;
191
+ }
192
+ export interface HandlePhaseErrorHookOptions<ResponseDataType = any> extends HandlePhaseCompletionHookOptions<ResponseDataType> {
193
+ error: any;
194
+ }
141
195
  export {};
142
196
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { INVALID_AXIOS_RESPONSES } from '../enums/index.js';
2
2
  export function isRetryableError(error, trialMode = { enabled: false }) {
3
3
  if (trialMode.enabled) {
4
4
  if (Math.random() <= (trialMode?.retryFailureProbability ?? 0)) {
5
- console.log('Retry failed in trial mode.');
5
+ console.error('stable-request: Retry failed in trial mode.');
6
6
  return false;
7
7
  }
8
8
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"is-retryable-error.js","sourceRoot":"","sources":["../../src/utilities/is-retryable-error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,UAAU,gBAAgB,CAC9B,KAAiB,EACjB,YAAgC,EAAE,OAAO,EAAE,KAAK,EAAE;IAElD,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,uBAAuB,IAAI,CAAC,CAAC,EAAE,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC;IAClD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;IAE7B,OAAO,CACL,UAAU,IAAI,GAAG;QACjB,UAAU,KAAK,GAAG;QAClB,UAAU,KAAK,GAAG;QAClB,UAAU,KAAK,GAAG;QAClB,SAAS,KAAK,uBAAuB,CAAC,KAAK;QAC3C,SAAS,KAAK,uBAAuB,CAAC,QAAQ;QAC9C,SAAS,KAAK,uBAAuB,CAAC,OAAO;QAC7C,SAAS,KAAK,uBAAuB,CAAC,QAAQ;QAC9C,SAAS,KAAK,uBAAuB,CAAC,SAAS,CAChD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"is-retryable-error.js","sourceRoot":"","sources":["../../src/utilities/is-retryable-error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,UAAU,gBAAgB,CAC9B,KAAiB,EACjB,YAAgC,EAAE,OAAO,EAAE,KAAK,EAAE;IAElD,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,uBAAuB,IAAI,CAAC,CAAC,EAAE,CAAC;YAC/D,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAC7D,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC;IAClD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;IAE7B,OAAO,CACL,UAAU,IAAI,GAAG;QACjB,UAAU,KAAK,GAAG;QAClB,UAAU,KAAK,GAAG;QAClB,UAAU,KAAK,GAAG;QAClB,SAAS,KAAK,uBAAuB,CAAC,KAAK;QAC3C,SAAS,KAAK,uBAAuB,CAAC,QAAQ;QAC9C,SAAS,KAAK,uBAAuB,CAAC,OAAO;QAC7C,SAAS,KAAK,uBAAuB,CAAC,QAAQ;QAC9C,SAAS,KAAK,uBAAuB,CAAC,SAAS,CAChD,CAAC;AACJ,CAAC"}
@@ -7,7 +7,7 @@ export function prepareApiRequestData(request, commonRequestExecutionOptions) {
7
7
  ...(localOptions.reqData || {})
8
8
  };
9
9
  if (!result.hostname) {
10
- console.log('stable-request: Hostname is missing in gateway request data. Setting it to an empty string to avoid errors.');
10
+ console.info('stable-request: Hostname is missing in gateway request data. Setting it to an empty string to avoid errors.');
11
11
  result.hostname = '';
12
12
  }
13
13
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-api-request-data.js","sourceRoot":"","sources":["../../src/utilities/prepare-api-request-data.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,qBAAqB,CACjC,OAA+D,EAC/D,6BACmG;IAEnG,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACjD,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAE,CAAC,CAAC,CAAC,6BAA6B,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEzM,MAAM,MAAM,GAAG;QACX,GAAG,CAAC,6BAA6B,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAC1D,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,iBAAiB,IAAI,EAAE,CAAC;QACpD,GAAG,CAAC,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC;KAClC,CAAC;IAEF,IAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,6GAA6G,CAAC,CAAC;QAC3H,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,MAAuC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"prepare-api-request-data.js","sourceRoot":"","sources":["../../src/utilities/prepare-api-request-data.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,qBAAqB,CACjC,OAA+D,EAC/D,6BACmG;IAEnG,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACjD,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAE,CAAC,CAAC,CAAC,6BAA6B,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEzM,MAAM,MAAM,GAAG;QACX,GAAG,CAAC,6BAA6B,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAC1D,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,iBAAiB,IAAI,EAAE,CAAC;QACpD,GAAG,CAAC,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC;KAClC,CAAC;IAEF,IAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,6GAA6G,CAAC,CAAC;QAC5H,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,MAAuC,CAAC;AACnD,CAAC"}
@@ -9,7 +9,7 @@ export async function reqFn(reqData, resReq = false, maxSerializableChars = 1000
9
9
  if (trialMode.enabled) {
10
10
  const trialCondition = Math.random() <= (trialMode?.reqFailureProbability ?? 0);
11
11
  if (trialCondition) {
12
- console.log('Request failed in trial mode.\nRequest data:\n', safelyStringify(reqData, maxSerializableChars));
12
+ console.error('stable-request: Request failed in trial mode.\nRequest data:\n', safelyStringify(reqData, maxSerializableChars));
13
13
  throw new Error('Request failed in trial mode.');
14
14
  }
15
15
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"req-fn.js","sourceRoot":"","sources":["../../src/utilities/req-fn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,OAA4C,EAC5C,MAAM,GAAG,KAAK,EACd,oBAAoB,GAAG,IAAI,EAC3B,YAAgC,EAAE,OAAO,EAAE,KAAK,EAAE;IAElD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IACpD,IAAI,CAAC;QACH,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,cAAc,GAClB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,qBAAqB,IAAI,CAAC,CAAC,CAAC;YAC3D,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CACT,gDAAgD,EAChD,eAAe,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAC/C,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,WAAW,EAAE,IAAI;oBACjB,SAAS;oBACT,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBACrC,UAAU,EAAE,GAAG;oBACf,GAAG,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;iBACvC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAmB,OAAO,CAAC,CAAC;QAC3D,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,OAAO,MAAM;YACX,CAAC,CAAC;gBACE,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,GAAG,EAAE,IAAI;gBACf,SAAS;gBACT,aAAa,EAAE,QAAQ,GAAG,SAAS;gBACnC,UAAU,EAAE,GAAG,EAAE,MAAM,IAAI,GAAG;aAC/B;YACH,CAAC,CAAC;gBACE,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,IAAI;gBACjB,SAAS;gBACT,aAAa,EAAE,QAAQ,GAAG,SAAS;gBACnC,UAAU,EAAE,GAAG,EAAE,MAAM,IAAI,GAAG;aAC/B,CAAC;IACR,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,IAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,wBAAwB;gBAC/B,WAAW,EAAE,KAAK;gBAClB,SAAS;gBACT,aAAa,EAAE,QAAQ,GAAG,SAAS;gBACnC,UAAU,EAAG,CAAgB,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;aACrD,CAAC;QACJ,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAG,CAAgB,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,EAAE,OAAO;YACtD,WAAW,EAAE,gBAAgB,CAAC,CAAe,EAAE,SAAS,CAAC;YACzD,SAAS;YACT,aAAa,EAAE,QAAQ,GAAG,SAAS;YACnC,UAAU,EAAG,CAAgB,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;SACrD,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"req-fn.js","sourceRoot":"","sources":["../../src/utilities/req-fn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,OAA4C,EAC5C,MAAM,GAAG,KAAK,EACd,oBAAoB,GAAG,IAAI,EAC3B,YAAgC,EAAE,OAAO,EAAE,KAAK,EAAE;IAElD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IACpD,IAAI,CAAC;QACH,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,cAAc,GAClB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,qBAAqB,IAAI,CAAC,CAAC,CAAC;YAC3D,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,KAAK,CACX,gEAAgE,EAChE,eAAe,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAC/C,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,WAAW,EAAE,IAAI;oBACjB,SAAS;oBACT,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBACrC,UAAU,EAAE,GAAG;oBACf,GAAG,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;iBACvC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAmB,OAAO,CAAC,CAAC;QAC3D,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,OAAO,MAAM;YACX,CAAC,CAAC;gBACE,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,GAAG,EAAE,IAAI;gBACf,SAAS;gBACT,aAAa,EAAE,QAAQ,GAAG,SAAS;gBACnC,UAAU,EAAE,GAAG,EAAE,MAAM,IAAI,GAAG;aAC/B;YACH,CAAC,CAAC;gBACE,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,IAAI;gBACjB,SAAS;gBACT,aAAa,EAAE,QAAQ,GAAG,SAAS;gBACnC,UAAU,EAAE,GAAG,EAAE,MAAM,IAAI,GAAG;aAC/B,CAAC;IACR,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,IAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,wBAAwB;gBAC/B,WAAW,EAAE,KAAK;gBAClB,SAAS;gBACT,aAAa,EAAE,QAAQ,GAAG,SAAS;gBACnC,UAAU,EAAG,CAAgB,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;aACrD,CAAC;QACJ,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAG,CAAgB,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,EAAE,OAAO;YACtD,WAAW,EAAE,gBAAgB,CAAC,CAAe,EAAE,SAAS,CAAC;YACzD,SAAS;YACT,aAAa,EAAE,QAAQ,GAAG,SAAS;YACnC,UAAU,EAAG,CAAgB,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;SACrD,CAAC;IACJ,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emmvish/stable-request",
3
- "version": "1.1.8",
3
+ "version": "1.2.1",
4
4
  "description": "stable-request is a TypeScript-first HTTP reliability toolkit for workflow-driven API integrations, that goes beyond status-code retries by validating response content, handling eventual consistency, coordinating batch workflows with intelligent grouping, and providing deep observability into every request attempt. It is designed for real-world distributed systems where HTTP success does not guarantee business success. It also provides extensive support for managing multiple requests so as to achieve workflow automation.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",