@oxyhq/services 5.13.25 → 5.13.26
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/lib/commonjs/core/HttpService.js +481 -0
- package/lib/commonjs/core/HttpService.js.map +1 -0
- package/lib/commonjs/core/OxyServices.base.js +29 -26
- package/lib/commonjs/core/OxyServices.base.js.map +1 -1
- package/lib/commonjs/core/OxyServices.js +1 -2
- package/lib/commonjs/core/OxyServices.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.assets.js +3 -2
- package/lib/commonjs/core/mixins/OxyServices.assets.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.user.js +9 -5
- package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.utility.js +1 -0
- package/lib/commonjs/core/mixins/OxyServices.utility.js.map +1 -1
- package/lib/commonjs/utils/errorUtils.js +35 -15
- package/lib/commonjs/utils/errorUtils.js.map +1 -1
- package/lib/module/core/HttpService.js +476 -0
- package/lib/module/core/HttpService.js.map +1 -0
- package/lib/module/core/OxyServices.base.js +29 -26
- package/lib/module/core/OxyServices.base.js.map +1 -1
- package/lib/module/core/OxyServices.js +1 -2
- package/lib/module/core/OxyServices.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.assets.js +3 -2
- package/lib/module/core/mixins/OxyServices.assets.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.user.js +9 -5
- package/lib/module/core/mixins/OxyServices.user.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.utility.js +1 -0
- package/lib/module/core/mixins/OxyServices.utility.js.map +1 -1
- package/lib/module/utils/errorUtils.js +36 -15
- package/lib/module/utils/errorUtils.js.map +1 -1
- package/lib/typescript/core/HttpService.d.ts +111 -0
- package/lib/typescript/core/HttpService.d.ts.map +1 -0
- package/lib/typescript/core/OxyServices.base.d.ts +6 -8
- package/lib/typescript/core/OxyServices.base.d.ts.map +1 -1
- package/lib/typescript/core/OxyServices.d.ts +1 -2
- package/lib/typescript/core/OxyServices.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.analytics.d.ts +4 -5
- package/lib/typescript/core/mixins/OxyServices.analytics.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.assets.d.ts +4 -5
- package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.auth.d.ts +4 -5
- package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.developer.d.ts +4 -5
- package/lib/typescript/core/mixins/OxyServices.developer.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.devices.d.ts +4 -5
- package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.karma.d.ts +4 -5
- package/lib/typescript/core/mixins/OxyServices.karma.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.language.d.ts +4 -5
- package/lib/typescript/core/mixins/OxyServices.language.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.location.d.ts +4 -5
- package/lib/typescript/core/mixins/OxyServices.location.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.payment.d.ts +4 -5
- package/lib/typescript/core/mixins/OxyServices.payment.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.privacy.d.ts +4 -5
- package/lib/typescript/core/mixins/OxyServices.privacy.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.totp.d.ts +4 -5
- package/lib/typescript/core/mixins/OxyServices.totp.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.user.d.ts +4 -5
- package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.utility.d.ts +4 -5
- package/lib/typescript/core/mixins/OxyServices.utility.d.ts.map +1 -1
- package/lib/typescript/core/mixins/index.d.ts +52 -65
- package/lib/typescript/core/mixins/index.d.ts.map +1 -1
- package/lib/typescript/utils/errorUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/HttpService.ts +523 -0
- package/src/core/OxyServices.base.ts +36 -34
- package/src/core/OxyServices.ts +1 -2
- package/src/core/mixins/OxyServices.assets.ts +2 -1
- package/src/core/mixins/OxyServices.user.ts +7 -6
- package/src/core/mixins/OxyServices.utility.ts +1 -0
- package/src/utils/errorUtils.ts +65 -19
- package/lib/commonjs/core/HttpClient.js +0 -317
- package/lib/commonjs/core/HttpClient.js.map +0 -1
- package/lib/commonjs/core/RequestManager.js +0 -170
- package/lib/commonjs/core/RequestManager.js.map +0 -1
- package/lib/module/core/HttpClient.js +0 -311
- package/lib/module/core/HttpClient.js.map +0 -1
- package/lib/module/core/RequestManager.js +0 -165
- package/lib/module/core/RequestManager.js.map +0 -1
- package/lib/typescript/core/HttpClient.d.ts +0 -110
- package/lib/typescript/core/HttpClient.d.ts.map +0 -1
- package/lib/typescript/core/RequestManager.d.ts +0 -63
- package/lib/typescript/core/RequestManager.d.ts.map +0 -1
- package/src/core/HttpClient.ts +0 -346
- package/src/core/RequestManager.ts +0 -205
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_axios","_interopRequireDefault","require","_jwtDecode","_errorUtils","_requestUtils","e","__esModule","default","TokenStore","accessToken","refreshToken","constructor","getInstance","instance","setTokens","getAccessToken","getRefreshToken","clearTokens","hasAccessToken","HttpClient","config","baseURL","tokenStore","logger","SimpleLogger","enableLogging","logLevel","timeout","requestTimeout","client","axios","create","headers","process","env","window","httpAgent","Agent","keepAlive","keepAliveMsecs","maxSockets","httpsAgent","setupInterceptors","interceptors","request","use","req","decoded","jwtDecode","currentTime","Math","floor","Date","now","exp","sessionId","refreshClient","defaults","res","get","data","Authorization","debug","refreshError","warn","error","Promise","reject","response","status","getAxiosInstance","method","url","params","signal","responseData","Array","isArray","handleHttpError","post","put","patch","delete","getBaseURL","__resetTokensForTests","exports"],"sourceRoot":"../../../src","sources":["core/HttpClient.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.RequestManager = void 0;
|
|
7
|
-
var _cache = require("../utils/cache");
|
|
8
|
-
var _requestUtils = require("../utils/requestUtils");
|
|
9
|
-
var _asyncUtils = require("../utils/asyncUtils");
|
|
10
|
-
/**
|
|
11
|
-
* Request Manager
|
|
12
|
-
*
|
|
13
|
-
* Handles request-level optimizations: caching, deduplication, queuing, and retry.
|
|
14
|
-
* Works on top of HttpClient to add performance features.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Request Manager
|
|
19
|
-
*
|
|
20
|
-
* Manages request-level optimizations while delegating actual HTTP calls to HttpClient.
|
|
21
|
-
*/
|
|
22
|
-
class RequestManager {
|
|
23
|
-
// Performance monitoring
|
|
24
|
-
requestMetrics = {
|
|
25
|
-
totalRequests: 0,
|
|
26
|
-
successfulRequests: 0,
|
|
27
|
-
failedRequests: 0,
|
|
28
|
-
cacheHits: 0,
|
|
29
|
-
cacheMisses: 0,
|
|
30
|
-
averageResponseTime: 0
|
|
31
|
-
};
|
|
32
|
-
constructor(httpClient, config) {
|
|
33
|
-
this.httpClient = httpClient;
|
|
34
|
-
this.config = config;
|
|
35
|
-
|
|
36
|
-
// Initialize performance infrastructure
|
|
37
|
-
this.cache = new _cache.TTLCache(config.cacheTTL || 5 * 60 * 1000);
|
|
38
|
-
(0, _cache.registerCacheForCleanup)(this.cache);
|
|
39
|
-
this.deduplicator = new _requestUtils.RequestDeduplicator();
|
|
40
|
-
this.requestQueue = new _requestUtils.RequestQueue(config.maxConcurrentRequests || 10, config.requestQueueSize || 100);
|
|
41
|
-
this.logger = new _requestUtils.SimpleLogger(config.enableLogging || false, config.logLevel || 'error', 'RequestManager');
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Make a request with all performance optimizations
|
|
46
|
-
*/
|
|
47
|
-
async request(method, url, data, options = {}) {
|
|
48
|
-
const {
|
|
49
|
-
cache = method === 'GET',
|
|
50
|
-
// Cache GET requests by default
|
|
51
|
-
cacheTTL,
|
|
52
|
-
deduplicate = true,
|
|
53
|
-
retry = this.config.enableRetry !== false,
|
|
54
|
-
maxRetries = this.config.maxRetries || 3,
|
|
55
|
-
timeout,
|
|
56
|
-
signal
|
|
57
|
-
} = options;
|
|
58
|
-
|
|
59
|
-
// Generate cache key
|
|
60
|
-
const cacheKey = cache ? `${method}:${url}:${JSON.stringify(data || {})}` : null;
|
|
61
|
-
|
|
62
|
-
// Check cache first
|
|
63
|
-
if (cache && cacheKey) {
|
|
64
|
-
const cached = this.cache.get(cacheKey);
|
|
65
|
-
if (cached !== null) {
|
|
66
|
-
this.requestMetrics.cacheHits++;
|
|
67
|
-
this.logger.debug('Cache hit:', url);
|
|
68
|
-
return cached;
|
|
69
|
-
}
|
|
70
|
-
this.requestMetrics.cacheMisses++;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// Request function that uses HttpClient
|
|
74
|
-
const requestFn = async () => {
|
|
75
|
-
const startTime = Date.now();
|
|
76
|
-
try {
|
|
77
|
-
const result = await this.httpClient.request({
|
|
78
|
-
method,
|
|
79
|
-
url,
|
|
80
|
-
data: method !== 'GET' ? data : undefined,
|
|
81
|
-
params: method === 'GET' ? data : undefined,
|
|
82
|
-
timeout: timeout || this.config.requestTimeout || 5000,
|
|
83
|
-
signal
|
|
84
|
-
});
|
|
85
|
-
const duration = Date.now() - startTime;
|
|
86
|
-
this.updateMetrics(true, duration);
|
|
87
|
-
this.config.onRequestEnd?.(url, method, duration, true);
|
|
88
|
-
return result;
|
|
89
|
-
} catch (error) {
|
|
90
|
-
const duration = Date.now() - startTime;
|
|
91
|
-
this.updateMetrics(false, duration);
|
|
92
|
-
this.config.onRequestEnd?.(url, method, duration, false);
|
|
93
|
-
this.config.onRequestError?.(url, method, error);
|
|
94
|
-
throw error;
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
// Wrap with retry if enabled
|
|
99
|
-
const requestWithRetry = retry ? () => (0, _asyncUtils.retryAsync)(requestFn, maxRetries, this.config.retryDelay || 1000) : requestFn;
|
|
100
|
-
|
|
101
|
-
// Wrap with deduplication if enabled
|
|
102
|
-
const dedupeKey = deduplicate ? `${method}:${url}:${JSON.stringify(data || {})}` : null;
|
|
103
|
-
const finalRequest = dedupeKey ? () => this.deduplicator.deduplicate(dedupeKey, requestWithRetry) : requestWithRetry;
|
|
104
|
-
|
|
105
|
-
// Execute request (with queue if needed)
|
|
106
|
-
const result = await this.requestQueue.enqueue(finalRequest);
|
|
107
|
-
|
|
108
|
-
// Cache the result if caching is enabled
|
|
109
|
-
if (cache && cacheKey && result) {
|
|
110
|
-
this.cache.set(cacheKey, result, cacheTTL);
|
|
111
|
-
}
|
|
112
|
-
return result;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Update request metrics
|
|
117
|
-
*/
|
|
118
|
-
updateMetrics(success, duration) {
|
|
119
|
-
this.requestMetrics.totalRequests++;
|
|
120
|
-
if (success) {
|
|
121
|
-
this.requestMetrics.successfulRequests++;
|
|
122
|
-
} else {
|
|
123
|
-
this.requestMetrics.failedRequests++;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
// Update average response time (exponential moving average)
|
|
127
|
-
const alpha = 0.1; // Smoothing factor
|
|
128
|
-
this.requestMetrics.averageResponseTime = this.requestMetrics.averageResponseTime * (1 - alpha) + duration * alpha;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Get performance metrics
|
|
133
|
-
*/
|
|
134
|
-
getMetrics() {
|
|
135
|
-
return {
|
|
136
|
-
...this.requestMetrics
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Clear request cache
|
|
142
|
-
*/
|
|
143
|
-
clearCache() {
|
|
144
|
-
this.cache.clear();
|
|
145
|
-
this.logger.debug('Cache cleared');
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Clear specific cache entry
|
|
150
|
-
*/
|
|
151
|
-
clearCacheEntry(key) {
|
|
152
|
-
this.cache.delete(key);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Get cache statistics
|
|
157
|
-
*/
|
|
158
|
-
getCacheStats() {
|
|
159
|
-
const cacheStats = this.cache.getStats();
|
|
160
|
-
const total = this.requestMetrics.cacheHits + this.requestMetrics.cacheMisses;
|
|
161
|
-
return {
|
|
162
|
-
size: cacheStats.size,
|
|
163
|
-
hits: this.requestMetrics.cacheHits,
|
|
164
|
-
misses: this.requestMetrics.cacheMisses,
|
|
165
|
-
hitRate: total > 0 ? this.requestMetrics.cacheHits / total : 0
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
exports.RequestManager = RequestManager;
|
|
170
|
-
//# sourceMappingURL=RequestManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_cache","require","_requestUtils","_asyncUtils","RequestManager","requestMetrics","totalRequests","successfulRequests","failedRequests","cacheHits","cacheMisses","averageResponseTime","constructor","httpClient","config","cache","TTLCache","cacheTTL","registerCacheForCleanup","deduplicator","RequestDeduplicator","requestQueue","RequestQueue","maxConcurrentRequests","requestQueueSize","logger","SimpleLogger","enableLogging","logLevel","request","method","url","data","options","deduplicate","retry","enableRetry","maxRetries","timeout","signal","cacheKey","JSON","stringify","cached","get","debug","requestFn","startTime","Date","now","result","undefined","params","requestTimeout","duration","updateMetrics","onRequestEnd","error","onRequestError","requestWithRetry","retryAsync","retryDelay","dedupeKey","finalRequest","enqueue","set","success","alpha","getMetrics","clearCache","clear","clearCacheEntry","key","delete","getCacheStats","cacheStats","getStats","total","size","hits","misses","hitRate","exports"],"sourceRoot":"../../../src","sources":["core/RequestManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,311 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* HTTP Client Service
|
|
5
|
-
*
|
|
6
|
-
* Handles all HTTP communication with authentication, interceptors, and error handling.
|
|
7
|
-
* This is the single source of truth for making authenticated HTTP requests.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import axios from 'axios';
|
|
11
|
-
import { jwtDecode } from 'jwt-decode';
|
|
12
|
-
import { handleHttpError } from '../utils/errorUtils';
|
|
13
|
-
import { SimpleLogger } from '../utils/requestUtils';
|
|
14
|
-
/**
|
|
15
|
-
* Token store for authentication
|
|
16
|
-
*/
|
|
17
|
-
class TokenStore {
|
|
18
|
-
accessToken = null;
|
|
19
|
-
refreshToken = null;
|
|
20
|
-
constructor() {}
|
|
21
|
-
static getInstance() {
|
|
22
|
-
if (!TokenStore.instance) {
|
|
23
|
-
TokenStore.instance = new TokenStore();
|
|
24
|
-
}
|
|
25
|
-
return TokenStore.instance;
|
|
26
|
-
}
|
|
27
|
-
setTokens(accessToken, refreshToken = '') {
|
|
28
|
-
this.accessToken = accessToken;
|
|
29
|
-
this.refreshToken = refreshToken;
|
|
30
|
-
}
|
|
31
|
-
getAccessToken() {
|
|
32
|
-
return this.accessToken;
|
|
33
|
-
}
|
|
34
|
-
getRefreshToken() {
|
|
35
|
-
return this.refreshToken;
|
|
36
|
-
}
|
|
37
|
-
clearTokens() {
|
|
38
|
-
this.accessToken = null;
|
|
39
|
-
this.refreshToken = null;
|
|
40
|
-
}
|
|
41
|
-
hasAccessToken() {
|
|
42
|
-
return !!this.accessToken;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* HTTP Client Service
|
|
48
|
-
*
|
|
49
|
-
* Manages Axios instance with authentication interceptors.
|
|
50
|
-
* All HTTP requests should go through this service to ensure authentication.
|
|
51
|
-
*/
|
|
52
|
-
export class HttpClient {
|
|
53
|
-
constructor(config) {
|
|
54
|
-
this.baseURL = config.baseURL;
|
|
55
|
-
this.tokenStore = TokenStore.getInstance();
|
|
56
|
-
this.logger = new SimpleLogger(config.enableLogging || false, config.logLevel || 'error', 'HttpClient');
|
|
57
|
-
const timeout = config.requestTimeout || 5000;
|
|
58
|
-
|
|
59
|
-
// Create Axios instance with optimized configuration
|
|
60
|
-
this.client = axios.create({
|
|
61
|
-
baseURL: config.baseURL,
|
|
62
|
-
timeout,
|
|
63
|
-
headers: {
|
|
64
|
-
'Accept': 'application/json'
|
|
65
|
-
},
|
|
66
|
-
// Enable HTTP keep-alive for connection reuse (Node.js only)
|
|
67
|
-
...(typeof process !== 'undefined' && process.env && typeof window === 'undefined' && typeof require !== 'undefined' ? {
|
|
68
|
-
httpAgent: new (require('http').Agent)({
|
|
69
|
-
keepAlive: true,
|
|
70
|
-
keepAliveMsecs: 1000,
|
|
71
|
-
maxSockets: 50
|
|
72
|
-
}),
|
|
73
|
-
httpsAgent: new (require('https').Agent)({
|
|
74
|
-
keepAlive: true,
|
|
75
|
-
keepAliveMsecs: 1000,
|
|
76
|
-
maxSockets: 50
|
|
77
|
-
})
|
|
78
|
-
} : {})
|
|
79
|
-
});
|
|
80
|
-
this.setupInterceptors();
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Setup axios interceptors for authentication and error handling
|
|
85
|
-
*/
|
|
86
|
-
setupInterceptors() {
|
|
87
|
-
// Request interceptor: Add authentication header
|
|
88
|
-
this.client.interceptors.request.use(async req => {
|
|
89
|
-
const accessToken = this.tokenStore.getAccessToken();
|
|
90
|
-
if (!accessToken) {
|
|
91
|
-
return req;
|
|
92
|
-
}
|
|
93
|
-
try {
|
|
94
|
-
const decoded = jwtDecode(accessToken);
|
|
95
|
-
const currentTime = Math.floor(Date.now() / 1000);
|
|
96
|
-
|
|
97
|
-
// If token expires in less than 60 seconds, refresh it
|
|
98
|
-
if (decoded.exp && decoded.exp - currentTime < 60) {
|
|
99
|
-
if (decoded.sessionId) {
|
|
100
|
-
try {
|
|
101
|
-
// Create a new axios instance to avoid interceptor recursion
|
|
102
|
-
const refreshClient = axios.create({
|
|
103
|
-
baseURL: this.client.defaults.baseURL,
|
|
104
|
-
timeout: this.client.defaults.timeout
|
|
105
|
-
});
|
|
106
|
-
const res = await refreshClient.get(`/api/session/token/${decoded.sessionId}`);
|
|
107
|
-
this.tokenStore.setTokens(res.data.accessToken);
|
|
108
|
-
req.headers.Authorization = `Bearer ${res.data.accessToken}`;
|
|
109
|
-
this.logger.debug('Token refreshed');
|
|
110
|
-
} catch (refreshError) {
|
|
111
|
-
// If refresh fails, use current token anyway
|
|
112
|
-
req.headers.Authorization = `Bearer ${accessToken}`;
|
|
113
|
-
this.logger.warn('Token refresh failed, using current token');
|
|
114
|
-
}
|
|
115
|
-
} else {
|
|
116
|
-
req.headers.Authorization = `Bearer ${accessToken}`;
|
|
117
|
-
}
|
|
118
|
-
} else {
|
|
119
|
-
req.headers.Authorization = `Bearer ${accessToken}`;
|
|
120
|
-
}
|
|
121
|
-
} catch (error) {
|
|
122
|
-
this.logger.error('Error processing token:', error);
|
|
123
|
-
// Even if there's an error, still try to use the token
|
|
124
|
-
req.headers.Authorization = `Bearer ${accessToken}`;
|
|
125
|
-
}
|
|
126
|
-
return req;
|
|
127
|
-
}, error => {
|
|
128
|
-
this.logger.error('Request interceptor error:', error);
|
|
129
|
-
return Promise.reject(error);
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
// Response interceptor: Handle auth errors
|
|
133
|
-
this.client.interceptors.response.use(response => response, error => {
|
|
134
|
-
if (error.response?.status === 401) {
|
|
135
|
-
this.logger.warn('401 Unauthorized, clearing tokens');
|
|
136
|
-
this.tokenStore.clearTokens();
|
|
137
|
-
}
|
|
138
|
-
return Promise.reject(error);
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Get the underlying Axios instance
|
|
144
|
-
* Use this only when you need direct access to Axios features
|
|
145
|
-
*/
|
|
146
|
-
getAxiosInstance() {
|
|
147
|
-
return this.client;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Make a raw HTTP request (no caching, deduplication, etc.)
|
|
152
|
-
* Use this for requests that need to bypass performance features
|
|
153
|
-
*/
|
|
154
|
-
async request(config) {
|
|
155
|
-
try {
|
|
156
|
-
const response = await this.client.request({
|
|
157
|
-
method: config.method,
|
|
158
|
-
url: config.url,
|
|
159
|
-
data: config.data,
|
|
160
|
-
params: config.params,
|
|
161
|
-
timeout: config.timeout,
|
|
162
|
-
signal: config.signal
|
|
163
|
-
});
|
|
164
|
-
|
|
165
|
-
// Unwrap standardized API response format: { data: ... }
|
|
166
|
-
// This handles responses from sendSuccess() and sendPaginated() helpers
|
|
167
|
-
const responseData = response.data;
|
|
168
|
-
|
|
169
|
-
// Handle paginated responses: { data: [...], pagination: {...} }
|
|
170
|
-
// Return the data array directly - the calling method will wrap it appropriately
|
|
171
|
-
if (responseData && typeof responseData === 'object' && 'data' in responseData && 'pagination' in responseData) {
|
|
172
|
-
// For paginated responses, return the data array directly
|
|
173
|
-
// The calling methods like getUserFollowers/getUserFollowing will handle wrapping
|
|
174
|
-
// We return the whole response so methods can access both data and pagination
|
|
175
|
-
return responseData;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
// Handle regular success responses: { data: ... }
|
|
179
|
-
if (responseData && typeof responseData === 'object' && 'data' in responseData && !Array.isArray(responseData)) {
|
|
180
|
-
return responseData.data;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
// Return as-is for responses that don't use sendSuccess wrapper
|
|
184
|
-
return responseData;
|
|
185
|
-
} catch (error) {
|
|
186
|
-
throw handleHttpError(error);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* GET request convenience method
|
|
192
|
-
*/
|
|
193
|
-
async get(url, config) {
|
|
194
|
-
const response = await this.request({
|
|
195
|
-
method: 'GET',
|
|
196
|
-
url,
|
|
197
|
-
params: config?.params,
|
|
198
|
-
timeout: config?.timeout,
|
|
199
|
-
signal: config?.signal
|
|
200
|
-
});
|
|
201
|
-
return {
|
|
202
|
-
data: response
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* POST request convenience method
|
|
208
|
-
*/
|
|
209
|
-
async post(url, data, config) {
|
|
210
|
-
const response = await this.request({
|
|
211
|
-
method: 'POST',
|
|
212
|
-
url,
|
|
213
|
-
data,
|
|
214
|
-
timeout: config?.timeout,
|
|
215
|
-
signal: config?.signal
|
|
216
|
-
});
|
|
217
|
-
return {
|
|
218
|
-
data: response
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* PUT request convenience method
|
|
224
|
-
*/
|
|
225
|
-
async put(url, data, config) {
|
|
226
|
-
const response = await this.request({
|
|
227
|
-
method: 'PUT',
|
|
228
|
-
url,
|
|
229
|
-
data,
|
|
230
|
-
timeout: config?.timeout,
|
|
231
|
-
signal: config?.signal
|
|
232
|
-
});
|
|
233
|
-
return {
|
|
234
|
-
data: response
|
|
235
|
-
};
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
/**
|
|
239
|
-
* PATCH request convenience method
|
|
240
|
-
*/
|
|
241
|
-
async patch(url, data, config) {
|
|
242
|
-
const response = await this.request({
|
|
243
|
-
method: 'PATCH',
|
|
244
|
-
url,
|
|
245
|
-
data,
|
|
246
|
-
timeout: config?.timeout,
|
|
247
|
-
signal: config?.signal
|
|
248
|
-
});
|
|
249
|
-
return {
|
|
250
|
-
data: response
|
|
251
|
-
};
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
/**
|
|
255
|
-
* DELETE request convenience method
|
|
256
|
-
*/
|
|
257
|
-
async delete(url, config) {
|
|
258
|
-
const response = await this.request({
|
|
259
|
-
method: 'DELETE',
|
|
260
|
-
url,
|
|
261
|
-
timeout: config?.timeout,
|
|
262
|
-
signal: config?.signal
|
|
263
|
-
});
|
|
264
|
-
return {
|
|
265
|
-
data: response
|
|
266
|
-
};
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
* Get base URL
|
|
271
|
-
*/
|
|
272
|
-
getBaseURL() {
|
|
273
|
-
return this.baseURL;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
/**
|
|
277
|
-
* Set authentication tokens
|
|
278
|
-
*/
|
|
279
|
-
setTokens(accessToken, refreshToken = '') {
|
|
280
|
-
this.tokenStore.setTokens(accessToken, refreshToken);
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
/**
|
|
284
|
-
* Clear authentication tokens
|
|
285
|
-
*/
|
|
286
|
-
clearTokens() {
|
|
287
|
-
this.tokenStore.clearTokens();
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
/**
|
|
291
|
-
* Get access token
|
|
292
|
-
*/
|
|
293
|
-
getAccessToken() {
|
|
294
|
-
return this.tokenStore.getAccessToken();
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
/**
|
|
298
|
-
* Check if has access token
|
|
299
|
-
*/
|
|
300
|
-
hasAccessToken() {
|
|
301
|
-
return this.tokenStore.hasAccessToken();
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
// Test-only utility to reset global tokens between jest tests
|
|
305
|
-
static __resetTokensForTests() {
|
|
306
|
-
try {
|
|
307
|
-
TokenStore.getInstance().clearTokens();
|
|
308
|
-
} catch {}
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
//# sourceMappingURL=HttpClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["axios","jwtDecode","handleHttpError","SimpleLogger","TokenStore","accessToken","refreshToken","constructor","getInstance","instance","setTokens","getAccessToken","getRefreshToken","clearTokens","hasAccessToken","HttpClient","config","baseURL","tokenStore","logger","enableLogging","logLevel","timeout","requestTimeout","client","create","headers","process","env","window","require","httpAgent","Agent","keepAlive","keepAliveMsecs","maxSockets","httpsAgent","setupInterceptors","interceptors","request","use","req","decoded","currentTime","Math","floor","Date","now","exp","sessionId","refreshClient","defaults","res","get","data","Authorization","debug","refreshError","warn","error","Promise","reject","response","status","getAxiosInstance","method","url","params","signal","responseData","Array","isArray","post","put","patch","delete","getBaseURL","__resetTokensForTests"],"sourceRoot":"../../../src","sources":["core/HttpClient.ts"],"mappings":"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","ignoreList":[]}
|