bytekit 2.2.3 → 2.4.4

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 (71) hide show
  1. package/dist/cli/index.js +7 -4
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/cli/swagger-generator.d.ts.map +1 -1
  4. package/dist/cli/swagger-generator.js +9 -0
  5. package/dist/cli/swagger-generator.js.map +1 -1
  6. package/dist/cli/type-generator.d.ts.map +1 -1
  7. package/dist/cli/type-generator.js +5 -0
  8. package/dist/cli/type-generator.js.map +1 -1
  9. package/dist/utils/async/request-batcher.d.ts.map +1 -1
  10. package/dist/utils/async/request-batcher.js +1 -0
  11. package/dist/utils/async/request-batcher.js.map +1 -1
  12. package/dist/utils/async/throttle.d.ts.map +1 -1
  13. package/dist/utils/async/throttle.js +1 -0
  14. package/dist/utils/async/throttle.js.map +1 -1
  15. package/dist/utils/core/ApiClient.d.ts.map +1 -1
  16. package/dist/utils/core/ApiClient.js +12 -1
  17. package/dist/utils/core/ApiClient.js.map +1 -1
  18. package/dist/utils/core/ErrorBoundary.d.ts.map +1 -1
  19. package/dist/utils/core/ErrorBoundary.js +18 -5
  20. package/dist/utils/core/ErrorBoundary.js.map +1 -1
  21. package/dist/utils/core/Logger.d.ts +191 -0
  22. package/dist/utils/core/Logger.d.ts.map +1 -1
  23. package/dist/utils/core/Logger.js +155 -0
  24. package/dist/utils/core/Logger.js.map +1 -1
  25. package/dist/utils/core/Profiler.d.ts +41 -0
  26. package/dist/utils/core/Profiler.d.ts.map +1 -1
  27. package/dist/utils/core/Profiler.js +59 -0
  28. package/dist/utils/core/Profiler.js.map +1 -1
  29. package/dist/utils/core/RateLimiter.d.ts.map +1 -1
  30. package/dist/utils/core/RateLimiter.js +2 -0
  31. package/dist/utils/core/RateLimiter.js.map +1 -1
  32. package/dist/utils/core/ResponseValidator.d.ts +56 -0
  33. package/dist/utils/core/ResponseValidator.d.ts.map +1 -1
  34. package/dist/utils/core/ResponseValidator.js +28 -0
  35. package/dist/utils/core/ResponseValidator.js.map +1 -1
  36. package/dist/utils/core/RetryPolicy.d.ts +144 -0
  37. package/dist/utils/core/RetryPolicy.d.ts.map +1 -1
  38. package/dist/utils/core/RetryPolicy.js +108 -0
  39. package/dist/utils/core/RetryPolicy.js.map +1 -1
  40. package/dist/utils/helpers/CacheManager.d.ts.map +1 -1
  41. package/dist/utils/helpers/CacheManager.js +5 -0
  42. package/dist/utils/helpers/CacheManager.js.map +1 -1
  43. package/dist/utils/helpers/CompressionUtils.d.ts.map +1 -1
  44. package/dist/utils/helpers/CompressionUtils.js +21 -4
  45. package/dist/utils/helpers/CompressionUtils.js.map +1 -1
  46. package/dist/utils/helpers/CryptoUtils.d.ts.map +1 -1
  47. package/dist/utils/helpers/CryptoUtils.js +15 -3
  48. package/dist/utils/helpers/CryptoUtils.js.map +1 -1
  49. package/dist/utils/helpers/EnvManager.d.ts +46 -0
  50. package/dist/utils/helpers/EnvManager.d.ts.map +1 -1
  51. package/dist/utils/helpers/EnvManager.js +46 -0
  52. package/dist/utils/helpers/EnvManager.js.map +1 -1
  53. package/dist/utils/helpers/EventEmitter.d.ts.map +1 -1
  54. package/dist/utils/helpers/EventEmitter.js +0 -3
  55. package/dist/utils/helpers/EventEmitter.js.map +1 -1
  56. package/dist/utils/helpers/StorageUtils.d.ts +62 -0
  57. package/dist/utils/helpers/StorageUtils.d.ts.map +1 -1
  58. package/dist/utils/helpers/StorageUtils.js +62 -0
  59. package/dist/utils/helpers/StorageUtils.js.map +1 -1
  60. package/dist/utils/helpers/StreamingHelper.d.ts +2 -2
  61. package/dist/utils/helpers/StreamingHelper.d.ts.map +1 -1
  62. package/dist/utils/helpers/StreamingHelper.js +9 -3
  63. package/dist/utils/helpers/StreamingHelper.js.map +1 -1
  64. package/dist/utils/helpers/UrlHelper.d.ts +30 -0
  65. package/dist/utils/helpers/UrlHelper.d.ts.map +1 -1
  66. package/dist/utils/helpers/UrlHelper.js +23 -1
  67. package/dist/utils/helpers/UrlHelper.js.map +1 -1
  68. package/dist/utils/helpers/WebSocketHelper.d.ts.map +1 -1
  69. package/dist/utils/helpers/WebSocketHelper.js +6 -2
  70. package/dist/utils/helpers/WebSocketHelper.js.map +1 -1
  71. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RateLimiter.js","sourceRoot":"","sources":["../../../src/utils/core/RateLimiter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RateLimiter.js","sourceRoot":"","sources":["../../../src/utils/core/RateLimiter.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,47 @@
