bytekit 1.0.0 → 1.0.2
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 +11 -0
- package/dist/cli/index.js +7 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/type-generator.js +26 -32
- package/dist/cli/type-generator.js.map +1 -1
- package/dist/color-utils.d.ts +2 -0
- package/dist/color-utils.d.ts.map +1 -0
- package/dist/color-utils.js +2 -0
- package/dist/color-utils.js.map +1 -0
- package/dist/number-utils.d.ts +2 -0
- package/dist/number-utils.d.ts.map +1 -0
- package/dist/number-utils.js +2 -0
- package/dist/number-utils.js.map +1 -0
- package/dist/utils/core/ApiClient.d.ts +60 -6
- package/dist/utils/core/ApiClient.d.ts.map +1 -1
- package/dist/utils/core/ApiClient.js +232 -28
- package/dist/utils/core/ApiClient.js.map +1 -1
- package/dist/utils/core/BatchRequest.d.ts +5 -5
- package/dist/utils/core/BatchRequest.d.ts.map +1 -1
- package/dist/utils/core/BatchRequest.js +18 -4
- package/dist/utils/core/BatchRequest.js.map +1 -1
- package/dist/utils/core/ErrorBoundary.js +66 -15
- package/dist/utils/core/ErrorBoundary.js.map +1 -1
- package/dist/utils/core/Logger.d.ts.map +1 -1
- package/dist/utils/core/Logger.js +18 -3
- package/dist/utils/core/Logger.js.map +1 -1
- package/dist/utils/core/Profiler.d.ts.map +1 -1
- package/dist/utils/core/Profiler.js +19 -3
- package/dist/utils/core/Profiler.js.map +1 -1
- package/dist/utils/core/QueryClient.d.ts +129 -0
- package/dist/utils/core/QueryClient.d.ts.map +1 -0
- package/dist/utils/core/QueryClient.js +417 -0
- package/dist/utils/core/QueryClient.js.map +1 -0
- package/dist/utils/core/QueryState.d.ts +99 -0
- package/dist/utils/core/QueryState.d.ts.map +1 -0
- package/dist/utils/core/QueryState.js +65 -0
- package/dist/utils/core/QueryState.js.map +1 -0
- package/dist/utils/core/RateLimiter.js +48 -8
- package/dist/utils/core/RateLimiter.js.map +1 -1
- package/dist/utils/core/RequestCache.d.ts.map +1 -1
- package/dist/utils/core/RequestCache.js +30 -6
- package/dist/utils/core/RequestCache.js.map +1 -1
- package/dist/utils/core/RequestDeduplicator.js +18 -3
- package/dist/utils/core/RequestDeduplicator.js.map +1 -1
- package/dist/utils/core/ResponseValidator.d.ts +1 -0
- package/dist/utils/core/ResponseValidator.d.ts.map +1 -1
- package/dist/utils/core/ResponseValidator.js +14 -0
- package/dist/utils/core/ResponseValidator.js.map +1 -1
- package/dist/utils/core/RetryPolicy.d.ts.map +1 -1
- package/dist/utils/core/RetryPolicy.js +77 -13
- package/dist/utils/core/RetryPolicy.js.map +1 -1
- package/dist/utils/helpers/CacheManager.d.ts +1 -1
- package/dist/utils/helpers/CacheManager.d.ts.map +1 -1
- package/dist/utils/helpers/CacheManager.js +49 -10
- package/dist/utils/helpers/CacheManager.js.map +1 -1
- package/dist/utils/helpers/ColorUtils.d.ts +235 -0
- package/dist/utils/helpers/ColorUtils.d.ts.map +1 -0
- package/dist/utils/helpers/ColorUtils.js +594 -0
- package/dist/utils/helpers/ColorUtils.js.map +1 -0
- package/dist/utils/helpers/EnvManager.d.ts.map +1 -1
- package/dist/utils/helpers/EnvManager.js +12 -3
- package/dist/utils/helpers/EnvManager.js.map +1 -1
- package/dist/utils/helpers/EventEmitter.d.ts.map +1 -1
- package/dist/utils/helpers/EventEmitter.js +52 -18
- package/dist/utils/helpers/EventEmitter.js.map +1 -1
- package/dist/utils/helpers/FileUploadHelper.d.ts.map +1 -1
- package/dist/utils/helpers/FileUploadHelper.js +14 -22
- package/dist/utils/helpers/FileUploadHelper.js.map +1 -1
- package/dist/utils/helpers/FormUtils.js +25 -5
- package/dist/utils/helpers/FormUtils.js.map +1 -1
- package/dist/utils/helpers/NumberUtils.d.ts +230 -0
- package/dist/utils/helpers/NumberUtils.d.ts.map +1 -0
- package/dist/utils/helpers/NumberUtils.js +536 -0
- package/dist/utils/helpers/NumberUtils.js.map +1 -0
- package/dist/utils/helpers/PaginationHelper.d.ts.map +1 -1
- package/dist/utils/helpers/PaginationHelper.js +43 -7
- package/dist/utils/helpers/PaginationHelper.js.map +1 -1
- package/dist/utils/helpers/PollingHelper.d.ts +30 -0
- package/dist/utils/helpers/PollingHelper.d.ts.map +1 -1
- package/dist/utils/helpers/PollingHelper.js +123 -5
- package/dist/utils/helpers/PollingHelper.js.map +1 -1
- package/dist/utils/helpers/Signal.d.ts +92 -0
- package/dist/utils/helpers/Signal.d.ts.map +1 -0
- package/dist/utils/helpers/Signal.js +243 -0
- package/dist/utils/helpers/Signal.js.map +1 -0
- package/dist/utils/helpers/StorageUtils.js +6 -2
- package/dist/utils/helpers/StorageUtils.js.map +1 -1
- package/dist/utils/helpers/StreamingHelper.d.ts.map +1 -1
- package/dist/utils/helpers/StreamingHelper.js +9 -7
- package/dist/utils/helpers/StreamingHelper.js.map +1 -1
- package/dist/utils/helpers/UrlBuilder.js +12 -2
- package/dist/utils/helpers/UrlBuilder.js.map +1 -1
- package/dist/utils/helpers/Validator.d.ts.map +1 -1
- package/dist/utils/helpers/Validator.js +2 -1
- package/dist/utils/helpers/Validator.js.map +1 -1
- package/dist/utils/helpers/WebSocketHelper.d.ts.map +1 -1
- package/dist/utils/helpers/WebSocketHelper.js +50 -10
- package/dist/utils/helpers/WebSocketHelper.js.map +1 -1
- package/dist/utils/helpers/index.d.ts +2 -0
- package/dist/utils/helpers/index.d.ts.map +1 -1
- package/dist/utils/helpers/index.js +2 -0
- package/dist/utils/helpers/index.js.map +1 -1
- package/dist/utils/helpers/useSignal.d.ts +11 -0
- package/dist/utils/helpers/useSignal.d.ts.map +1 -0
- package/dist/utils/helpers/useSignal.js +11 -0
- package/dist/utils/helpers/useSignal.js.map +1 -0
- package/package.json +234 -208
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { ApiError } from "./ApiClient.js";
|
|
2
|
+
/**
|
|
3
|
+
* Request status states
|
|
4
|
+
*/
|
|
5
|
+
export type RequestStatus = "idle" | "loading" | "success" | "error";
|
|
6
|
+
/**
|
|
7
|
+
* Complete state of a request
|
|
8
|
+
*/
|
|
9
|
+
export interface RequestState<T = unknown> {
|
|
10
|
+
status: RequestStatus;
|
|
11
|
+
data?: T;
|
|
12
|
+
error?: ApiError;
|
|
13
|
+
isLoading: boolean;
|
|
14
|
+
isSuccess: boolean;
|
|
15
|
+
isError: boolean;
|
|
16
|
+
isIdle: boolean;
|
|
17
|
+
isFetching: boolean;
|
|
18
|
+
dataUpdatedAt: number;
|
|
19
|
+
errorUpdatedAt: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Request context information
|
|
23
|
+
*/
|
|
24
|
+
export interface RequestContext {
|
|
25
|
+
queryKey?: string[];
|
|
26
|
+
url: string;
|
|
27
|
+
method: string;
|
|
28
|
+
timestamp: number;
|
|
29
|
+
requestId: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Lifecycle callbacks for requests
|
|
33
|
+
*/
|
|
34
|
+
export interface RequestLifecycleCallbacks<T = unknown> {
|
|
35
|
+
onStart?: (context: RequestContext) => void | Promise<void>;
|
|
36
|
+
onSuccess?: (data: T, context: RequestContext) => void | Promise<void>;
|
|
37
|
+
onError?: (error: ApiError, context: RequestContext) => void | Promise<void>;
|
|
38
|
+
onSettled?: (data: T | undefined, error: ApiError | undefined, context: RequestContext) => void | Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Events emitted by QueryClient
|
|
42
|
+
*/
|
|
43
|
+
export interface QueryClientEvents<T = unknown> {
|
|
44
|
+
"query:start": {
|
|
45
|
+
context: RequestContext;
|
|
46
|
+
};
|
|
47
|
+
"query:success": {
|
|
48
|
+
data: T;
|
|
49
|
+
context: RequestContext;
|
|
50
|
+
};
|
|
51
|
+
"query:error": {
|
|
52
|
+
error: ApiError;
|
|
53
|
+
context: RequestContext;
|
|
54
|
+
};
|
|
55
|
+
"query:settled": {
|
|
56
|
+
data?: T;
|
|
57
|
+
error?: ApiError;
|
|
58
|
+
context: RequestContext;
|
|
59
|
+
};
|
|
60
|
+
"state:change": {
|
|
61
|
+
state: RequestState<T>;
|
|
62
|
+
context: RequestContext;
|
|
63
|
+
};
|
|
64
|
+
"cache:invalidate": {
|
|
65
|
+
queryKey: string[];
|
|
66
|
+
};
|
|
67
|
+
"cache:update": {
|
|
68
|
+
queryKey: string[];
|
|
69
|
+
data: T;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Cached query entry
|
|
74
|
+
*/
|
|
75
|
+
export interface CachedQuery<T = unknown> {
|
|
76
|
+
data: T;
|
|
77
|
+
state: RequestState<T>;
|
|
78
|
+
queryKey: string[];
|
|
79
|
+
cachedAt: number;
|
|
80
|
+
staleTime: number;
|
|
81
|
+
cacheTime: number;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Helper to create initial request state
|
|
85
|
+
*/
|
|
86
|
+
export declare function createInitialState<T = unknown>(): RequestState<T>;
|
|
87
|
+
/**
|
|
88
|
+
* Helper to create loading state
|
|
89
|
+
*/
|
|
90
|
+
export declare function createLoadingState<T = unknown>(previousData?: T): RequestState<T>;
|
|
91
|
+
/**
|
|
92
|
+
* Helper to create success state
|
|
93
|
+
*/
|
|
94
|
+
export declare function createSuccessState<T = unknown>(data: T): RequestState<T>;
|
|
95
|
+
/**
|
|
96
|
+
* Helper to create error state
|
|
97
|
+
*/
|
|
98
|
+
export declare function createErrorState<T = unknown>(error: ApiError, previousData?: T): RequestState<T>;
|
|
99
|
+
//# sourceMappingURL=QueryState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryState.d.ts","sourceRoot":"","sources":["../../../src/utils/core/QueryState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper to create initial request state
|
|
3
|
+
*/
|
|
4
|
+
export function createInitialState() {
|
|
5
|
+
return {
|
|
6
|
+
status: "idle",
|
|
7
|
+
isLoading: false,
|
|
8
|
+
isSuccess: false,
|
|
9
|
+
isError: false,
|
|
10
|
+
isIdle: true,
|
|
11
|
+
isFetching: false,
|
|
12
|
+
dataUpdatedAt: 0,
|
|
13
|
+
errorUpdatedAt: 0,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Helper to create loading state
|
|
18
|
+
*/
|
|
19
|
+
export function createLoadingState(previousData) {
|
|
20
|
+
return {
|
|
21
|
+
status: "loading",
|
|
22
|
+
data: previousData,
|
|
23
|
+
isLoading: true,
|
|
24
|
+
isSuccess: false,
|
|
25
|
+
isError: false,
|
|
26
|
+
isIdle: false,
|
|
27
|
+
isFetching: true,
|
|
28
|
+
dataUpdatedAt: 0,
|
|
29
|
+
errorUpdatedAt: 0,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Helper to create success state
|
|
34
|
+
*/
|
|
35
|
+
export function createSuccessState(data) {
|
|
36
|
+
return {
|
|
37
|
+
status: "success",
|
|
38
|
+
data,
|
|
39
|
+
isLoading: false,
|
|
40
|
+
isSuccess: true,
|
|
41
|
+
isError: false,
|
|
42
|
+
isIdle: false,
|
|
43
|
+
isFetching: false,
|
|
44
|
+
dataUpdatedAt: Date.now(),
|
|
45
|
+
errorUpdatedAt: 0,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Helper to create error state
|
|
50
|
+
*/
|
|
51
|
+
export function createErrorState(error, previousData) {
|
|
52
|
+
return {
|
|
53
|
+
status: "error",
|
|
54
|
+
data: previousData,
|
|
55
|
+
error,
|
|
56
|
+
isLoading: false,
|
|
57
|
+
isSuccess: false,
|
|
58
|
+
isError: true,
|
|
59
|
+
isIdle: false,
|
|
60
|
+
isFetching: false,
|
|
61
|
+
dataUpdatedAt: 0,
|
|
62
|
+
errorUpdatedAt: Date.now(),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=QueryState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryState.js","sourceRoot":"","sources":["../../../src/utils/core/QueryState.ts"],"names":[],"mappings":"AA6EA;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAC9B,OAAO;QACH,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,CAAC;QAChB,cAAc,EAAE,CAAC;KACpB,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAC9B,YAAgB;IAEhB,OAAO;QACH,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,CAAC;QAChB,cAAc,EAAE,CAAC;KACpB,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAc,IAAO;IACnD,OAAO;QACH,MAAM,EAAE,SAAS;QACjB,IAAI;QACJ,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;QACzB,cAAc,EAAE,CAAC;KACpB,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC5B,KAAe,EACf,YAAgB;IAEhB,OAAO;QACH,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,YAAY;QAClB,KAAK;QACL,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,CAAC;QAChB,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;KAC7B,CAAC;AACN,CAAC"}
|
|
@@ -3,11 +3,31 @@
|
|
|
3
3
|
* Allows bursts but maintains average rate
|
|
4
4
|
*/
|
|
5
5
|
export class RateLimiter {
|
|
6
|
-
buckets = new Map();
|
|
7
|
-
maxRequests;
|
|
8
|
-
windowMs;
|
|
9
|
-
keyGenerator;
|
|
10
6
|
constructor(config = {}) {
|
|
7
|
+
Object.defineProperty(this, "buckets", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
configurable: true,
|
|
10
|
+
writable: true,
|
|
11
|
+
value: new Map()
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(this, "maxRequests", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
configurable: true,
|
|
16
|
+
writable: true,
|
|
17
|
+
value: void 0
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(this, "windowMs", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
configurable: true,
|
|
22
|
+
writable: true,
|
|
23
|
+
value: void 0
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(this, "keyGenerator", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
configurable: true,
|
|
28
|
+
writable: true,
|
|
29
|
+
value: void 0
|
|
30
|
+
});
|
|
11
31
|
this.maxRequests = config.maxRequests ?? 100;
|
|
12
32
|
this.windowMs = config.windowMs ?? 60 * 1000; // 1 minute
|
|
13
33
|
this.keyGenerator =
|
|
@@ -91,11 +111,31 @@ export class RateLimiter {
|
|
|
91
111
|
* More accurate but uses more memory
|
|
92
112
|
*/
|
|
93
113
|
export class SlidingWindowRateLimiter {
|
|
94
|
-
requests = new Map();
|
|
95
|
-
maxRequests;
|
|
96
|
-
windowMs;
|
|
97
|
-
keyGenerator;
|
|
98
114
|
constructor(config = {}) {
|
|
115
|
+
Object.defineProperty(this, "requests", {
|
|
116
|
+
enumerable: true,
|
|
117
|
+
configurable: true,
|
|
118
|
+
writable: true,
|
|
119
|
+
value: new Map()
|
|
120
|
+
});
|
|
121
|
+
Object.defineProperty(this, "maxRequests", {
|
|
122
|
+
enumerable: true,
|
|
123
|
+
configurable: true,
|
|
124
|
+
writable: true,
|
|
125
|
+
value: void 0
|
|
126
|
+
});
|
|
127
|
+
Object.defineProperty(this, "windowMs", {
|
|
128
|
+
enumerable: true,
|
|
129
|
+
configurable: true,
|
|
130
|
+
writable: true,
|
|
131
|
+
value: void 0
|
|
132
|
+
});
|
|
133
|
+
Object.defineProperty(this, "keyGenerator", {
|
|
134
|
+
enumerable: true,
|
|
135
|
+
configurable: true,
|
|
136
|
+
writable: true,
|
|
137
|
+
value: void 0
|
|
138
|
+
});
|
|
99
139
|
this.maxRequests = config.maxRequests ?? 100;
|
|
100
140
|
this.windowMs = config.windowMs ?? 60 * 1000;
|
|
101
141
|
this.keyGenerator =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimiter.js","sourceRoot":"","sources":["../../../src/utils/core/RateLimiter.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,MAAM,OAAO,WAAW;
|
|
1
|
+
{"version":3,"file":"RateLimiter.js","sourceRoot":"","sources":["../../../src/utils/core/RateLimiter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestCache.d.ts","sourceRoot":"","sources":["../../../src/utils/core/RequestCache.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU,CAAC,CAAC;IACzB,IAAI,EAAE,CAAC,CAAC;IACR,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;CAC7E;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAGjB;IACZ,OAAO,CAAC,KAAK,CAA0B;gBAE3B,MAAM,GAAE,WAAgB;IAMpC;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"RequestCache.d.ts","sourceRoot":"","sources":["../../../src/utils/core/RequestCache.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU,CAAC,CAAC;IACzB,IAAI,EAAE,CAAC,CAAC;IACR,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;CAC7E;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAGjB;IACZ,OAAO,CAAC,KAAK,CAA0B;gBAE3B,MAAM,GAAE,WAAgB;IAMpC;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;IAyBhE;;OAEG;IACH,GAAG,CAAC,CAAC,EACD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,EACP,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,IAAI;IAYP;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAWhE;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAKhE;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IASxC;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,QAAQ,IAAI,UAAU;IAUtB;;OAEG;IACH,OAAO,IAAI,MAAM;IAQjB;;OAEG;IACH,KAAK,IAAI,MAAM;IAef,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,cAAc;CAKzB"}
|
|
@@ -1,10 +1,35 @@
|
|
|
1
1
|
export class RequestCache {
|
|
2
|
-
cache = new Map();
|
|
3
|
-
ttl;
|
|
4
|
-
staleWhileRevalidate;
|
|
5
|
-
keyGenerator;
|
|
6
|
-
stats = { hits: 0, misses: 0 };
|
|
7
2
|
constructor(config = {}) {
|
|
3
|
+
Object.defineProperty(this, "cache", {
|
|
4
|
+
enumerable: true,
|
|
5
|
+
configurable: true,
|
|
6
|
+
writable: true,
|
|
7
|
+
value: new Map()
|
|
8
|
+
});
|
|
9
|
+
Object.defineProperty(this, "ttl", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true,
|
|
13
|
+
value: void 0
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(this, "staleWhileRevalidate", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: void 0
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(this, "keyGenerator", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
configurable: true,
|
|
24
|
+
writable: true,
|
|
25
|
+
value: void 0
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(this, "stats", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
configurable: true,
|
|
30
|
+
writable: true,
|
|
31
|
+
value: { hits: 0, misses: 0 }
|
|
32
|
+
});
|
|
8
33
|
this.ttl = config.ttl ?? 5 * 60 * 1000; // 5 minutes default
|
|
9
34
|
this.staleWhileRevalidate = config.staleWhileRevalidate ?? 60 * 1000; // 1 minute
|
|
10
35
|
this.keyGenerator = config.keyGenerator ?? this.defaultKeyGenerator;
|
|
@@ -21,7 +46,6 @@ export class RequestCache {
|
|
|
21
46
|
}
|
|
22
47
|
const now = Date.now();
|
|
23
48
|
const age = now - entry.timestamp;
|
|
24
|
-
const isExpired = age > entry.ttl;
|
|
25
49
|
const isBeyondStaleWindow = age > entry.ttl + this.staleWhileRevalidate;
|
|
26
50
|
// If beyond stale window, remove and return null
|
|
27
51
|
if (isBeyondStaleWindow) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestCache.js","sourceRoot":"","sources":["../../../src/utils/core/RequestCache.ts"],"names":[],"mappings":"AAoBA,MAAM,OAAO,YAAY;
|
|
1
|
+
{"version":3,"file":"RequestCache.js","sourceRoot":"","sources":["../../../src/utils/core/RequestCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,25 @@
|
|
|
3
3
|
* Multiple consumers of the same request share the same response
|
|
4
4
|
*/
|
|
5
5
|
export class RequestDeduplicator {
|
|
6
|
-
inFlightRequests = new Map();
|
|
7
|
-
keyGenerator;
|
|
8
|
-
stats = { deduplicated: 0, total: 0 };
|
|
9
6
|
constructor(config = {}) {
|
|
7
|
+
Object.defineProperty(this, "inFlightRequests", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
configurable: true,
|
|
10
|
+
writable: true,
|
|
11
|
+
value: new Map()
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(this, "keyGenerator", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
configurable: true,
|
|
16
|
+
writable: true,
|
|
17
|
+
value: void 0
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(this, "stats", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
configurable: true,
|
|
22
|
+
writable: true,
|
|
23
|
+
value: { deduplicated: 0, total: 0 }
|
|
24
|
+
});
|
|
10
25
|
this.keyGenerator = config.keyGenerator ?? this.defaultKeyGenerator;
|
|
11
26
|
}
|
|
12
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestDeduplicator.js","sourceRoot":"","sources":["../../../src/utils/core/RequestDeduplicator.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,MAAM,OAAO,mBAAmB;
|
|
1
|
+
{"version":3,"file":"RequestDeduplicator.js","sourceRoot":"","sources":["../../../src/utils/core/RequestDeduplicator.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,MAAM,CAAC,QAAQ,CACX,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,gBAAgB,EACxB,IAAI,SAAS,GACd,eAAe,EAAE;
|
|
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,MAAM,CAAC,QAAQ,CACX,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,gBAAgB,EACxB,IAAI,SAAS,GACd,eAAe,EAAE;IA4DpB,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"}
|
|
@@ -40,6 +40,9 @@ export class ResponseValidator {
|
|
|
40
40
|
else if (schema.type === "number" && typeof data === "number") {
|
|
41
41
|
errors.push(...this.validateNumber(data, schema, path));
|
|
42
42
|
}
|
|
43
|
+
else if (schema.type === "boolean" && typeof data === "boolean") {
|
|
44
|
+
errors.push(...this.validateBoolean(data, schema, path));
|
|
45
|
+
}
|
|
43
46
|
// Custom validation
|
|
44
47
|
if (schema.custom) {
|
|
45
48
|
const result = schema.custom(data);
|
|
@@ -136,5 +139,16 @@ export class ResponseValidator {
|
|
|
136
139
|
}
|
|
137
140
|
return errors;
|
|
138
141
|
}
|
|
142
|
+
static validateBoolean(value, schema, path) {
|
|
143
|
+
const errors = [];
|
|
144
|
+
if (schema.enum && !schema.enum.includes(value)) {
|
|
145
|
+
errors.push({
|
|
146
|
+
path,
|
|
147
|
+
message: `Value must be one of: ${schema.enum.join(", ")}`,
|
|
148
|
+
value,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
return errors;
|
|
152
|
+
}
|
|
139
153
|
}
|
|
140
154
|
//# sourceMappingURL=ResponseValidator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponseValidator.js","sourceRoot":"","sources":["../../../src/utils/core/ResponseValidator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ResponseValidator.js","sourceRoot":"","sources":["../../../src/utils/core/ResponseValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;CACtB;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;gBAEvB,MAAM,GAAE,oBAAyB;IAMvC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAqBlD,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;IAqBlD,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,gBAAgB;
|
|
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;CACtB;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;gBAEvB,MAAM,GAAE,oBAAyB;IAMvC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAqBlD,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;IAqBlD,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,gBAAgB;CAe3B"}
|
|
@@ -1,12 +1,47 @@
|
|
|
1
1
|
export class CircuitBreaker {
|
|
2
|
-
state = "closed";
|
|
3
|
-
failureCount = 0;
|
|
4
|
-
successCount = 0;
|
|
5
|
-
lastFailureTime;
|
|
6
|
-
failureThreshold;
|
|
7
|
-
successThreshold;
|
|
8
|
-
timeoutMs;
|
|
9
2
|
constructor(config = {}) {
|
|
3
|
+
Object.defineProperty(this, "state", {
|
|
4
|
+
enumerable: true,
|
|
5
|
+
configurable: true,
|
|
6
|
+
writable: true,
|
|
7
|
+
value: "closed"
|
|
8
|
+
});
|
|
9
|
+
Object.defineProperty(this, "failureCount", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true,
|
|
13
|
+
value: 0
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(this, "successCount", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: 0
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(this, "lastFailureTime", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
configurable: true,
|
|
24
|
+
writable: true,
|
|
25
|
+
value: void 0
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(this, "failureThreshold", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
configurable: true,
|
|
30
|
+
writable: true,
|
|
31
|
+
value: void 0
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(this, "successThreshold", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true,
|
|
37
|
+
value: void 0
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(this, "timeoutMs", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
configurable: true,
|
|
42
|
+
writable: true,
|
|
43
|
+
value: void 0
|
|
44
|
+
});
|
|
10
45
|
this.failureThreshold = config.failureThreshold ?? 5;
|
|
11
46
|
this.successThreshold = config.successThreshold ?? 2;
|
|
12
47
|
this.timeoutMs = config.timeoutMs ?? 60000;
|
|
@@ -69,12 +104,37 @@ export class CircuitBreaker {
|
|
|
69
104
|
}
|
|
70
105
|
}
|
|
71
106
|
export class RetryPolicy {
|
|
72
|
-
maxAttempts;
|
|
73
|
-
initialDelayMs;
|
|
74
|
-
maxDelayMs;
|
|
75
|
-
backoffMultiplier;
|
|
76
|
-
shouldRetry;
|
|
77
107
|
constructor(config = {}) {
|
|
108
|
+
Object.defineProperty(this, "maxAttempts", {
|
|
109
|
+
enumerable: true,
|
|
110
|
+
configurable: true,
|
|
111
|
+
writable: true,
|
|
112
|
+
value: void 0
|
|
113
|
+
});
|
|
114
|
+
Object.defineProperty(this, "initialDelayMs", {
|
|
115
|
+
enumerable: true,
|
|
116
|
+
configurable: true,
|
|
117
|
+
writable: true,
|
|
118
|
+
value: void 0
|
|
119
|
+
});
|
|
120
|
+
Object.defineProperty(this, "maxDelayMs", {
|
|
121
|
+
enumerable: true,
|
|
122
|
+
configurable: true,
|
|
123
|
+
writable: true,
|
|
124
|
+
value: void 0
|
|
125
|
+
});
|
|
126
|
+
Object.defineProperty(this, "backoffMultiplier", {
|
|
127
|
+
enumerable: true,
|
|
128
|
+
configurable: true,
|
|
129
|
+
writable: true,
|
|
130
|
+
value: void 0
|
|
131
|
+
});
|
|
132
|
+
Object.defineProperty(this, "shouldRetry", {
|
|
133
|
+
enumerable: true,
|
|
134
|
+
configurable: true,
|
|
135
|
+
writable: true,
|
|
136
|
+
value: void 0
|
|
137
|
+
});
|
|
78
138
|
this.maxAttempts = config.maxAttempts ?? 3;
|
|
79
139
|
this.initialDelayMs = config.initialDelayMs ?? 100;
|
|
80
140
|
this.maxDelayMs = config.maxDelayMs ?? 10000;
|
|
@@ -108,7 +168,11 @@ export class RetryPolicy {
|
|
|
108
168
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
109
169
|
}
|
|
110
170
|
isRetryableError(error) {
|
|
111
|
-
|
|
171
|
+
const status = error.status;
|
|
172
|
+
if (typeof status === "number") {
|
|
173
|
+
return status === 408 || status === 429 || status >= 500;
|
|
174
|
+
}
|
|
175
|
+
// Retry on network errors and timeouts
|
|
112
176
|
const message = error.message.toLowerCase();
|
|
113
177
|
return (message.includes("timeout") ||
|
|
114
178
|
message.includes("network") ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RetryPolicy.js","sourceRoot":"","sources":["../../../src/utils/core/RetryPolicy.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,cAAc;
|
|
1
|
+
{"version":3,"file":"RetryPolicy.js","sourceRoot":"","sources":["../../../src/utils/core/RetryPolicy.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,7 +58,7 @@ export declare class CacheManager<T = unknown> {
|
|
|
58
58
|
/**
|
|
59
59
|
* Invalidate keys matching pattern
|
|
60
60
|
*/
|
|
61
|
-
|
|
61
|
+
clearPattern(_pattern: string): Promise<void>;
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
64
|
* Factory function for creating cache managers
|
|
@@ -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;
|
|
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"}
|