1
+ /** Schema definition used by {@link ResponseValidator.validate}. */
1
2
  export interface ValidationSchema {
3
+ /** Expected data type of the value being validated. */
2
4
  type?: "object" | "array" | "string" | "number" | "boolean";
5
+ /** When `true`, a `null` or `undefined` value is reported as an error. */
3
6
  required?: boolean;
7
+ /**
8
+ * Schemas for named properties of an object. Only evaluated when
9
+ * `type` is `"object"`.
10
+ */
4
11
  properties?: Record<string, ValidationSchema>;
12
+ /**
13
+ * Schema applied to every element of an array. Only evaluated when
14
+ * `type` is `"array"`.
15
+ */
5
16
  items?: ValidationSchema;
17
+ /** Minimum string length (inclusive). Only evaluated when `type` is `"string"`. */
6
18
  minLength?: number;
19
+ /** Maximum string length (inclusive). Only evaluated when `type` is `"string"`. */
7
20
  maxLength?: number;
21
+ /** Minimum numeric value (inclusive). Only evaluated when `type` is `"number"`. */
8
22
  minimum?: number;
23
+ /** Maximum numeric value (inclusive). Only evaluated when `type` is `"number"`. */
9
24
  maximum?: number;
25
+ /**
26
+ * Regular expression (or pattern string) that string values must match.
27
+ * Only evaluated when `type` is `"string"`.
28
+ */
10
29
  pattern?: RegExp | string;
30
+ /** Set of allowed values; validated using strict equality (`===`). */
11
31
  enum?: unknown[];
32
+ /**
33
+ * Custom validation function. Return `true` to pass, `false` to fail with
34
+ * a generic message, or a `string` to fail with that message.
35
+ */
12
36
  custom?: (value: unknown) => boolean | string;
13
37
  }
38
+ /** Describes a single validation failure produced by {@link ResponseValidator.validate}. */
14
39
  export interface ValidationError {
40
+ /** Dot-notation path to the invalid field (e.g., `"order.item.quantity"`). */
15
41
  path: string;
42
+ /** Human-readable description of why the value failed validation. */
16
43
  message: string;
44
+ /** The actual value that failed validation, if captured. */
17
45
  value?: unknown;
18
46
  }
19
47
  export declare class ResponseValidator {
@@ -25,6 +53,34 @@ export declare class ResponseValidator {
25
53
  * Validates custom validation rules
26
54
  */
27
55
  private static validateCustom;
56
+ /**
57
+ * Validates `data` against a {@link ValidationSchema} and returns all
58
+ * validation errors found.
59
+ *
60
+ * Performs a recursive deep validation of objects and arrays. Returns an
61
+ * empty array when `data` is fully valid.
62
+ *
63
+ * @param data - The value to validate (any type).
64
+ * @param schema - Schema describing the expected shape and constraints.
65
+ * @param path - Dot-notation path prefix used in error messages.
66
+ * Defaults to `"root"`.
67
+ * @returns An array of {@link ValidationError} objects; empty when valid.
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * const errors = ResponseValidator.validate(
72
+ * { name: 'Alice', age: -1 },
73
+ * {
74
+ * type: 'object',
75
+ * properties: {
76
+ * name: { type: 'string', required: true },
77
+ * age: { type: 'number', minimum: 0 },
78
+ * },
79
+ * },
80
+ * );
81
+ * // [{ path: 'root.age', message: 'Number must be at least 0', value: -1 }]
82
+ * ```
83
+ */
28
84
  static validate(data: unknown, schema: ValidationSchema, path?: string): ValidationError[];
29
85
  private static validateObject;
30
86
  private static validateArray;
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseValidator.d.ts","sourceRoot":"","sources":["../../../src/utils/core/ResponseValidator.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,CAAC;CACjD;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,iBAAiB;IAC1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAgC7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAwB7B,MAAM,CAAC,QAAQ,CACX,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,gBAAgB,EACxB,IAAI,SAAS,GACd,eAAe,EAAE;IAuCpB,OAAO,CAAC,MAAM,CAAC,cAAc;IAkB7B,OAAO,CAAC,MAAM,CAAC,aAAa;IAiB5B,OAAO,CAAC,MAAM,CAAC,cAAc;IAgD7B,OAAO,CAAC,MAAM,CAAC,cAAc;IAkC7B,OAAO,CAAC,MAAM,CAAC,eAAe;CAiBjC"}
1
+ {"version":3,"file":"ResponseValidator.d.ts","sourceRoot":"","sources":["../../../src/utils/core/ResponseValidator.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,MAAM,WAAW,gBAAgB;IAC7B,uDAAuD;IACvD,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC5D,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC9C;;;OAGG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,sEAAsE;IACtE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,CAAC;CACjD;AAED,4FAA4F;AAC5F,MAAM,WAAW,eAAe;IAC5B,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,iBAAiB;IAC1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAgC7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAwB7B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,MAAM,CAAC,QAAQ,CACX,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,gBAAgB,EACxB,IAAI,SAAS,GACd,eAAe,EAAE;IAuCpB,OAAO,CAAC,MAAM,CAAC,cAAc;IAkB7B,OAAO,CAAC,MAAM,CAAC,aAAa;IAiB5B,OAAO,CAAC,MAAM,CAAC,cAAc;IAgD7B,OAAO,CAAC,MAAM,CAAC,cAAc;IAkC7B,OAAO,CAAC,MAAM,CAAC,eAAe;CAiBjC"}
@@ -42,6 +42,34 @@ export class ResponseValidator {
42
42
  }
43
43
  return errors;
44
44
  }
45
+ /**
46
+ * Validates `data` against a {@link ValidationSchema} and returns all
47
+ * validation errors found.
48
+ *
49
+ * Performs a recursive deep validation of objects and arrays. Returns an
50
+ * empty array when `data` is fully valid.
51
+ *
52
+ * @param data - The value to validate (any type).
53
+ * @param schema - Schema describing the expected shape and constraints.
54
+ * @param path - Dot-notation path prefix used in error messages.
55
+ * Defaults to `"root"`.
56
+ * @returns An array of {@link ValidationError} objects; empty when valid.
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const errors = ResponseValidator.validate(
61
+ * { name: 'Alice', age: -1 },
62
+ * {
63
+ * type: 'object',
64
+ * properties: {
65
+ * name: { type: 'string', required: true },
66
+ * age: { type: 'number', minimum: 0 },
67
+ * },
68
+ * },
69
+ * );
70
+ * // [{ path: 'root.age', message: 'Number must be at least 0', value: -1 }]
71
+ * ```
72
+ */
45
73
  static validate(data, schema, path = "root") {
46
74
  const errors = [];
47
75
  // Check required
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseValidator.js","sourceRoot":"","sources":["../../../src/utils/core/ResponseValidator.ts"],"names":[],"mappings":"AAoBA,MAAM,OAAO,iBAAiB;IAC1B;;OAEG;IACK,MAAM,CAAC,cAAc,CACzB,IAAa,EACb,MAAwB,EACxB,IAAY;QAEZ,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,IACI,MAAM,CAAC,IAAI,KAAK,QAAQ;YACxB,OAAO,IAAI,KAAK,QAAQ;YACxB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EACtB,CAAC;YACC,MAAM,CAAC,IAAI,CACP,GAAG,IAAI,CAAC,cAAc,CAClB,IAA+B,EAC/B,MAAM,EACN,IAAI,CACP,CACJ,CAAC;QACN,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,cAAc,CACzB,IAAa,EACb,MAAwB,EACxB,IAAY;QAEZ,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC;oBACR,IAAI;oBACJ,OAAO,EACH,OAAO,MAAM,KAAK,QAAQ;wBACtB,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,0BAA0B;oBACpC,KAAK,EAAE,IAAI;iBACd,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,QAAQ,CACX,IAAa,EACb,MAAwB,EACxB,IAAI,GAAG,MAAM;QAEb,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,iBAAiB;QACjB,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI;gBACJ,OAAO,EAAE,mBAAmB;gBAC5B,KAAK,EAAE,IAAI;aACd,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,aAAa;QACb,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC;YAC/D,IAAI,UAAU,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC;oBACR,IAAI;oBACJ,OAAO,EAAE,iBAAiB,MAAM,CAAC,IAAI,SAAS,UAAU,EAAE;oBAC1D,KAAK,EAAE,IAAI;iBACd,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC;YAClB,CAAC;QACL,CAAC;QAED,yBAAyB;QACzB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAExD,oBAAoB;QACpB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAExD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,cAAc,CACzB,GAA4B,EAC5B,MAAwB,EACxB,IAAY;QAEZ,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChE,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvB,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,aAAa,CACxB,GAAc,EACd,MAAwB,EACxB,IAAY;QAEZ,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,KAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,cAAc,CACzB,GAAW,EACX,MAAwB,EACxB,IAAY;QAEZ,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI;gBACJ,OAAO,EAAE,kCAAkC,MAAM,CAAC,SAAS,EAAE;gBAC7D,KAAK,EAAE,GAAG;aACb,CAAC,CAAC;QACP,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI;gBACJ,OAAO,EAAE,iCAAiC,MAAM,CAAC,SAAS,EAAE;gBAC5D,KAAK,EAAE,GAAG;aACb,CAAC,CAAC;QACP,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,KAAK,GACP,MAAM,CAAC,OAAO,YAAY,MAAM;gBAC5B,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC;oBACR,IAAI;oBACJ,OAAO,EAAE,iCAAiC,MAAM,CAAC,OAAO,EAAE;oBAC1D,KAAK,EAAE,GAAG;iBACb,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI;gBACJ,OAAO,EAAE,yBAAyB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC1D,KAAK,EAAE,GAAG;aACb,CAAC,CAAC;QACP,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,cAAc,CACzB,GAAW,EACX,MAAwB,EACxB,IAAY;QAEZ,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI;gBACJ,OAAO,EAAE,2BAA2B,MAAM,CAAC,OAAO,EAAE;gBACpD,KAAK,EAAE,GAAG;aACb,CAAC,CAAC;QACP,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI;gBACJ,OAAO,EAAE,0BAA0B,MAAM,CAAC,OAAO,EAAE;gBACnD,KAAK,EAAE,GAAG;aACb,CAAC,CAAC;QACP,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI;gBACJ,OAAO,EAAE,yBAAyB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC1D,KAAK,EAAE,GAAG;aACb,CAAC,CAAC;QACP,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,eAAe,CAC1B,KAAc,EACd,MAAwB,EACxB,IAAY;QAEZ,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI;gBACJ,OAAO,EAAE,yBAAyB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC1D,KAAK;aACR,CAAC,CAAC;QACP,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
1
+ {"version":3,"file":"ResponseValidator.js","sourceRoot":"","sources":["../../../src/utils/core/ResponseValidator.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,70 @@
1
+ /** Configuration options for the {@link RetryPolicy} class. */
1
2
  export interface RetryConfig {
3
+ /** Maximum number of attempts before giving up. Defaults to `3`. */
2
4
  maxAttempts?: number;
5
+ /** Delay in milliseconds before the first retry. Defaults to `100`. */
3
6
  initialDelayMs?: number;
7
+ /** Maximum delay in milliseconds between retries. Defaults to `10000`. */
4
8
  maxDelayMs?: number;
9
+ /**
10
+ * Multiplier applied to the delay after each failed attempt (exponential
11
+ * backoff). Defaults to `2`.
12
+ */
5
13
  backoffMultiplier?: number;
14
+ /**
15
+ * Predicate that determines whether a given error should trigger a retry.
16
+ * Receives the error and the current attempt number (1-based).
17
+ * Defaults to retrying on network errors and HTTP 408 / 429 / 5xx status codes.
18
+ */
6
19
  shouldRetry?: (error: Error, attempt: number) => boolean;
7
20
  }
21
+ /** Configuration options for the {@link CircuitBreaker} class. */
8
22
  export interface CircuitBreakerConfig {
23
+ /**
24
+ * Number of consecutive failures required to open the circuit.
25
+ * Defaults to `5`.
26
+ */
9
27
  failureThreshold?: number;
28
+ /**
29
+ * Number of consecutive successes in `half-open` state required to close
30
+ * the circuit. Defaults to `2`.
31
+ */
10
32
  successThreshold?: number;
33
+ /**
34
+ * Time in milliseconds to wait in `open` state before attempting a reset
35
+ * to `half-open`. Defaults to `60000` (60 seconds).
36
+ */
11
37
  timeoutMs?: number;
38
+ /**
39
+ * Optional function to customise the error message thrown when the circuit
40
+ * is open. Receives the number of milliseconds until the next reset attempt.
41
+ */
12
42
  errorMessageFormatter?: (ms: number) => string;
13
43
  }
44
+ /**
45
+ * Possible states of a {@link CircuitBreaker}.
46
+ *
47
+ * - `"closed"` — normal operation; requests are forwarded.
48
+ * - `"open"` — circuit is tripped; requests are rejected immediately.
49
+ * - `"half-open"` — circuit is testing recovery; limited requests are forwarded.
50
+ */
14
51
  export type CircuitBreakerState = "closed" | "open" | "half-open";
52
+ /**
53
+ * Implements the Circuit Breaker pattern to prevent cascading failures.
54
+ *
55
+ * The breaker transitions between three states: `closed` (normal operation),
56
+ * `open` (tripped after too many failures), and `half-open` (testing recovery).
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const breaker = new CircuitBreaker({ failureThreshold: 3, timeoutMs: 5000 });
61
+ * try {
62
+ * const result = await breaker.execute(() => fetchData());
63
+ * } catch (error) {
64
+ * // Either the underlying call failed, or the circuit is open.
65
+ * }
66
+ * ```
67
+ */
15
68
  export declare class CircuitBreaker {
16
69
  private state;
17
70
  private failureCount;
@@ -21,26 +74,117 @@ export declare class CircuitBreaker {
21
74
  private readonly successThreshold;
22
75
  private readonly timeoutMs;
23
76
  private readonly errorMessageFormatter?;
77
+ /**
78
+ * Creates a new `CircuitBreaker` instance.
79
+ *
80
+ * @param config - Circuit breaker configuration.
81
+ */
24
82
  constructor(config?: CircuitBreakerConfig);
83
+ /**
84
+ * Executes a function through the circuit breaker.
85
+ *
86
+ * When the circuit is `open`, immediately throws without calling `fn`.
87
+ * When `closed` or `half-open`, calls `fn` and tracks the outcome to
88
+ * update the circuit state.
89
+ *
90
+ * @template T - The return type of the wrapped function.
91
+ * @param fn - Async function to execute.
92
+ * @returns The resolved value of `fn`.
93
+ * @throws {Error} If the circuit is open and the timeout has not elapsed.
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * const data = await breaker.execute(() =>
98
+ * fetch('/api/data').then((r) => r.json()),
99
+ * );
100
+ * ```
101
+ */
25
102
  execute<T>(fn: () => Promise<T>): Promise<T>;
103
+ /** @internal */
26
104
  private onSuccess;
105
+ /** @internal */
27
106
  private onFailure;
107
+ /** @internal */
28
108
  private shouldAttemptReset;
109
+ /** @internal */
29
110
  private getRetryAfterMs;
111
+ /**
112
+ * Returns the current state of the circuit breaker.
113
+ *
114
+ * @returns The current {@link CircuitBreakerState}.
115
+ */
30
116
  getState(): CircuitBreakerState;
117
+ /**
118
+ * Manually resets the circuit breaker to `closed` state.
119
+ *
120
+ * Clears all failure and success counters. Useful in tests or when
121
+ * manually recovering from an incident.
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * breaker.reset();
126
+ * console.log(breaker.getState()); // "closed"
127
+ * ```
128
+ */
31
129
  reset(): void;
32
130
  }
131
+ /**
132
+ * Implements a retry policy with configurable exponential backoff and jitter.
133
+ *
134
+ * Automatically retries a failing async operation up to a configured maximum
135
+ * number of attempts, applying a jittered exponential delay between each
136
+ * attempt to avoid thundering-herd problems.
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * const policy = new RetryPolicy({ maxAttempts: 5, initialDelayMs: 200 });
141
+ * const data = await policy.execute(() => fetchData());
142
+ * ```
143
+ */
33
144
  export declare class RetryPolicy {
34
145
  private readonly maxAttempts;
35
146
  private readonly initialDelayMs;
36
147
  private readonly maxDelayMs;
37
148
  private readonly backoffMultiplier;
38
149
  private readonly shouldRetry;
150
+ /**
151
+ * Creates a new `RetryPolicy` instance.
152
+ *
153
+ * @param config - Retry configuration.
154
+ */
39
155
  constructor(config?: RetryConfig);
156
+ /**
157
+ * Executes a function, retrying on failure according to the configured policy.
158
+ *
159
+ * @template T - The return type of the wrapped function.
160
+ * @param fn - Async function to execute and potentially retry.
161
+ * @returns The resolved value of `fn` on a successful attempt.
162
+ * @throws {Error} The last encountered error once all attempts are exhausted.
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * const result = await policy.execute(() =>
167
+ * fetch('/api').then((r) => r.json()),
168
+ * );
169
+ * ```
170
+ */
40
171
  execute<T>(fn: () => Promise<T>): Promise<T>;
172
+ /** @internal */
41
173
  private calculateDelay;
174
+ /** @internal */
42
175
  private sleep;
176
+ /** @internal */
43
177
  private isRetryableError;
178
+ /**
179
+ * Returns a snapshot of the policy's current configuration.
180
+ *
181
+ * @returns An object containing all configured retry parameters.
182
+ *
183
+ * @example
184
+ * ```typescript
185
+ * const { maxAttempts, initialDelayMs } = policy.getConfig();
186
+ * ```
187
+ */
44
188
  getConfig(): {
45
189
  maxAttempts: number;
46
190
  initialDelayMs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"RetryPolicy.d.ts","sourceRoot":"","sources":["../../../src/utils/core/RetryPolicy.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5D;AAED,MAAM,WAAW,oBAAoB;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;CAClD;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAElE,qBAAa,cAAc;IACvB,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAyB;gBAEpD,MAAM,GAAE,oBAAyB;IAOvC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA8BlD,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,eAAe;IAMvB,QAAQ,IAAI,mBAAmB;IAI/B,KAAK,IAAI,IAAI;CAMhB;AAED,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6C;gBAE7D,MAAM,GAAE,WAAgB;IAS9B,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAyBlD,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,gBAAgB;IAgBxB,SAAS,IAAI;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;KAC3D;CASJ"}
1
+ {"version":3,"file":"RetryPolicy.d.ts","sourceRoot":"","sources":["../../../src/utils/core/RetryPolicy.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,WAAW,WAAW;IACxB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5D;AAED,kEAAkE;AAClE,MAAM,WAAW,oBAAoB;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;CAClD;AAED;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAElE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAyB;IAEhE;;;;OAIG;gBACS,MAAM,GAAE,oBAAyB;IAO7C;;;;;;;;;;;;;;;;;;OAkBG;IACG,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA8BlD,gBAAgB;IAChB,OAAO,CAAC,SAAS;IAYjB,gBAAgB;IAChB,OAAO,CAAC,SAAS;IAUjB,gBAAgB;IAChB,OAAO,CAAC,kBAAkB;IAO1B,gBAAgB;IAChB,OAAO,CAAC,eAAe;IAOvB;;;;OAIG;IACH,QAAQ,IAAI,mBAAmB;IAI/B;;;;;;;;;;;OAWG;IACH,KAAK,IAAI,IAAI;CAMhB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6C;IAEzE;;;;OAIG;gBACS,MAAM,GAAE,WAAgB;IASpC;;;;;;;;;;;;;;OAcG;IACG,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAyBlD,gBAAgB;IAChB,OAAO,CAAC,cAAc;IAUtB,gBAAgB;IAChB,OAAO,CAAC,KAAK;IAIb,gBAAgB;IAChB,OAAO,CAAC,gBAAgB;IAgBxB;;;;;;;;;OASG;IACH,SAAS,IAAI;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;KAC3D;CASJ"}
@@ -1,4 +1,25 @@
1
+ /**
2
+ * Implements the Circuit Breaker pattern to prevent cascading failures.
3
+ *
4
+ * The breaker transitions between three states: `closed` (normal operation),
5
+ * `open` (tripped after too many failures), and `half-open` (testing recovery).
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const breaker = new CircuitBreaker({ failureThreshold: 3, timeoutMs: 5000 });
10
+ * try {
11
+ * const result = await breaker.execute(() => fetchData());
12
+ * } catch (error) {
13
+ * // Either the underlying call failed, or the circuit is open.
14
+ * }
15
+ * ```
16
+ */
1
17
  export class CircuitBreaker {
18
+ /**
19
+ * Creates a new `CircuitBreaker` instance.
20
+ *
21
+ * @param config - Circuit breaker configuration.
22
+ */
2
23
  constructor(config = {}) {
3
24
  Object.defineProperty(this, "state", {
4
25
  enumerable: true,
@@ -53,6 +74,25 @@ export class CircuitBreaker {
53
74
  this.timeoutMs = config.timeoutMs ?? 60000;
54
75
  this.errorMessageFormatter = config.errorMessageFormatter;
55
76
  }
77
+ /**
78
+ * Executes a function through the circuit breaker.
79
+ *
80
+ * When the circuit is `open`, immediately throws without calling `fn`.
81
+ * When `closed` or `half-open`, calls `fn` and tracks the outcome to
82
+ * update the circuit state.
83
+ *
84
+ * @template T - The return type of the wrapped function.
85
+ * @param fn - Async function to execute.
86
+ * @returns The resolved value of `fn`.
87
+ * @throws {Error} If the circuit is open and the timeout has not elapsed.
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * const data = await breaker.execute(() =>
92
+ * fetch('/api/data').then((r) => r.json()),
93
+ * );
94
+ * ```
95
+ */
56
96
  async execute(fn) {
57
97
  if (this.state === "open") {
58
98
  if (this.shouldAttemptReset()) {
@@ -82,6 +122,7 @@ export class CircuitBreaker {
82
122
  throw error;
83
123
  }
84
124
  }
125
+ /** @internal */
85
126
  onSuccess() {
86
127
  this.failureCount = 0;
87
128
  if (this.state === "half-open") {
@@ -92,6 +133,7 @@ export class CircuitBreaker {
92
133
  }
93
134
  }
94
135
  }
136
+ /** @internal */
95
137
  onFailure() {
96
138
  this.lastFailureTime = Date.now();
97
139
  this.failureCount++;
@@ -100,19 +142,39 @@ export class CircuitBreaker {
100
142
  this.state = "open";
101
143
  }
102
144
  }
145
+ /** @internal */
103
146
  shouldAttemptReset() {
104
147
  return (this.lastFailureTime !== undefined &&
105
148
  Date.now() - this.lastFailureTime >= this.timeoutMs);
106
149
  }
150
+ /** @internal */
107
151
  getRetryAfterMs() {
152
+ /* v8 ignore next */
108
153
  if (this.lastFailureTime === undefined)
109
154
  return 0;
110
155
  const elapsed = Date.now() - this.lastFailureTime;
111
156
  return Math.max(0, this.timeoutMs - elapsed);
112
157
  }
158
+ /**
159
+ * Returns the current state of the circuit breaker.
160
+ *
161
+ * @returns The current {@link CircuitBreakerState}.
162
+ */
113
163
  getState() {
114
164
  return this.state;
115
165
  }
166
+ /**
167
+ * Manually resets the circuit breaker to `closed` state.
168
+ *
169
+ * Clears all failure and success counters. Useful in tests or when
170
+ * manually recovering from an incident.
171
+ *
172
+ * @example
173
+ * ```typescript
174
+ * breaker.reset();
175
+ * console.log(breaker.getState()); // "closed"
176
+ * ```
177
+ */
116
178
  reset() {
117
179
  this.state = "closed";
118
180
  this.failureCount = 0;
@@ -120,7 +182,25 @@ export class CircuitBreaker {
120
182
  this.lastFailureTime = undefined;
121
183
  }
122
184
  }
185
+ /**
186
+ * Implements a retry policy with configurable exponential backoff and jitter.
187
+ *
188
+ * Automatically retries a failing async operation up to a configured maximum
189
+ * number of attempts, applying a jittered exponential delay between each
190
+ * attempt to avoid thundering-herd problems.
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * const policy = new RetryPolicy({ maxAttempts: 5, initialDelayMs: 200 });
195
+ * const data = await policy.execute(() => fetchData());
196
+ * ```
197
+ */
123
198
  export class RetryPolicy {
199
+ /**
200
+ * Creates a new `RetryPolicy` instance.
201
+ *
202
+ * @param config - Retry configuration.
203
+ */
124
204
  constructor(config = {}) {
125
205
  Object.defineProperty(this, "maxAttempts", {
126
206
  enumerable: true,
@@ -159,6 +239,21 @@ export class RetryPolicy {
159
239
  this.shouldRetry =
160
240
  config.shouldRetry ?? ((error) => this.isRetryableError(error));
161
241
  }
242
+ /**
243
+ * Executes a function, retrying on failure according to the configured policy.
244
+ *
245
+ * @template T - The return type of the wrapped function.
246
+ * @param fn - Async function to execute and potentially retry.
247
+ * @returns The resolved value of `fn` on a successful attempt.
248
+ * @throws {Error} The last encountered error once all attempts are exhausted.
249
+ *
250
+ * @example
251
+ * ```typescript
252
+ * const result = await policy.execute(() =>
253
+ * fetch('/api').then((r) => r.json()),
254
+ * );
255
+ * ```
256
+ */
162
257
  async execute(fn) {
163
258
  let lastError;
164
259
  for (let attempt = 1; attempt <= this.maxAttempts; attempt++) {
@@ -178,6 +273,7 @@ export class RetryPolicy {
178
273
  }
179
274
  throw lastError ?? new Error("Retry policy failed");
180
275
  }
276
+ /** @internal */
181
277
  calculateDelay(attempt) {
182
278
  const exponentialDelay = this.initialDelayMs * Math.pow(this.backoffMultiplier, attempt - 1);
183
279
  const array = new Uint32Array(1);
@@ -186,9 +282,11 @@ export class RetryPolicy {
186
282
  const jitter = randomValue * 0.1 * exponentialDelay;
187
283
  return Math.min(exponentialDelay + jitter, this.maxDelayMs);
188
284
  }
285
+ /** @internal */
189
286
  sleep(ms) {
190
287
  return new Promise((resolve) => setTimeout(resolve, ms));
191
288
  }
289
+ /** @internal */
192
290
  isRetryableError(error) {
193
291
  const status = error.status;
194
292
  if (typeof status === "number") {
@@ -201,6 +299,16 @@ export class RetryPolicy {
201
299
  message.includes("econnrefused") ||
202
300
  message.includes("econnreset"));
203
301
  }
302
+ /**
303
+ * Returns a snapshot of the policy's current configuration.
304
+ *
305
+ * @returns An object containing all configured retry parameters.
306
+ *
307
+ * @example
308
+ * ```typescript
309
+ * const { maxAttempts, initialDelayMs } = policy.getConfig();
310
+ * ```
311
+ */
204
312
  getConfig() {
205
313
  return {
206
314
  maxAttempts: this.maxAttempts,
@@ -1 +1 @@
1
- {"version":3,"file":"RetryPolicy.js","sourceRoot":"","sources":["../../../src/utils/core/RetryPolicy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RetryPolicy.js","sourceRoot":"","sources":["../../../src/utils/core/RetryPolicy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/CacheManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACvC,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AA0ID;;GAEG;AACH,qBAAa,YAAY,CAAC,CAAC,GAAG,OAAO;IACjC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,GAAE,mBAAwB;IAQ7C;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,GAAE,MAAwB,GAAG,IAAI;IAO/D;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAkB1B;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOzB;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,QAAQ,IAAI,eAAe;IAI3B;;OAEG;IACG,YAAY,CACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,GAAG,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,CAAC;IASb;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAKtD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,OAAO,EAC1C,OAAO,CAAC,EAAE,mBAAmB,GAC9B,YAAY,CAAC,CAAC,CAAC,CAEjB"}
1
+ {"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/CacheManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACvC,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AA+ID;;GAEG;AACH,qBAAa,YAAY,CAAC,CAAC,GAAG,OAAO;IACjC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,GAAE,mBAAwB;IAQ7C;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,GAAE,MAAwB,GAAG,IAAI;IAO/D;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAkB1B;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOzB;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,QAAQ,IAAI,eAAe;IAI3B;;OAEG;IACG,YAAY,CACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,GAAG,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,CAAC;IASb;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAKtD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,OAAO,EAC1C,OAAO,CAAC,EAAE,mBAAmB,GAC9B,YAAY,CAAC,CAAC,CAAC,CAEjB"}
@@ -74,6 +74,7 @@ class MemoryCache {
74
74
  hits: this.hits,
75
75
  misses: this.misses,
76
76
  size: this.cache.size,
77
+ /* v8 ignore next */
77
78
  hitRate: total === 0 ? 0 : this.hits / total,
78
79
  };
79
80
  }
@@ -92,6 +93,7 @@ class LocalStorageCache {
92
93
  this.prefix = prefix;
93
94
  }
94
95
  set(key, value, ttl) {
96
+ /* v8 ignore next */
95
97
  if (typeof localStorage === "undefined")
96
98
  return;
97
99
  const entry = {
@@ -107,6 +109,7 @@ class LocalStorageCache {
107
109
  }
108
110
  }
109
111
  get(key) {
112
+ /* v8 ignore next */
110
113
  if (typeof localStorage === "undefined")
111
114
  return null;
112
115
  try {
@@ -128,11 +131,13 @@ class LocalStorageCache {
128
131
  return this.get(key) !== null;
129
132
  }
130
133
  delete(key) {
134
+ /* v8 ignore next */
131
135
  if (typeof localStorage === "undefined")
132
136
  return;
133
137
  localStorage.removeItem(this.prefix + key);
134
138
  }
135
139
  clear() {
140
+ /* v8 ignore next */
136
141
  if (typeof localStorage === "undefined")
137
142
  return;
138
143
  const keys = [];