@be-link/http 1.0.1-beta.0 → 1.0.1-beta.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/dist/BeLinkHttp.d.ts +7 -7
- package/dist/BeLinkHttp.d.ts.map +1 -1
- package/dist/index.cjs.js +7 -32
- package/dist/index.d.ts +2 -24
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +8 -29
- package/dist/interceptors/request.d.ts +1 -1
- package/dist/interceptors/request.d.ts.map +1 -1
- package/dist/interceptors/response.d.ts.map +1 -1
- package/dist/services/EncryptionService.d.ts +2 -12
- package/dist/services/EncryptionService.d.ts.map +1 -1
- package/dist/types.d.ts +20 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/BeLinkHttp.d.ts
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* ```
|
|
24
24
|
*/
|
|
25
25
|
import { AxiosInstance, AxiosRequestConfig } from 'axios';
|
|
26
|
-
import type { RequestOptions } from './types';
|
|
26
|
+
import type { IApiResponse, RequestOptions } from './types';
|
|
27
27
|
import { TimeSyncService, EncryptionService } from './services';
|
|
28
28
|
/**
|
|
29
29
|
* BeLinkHttp 单例类
|
|
@@ -84,7 +84,7 @@ declare class BeLinkHttp {
|
|
|
84
84
|
* const user = await beLinkHttp.get('/api/users/1', { params: { include: 'profile' } });
|
|
85
85
|
* ```
|
|
86
86
|
*/
|
|
87
|
-
get<T = any>(url: string, config?: AxiosRequestConfig): Promise<T
|
|
87
|
+
get<T = any>(url: string, config?: AxiosRequestConfig): Promise<IApiResponse<T>>;
|
|
88
88
|
/**
|
|
89
89
|
* POST 请求
|
|
90
90
|
*
|
|
@@ -98,7 +98,7 @@ declare class BeLinkHttp {
|
|
|
98
98
|
* const result = await beLinkHttp.post('/api/users', { name: '张三', age: 25 });
|
|
99
99
|
* ```
|
|
100
100
|
*/
|
|
101
|
-
post<T
|
|
101
|
+
post<T>(url: string, data?: T, config?: AxiosRequestConfig): Promise<IApiResponse<T>>;
|
|
102
102
|
/**
|
|
103
103
|
* PUT 请求
|
|
104
104
|
*
|
|
@@ -112,7 +112,7 @@ declare class BeLinkHttp {
|
|
|
112
112
|
* const result = await beLinkHttp.put('/api/users/1', { name: '李四' });
|
|
113
113
|
* ```
|
|
114
114
|
*/
|
|
115
|
-
put<T
|
|
115
|
+
put<T>(url: string, data?: T, config?: AxiosRequestConfig): Promise<IApiResponse<T>>;
|
|
116
116
|
/**
|
|
117
117
|
* PATCH 请求
|
|
118
118
|
*
|
|
@@ -126,7 +126,7 @@ declare class BeLinkHttp {
|
|
|
126
126
|
* const result = await beLinkHttp.patch('/api/users/1', { age: 26 });
|
|
127
127
|
* ```
|
|
128
128
|
*/
|
|
129
|
-
patch<T
|
|
129
|
+
patch<T>(url: string, data?: T, config?: AxiosRequestConfig): Promise<IApiResponse<T>>;
|
|
130
130
|
/**
|
|
131
131
|
* DELETE 请求
|
|
132
132
|
*
|
|
@@ -139,7 +139,7 @@ declare class BeLinkHttp {
|
|
|
139
139
|
* await beLinkHttp.delete('/api/users/1');
|
|
140
140
|
* ```
|
|
141
141
|
*/
|
|
142
|
-
delete<T
|
|
142
|
+
delete<T>(url: string, config?: AxiosRequestConfig): Promise<IApiResponse<T>>;
|
|
143
143
|
/**
|
|
144
144
|
* 通用请求方法
|
|
145
145
|
*
|
|
@@ -156,7 +156,7 @@ declare class BeLinkHttp {
|
|
|
156
156
|
* });
|
|
157
157
|
* ```
|
|
158
158
|
*/
|
|
159
|
-
request<T
|
|
159
|
+
request<T>(config: AxiosRequestConfig): Promise<IApiResponse<T>>;
|
|
160
160
|
/**
|
|
161
161
|
* 获取时间同步服务实例
|
|
162
162
|
*
|
package/dist/BeLinkHttp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BeLinkHttp.d.ts","sourceRoot":"","sources":["../src/BeLinkHttp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"BeLinkHttp.d.ts","sourceRoot":"","sources":["../src/BeLinkHttp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGhE;;;;;;;GAOG;AACH,cAAM,UAAU;IACd,eAAe;IACf,OAAO,CAAC,QAAQ,CAA8B;IAE9C,aAAa;IACb,OAAO,CAAC,eAAe,CAAgC;IAEvD,WAAW;IACX,OAAO,CAAC,iBAAiB,CAAkC;IAE3D,aAAa;IACb,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACI,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IA8B1C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;;;;;;;;;;;OAYG;IACU,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAK7F;;;;;;;;;;;;OAYG;IACU,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAKlG;;;;;;;;;;;;OAYG;IACU,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAKjG;;;;;;;;;;;;OAYG;IACU,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAKnG;;;;;;;;;;;OAWG;IACU,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAK1F;;;;;;;;;;;;;;;OAeG;IACU,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAK7E;;;;OAIG;IACI,kBAAkB,IAAI,eAAe,GAAG,IAAI;IAInD;;;;OAIG;IACI,oBAAoB,IAAI,iBAAiB,GAAG,IAAI;IAIvD;;;;OAIG;IACI,gBAAgB,IAAI,aAAa,GAAG,IAAI;IAI/C;;;;OAIG;IACI,KAAK,IAAI,IAAI;CAMrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,UAAU,YAAmB,CAAC;AAE3C;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -296,7 +296,7 @@ class EncryptionService {
|
|
|
296
296
|
enabled: true,
|
|
297
297
|
...config,
|
|
298
298
|
};
|
|
299
|
-
this.timeSyncService = timeSyncService;
|
|
299
|
+
this.timeSyncService = timeSyncService ?? undefined;
|
|
300
300
|
}
|
|
301
301
|
/**
|
|
302
302
|
* 加密 Token
|
|
@@ -338,19 +338,9 @@ class EncryptionService {
|
|
|
338
338
|
}).toString();
|
|
339
339
|
}
|
|
340
340
|
/**
|
|
341
|
-
* 解密 Token
|
|
342
|
-
*
|
|
343
|
-
* 将加密后的 Token 解密,提取原始 Token 和时间戳
|
|
344
|
-
*
|
|
341
|
+
* 解密 Token,将加密后的 Token 解密,提取原始 Token 和时间戳
|
|
345
342
|
* @param encryptedToken - 加密后的 Token 字符串
|
|
346
343
|
* @returns 包含原始 Token 和时间戳的对象
|
|
347
|
-
*
|
|
348
|
-
* @example
|
|
349
|
-
* ```ts
|
|
350
|
-
* const { token, timestamp } = encryption.decryptToken(encryptedToken);
|
|
351
|
-
* console.log(token); // 'my-token'
|
|
352
|
-
* console.log(timestamp); // 1703577600000
|
|
353
|
-
* ```
|
|
354
344
|
*/
|
|
355
345
|
decryptToken(encryptedToken) {
|
|
356
346
|
// 使用 AES-CBC 模式解密
|
|
@@ -360,10 +350,7 @@ class EncryptionService {
|
|
|
360
350
|
}).toString(CryptoJS.enc.Utf8);
|
|
361
351
|
// 分割原始数据,提取 Token 和时间戳
|
|
362
352
|
const parts = decrypted.split('|+|');
|
|
363
|
-
return {
|
|
364
|
-
token: parts[0],
|
|
365
|
-
timestamp: parseInt(parts[1], 10),
|
|
366
|
-
};
|
|
353
|
+
return { token: parts[0], timestamp: parseInt(parts[1], 10) };
|
|
367
354
|
}
|
|
368
355
|
/**
|
|
369
356
|
* 获取调整后的时间戳
|
|
@@ -471,18 +458,10 @@ function setRequestInterceptor(instance, options, timeSyncService, encryptionSer
|
|
|
471
458
|
}
|
|
472
459
|
// 步骤 4: 添加 Token
|
|
473
460
|
// 根据是否配置了加密服务,决定是否对 Token 进行加密
|
|
474
|
-
if (options.getToken
|
|
475
|
-
// 有加密服务:获取 Token 并加密后添加到请求头
|
|
476
|
-
const token = options.getToken();
|
|
477
|
-
if (token) {
|
|
478
|
-
config.headers[tokenHeaderName] = encryptionService.encryptToken(token);
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
else if (options.getToken) {
|
|
482
|
-
// 无加密服务:直接使用原始 Token
|
|
461
|
+
if (options.getToken) {
|
|
483
462
|
const token = options.getToken();
|
|
484
463
|
if (token) {
|
|
485
|
-
config.headers[tokenHeaderName] = token;
|
|
464
|
+
config.headers[tokenHeaderName] = encryptionService ? encryptionService.encryptToken(token) : token;
|
|
486
465
|
}
|
|
487
466
|
}
|
|
488
467
|
// 步骤 5: 调用自定义请求拦截器
|
|
@@ -663,10 +642,10 @@ class BeLinkHttp {
|
|
|
663
642
|
}
|
|
664
643
|
// 创建加密服务
|
|
665
644
|
if (encryption?.key && encryption?.iv) {
|
|
666
|
-
this.encryptionService = new EncryptionService(encryption, this.timeSyncService
|
|
645
|
+
this.encryptionService = new EncryptionService(encryption, this.timeSyncService);
|
|
667
646
|
}
|
|
668
647
|
// 设置拦截器
|
|
669
|
-
setRequestInterceptor(this.instance, options, this.timeSyncService
|
|
648
|
+
setRequestInterceptor(this.instance, options, this.timeSyncService, this.encryptionService);
|
|
670
649
|
setResponseInterceptor(this.instance, options);
|
|
671
650
|
this.initialized = true;
|
|
672
651
|
}
|
|
@@ -837,9 +816,5 @@ class BeLinkHttp {
|
|
|
837
816
|
const beLinkHttp = new BeLinkHttp();
|
|
838
817
|
|
|
839
818
|
exports.BeLinkHttp = BeLinkHttp;
|
|
840
|
-
exports.EncryptionService = EncryptionService;
|
|
841
|
-
exports.TimeSyncService = TimeSyncService;
|
|
842
819
|
exports.beLinkHttp = beLinkHttp;
|
|
843
820
|
exports.default = beLinkHttp;
|
|
844
|
-
exports.setRequestInterceptor = setRequestInterceptor;
|
|
845
|
-
exports.setResponseInterceptor = setResponseInterceptor;
|
package/dist/index.d.ts
CHANGED
|
@@ -54,26 +54,6 @@
|
|
|
54
54
|
* @see {@link BeLinkHttp}
|
|
55
55
|
*/
|
|
56
56
|
export { beLinkHttp, BeLinkHttp } from './BeLinkHttp';
|
|
57
|
-
/**
|
|
58
|
-
* 时间同步服务
|
|
59
|
-
* @see {@link TimeSyncService}
|
|
60
|
-
*/
|
|
61
|
-
export { TimeSyncService } from './services/TimeSyncService';
|
|
62
|
-
/**
|
|
63
|
-
* 加密服务
|
|
64
|
-
* @see {@link EncryptionService}
|
|
65
|
-
*/
|
|
66
|
-
export { EncryptionService } from './services/EncryptionService';
|
|
67
|
-
/**
|
|
68
|
-
* 请求拦截器设置函数
|
|
69
|
-
* @see {@link setRequestInterceptor}
|
|
70
|
-
*/
|
|
71
|
-
export { setRequestInterceptor } from './interceptors/request';
|
|
72
|
-
/**
|
|
73
|
-
* 响应拦截器设置函数
|
|
74
|
-
* @see {@link setResponseInterceptor}
|
|
75
|
-
*/
|
|
76
|
-
export { setResponseInterceptor } from './interceptors/response';
|
|
77
57
|
export type {
|
|
78
58
|
/** 请求配置选项 */
|
|
79
59
|
RequestOptions,
|
|
@@ -83,10 +63,8 @@ TimeSyncConfig,
|
|
|
83
63
|
EncryptionConfig,
|
|
84
64
|
/** API 响应结构 */
|
|
85
65
|
ApiResponse,
|
|
86
|
-
/**
|
|
87
|
-
|
|
88
|
-
/** 加密服务接口 */
|
|
89
|
-
EncryptionService as IEncryptionService, } from './types';
|
|
66
|
+
/** 标准化 API 响应结构(带泛型 data) */
|
|
67
|
+
IApiResponse, } from './types';
|
|
90
68
|
/**
|
|
91
69
|
* 默认导出 beLinkHttp 单例
|
|
92
70
|
*/
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAMH;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAMtD
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAMH;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAMtD,YAAY;AACV,aAAa;AACb,cAAc;AACd,aAAa;AACb,cAAc;AACd,WAAW;AACX,gBAAgB;AAChB,eAAe;AACf,WAAW;AACX,6BAA6B;AAC7B,YAAY,GACb,MAAM,SAAS,CAAC;AAMjB;;GAEG;AACH,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.esm.js
CHANGED
|
@@ -292,7 +292,7 @@ class EncryptionService {
|
|
|
292
292
|
enabled: true,
|
|
293
293
|
...config,
|
|
294
294
|
};
|
|
295
|
-
this.timeSyncService = timeSyncService;
|
|
295
|
+
this.timeSyncService = timeSyncService ?? undefined;
|
|
296
296
|
}
|
|
297
297
|
/**
|
|
298
298
|
* 加密 Token
|
|
@@ -334,19 +334,9 @@ class EncryptionService {
|
|
|
334
334
|
}).toString();
|
|
335
335
|
}
|
|
336
336
|
/**
|
|
337
|
-
* 解密 Token
|
|
338
|
-
*
|
|
339
|
-
* 将加密后的 Token 解密,提取原始 Token 和时间戳
|
|
340
|
-
*
|
|
337
|
+
* 解密 Token,将加密后的 Token 解密,提取原始 Token 和时间戳
|
|
341
338
|
* @param encryptedToken - 加密后的 Token 字符串
|
|
342
339
|
* @returns 包含原始 Token 和时间戳的对象
|
|
343
|
-
*
|
|
344
|
-
* @example
|
|
345
|
-
* ```ts
|
|
346
|
-
* const { token, timestamp } = encryption.decryptToken(encryptedToken);
|
|
347
|
-
* console.log(token); // 'my-token'
|
|
348
|
-
* console.log(timestamp); // 1703577600000
|
|
349
|
-
* ```
|
|
350
340
|
*/
|
|
351
341
|
decryptToken(encryptedToken) {
|
|
352
342
|
// 使用 AES-CBC 模式解密
|
|
@@ -356,10 +346,7 @@ class EncryptionService {
|
|
|
356
346
|
}).toString(CryptoJS.enc.Utf8);
|
|
357
347
|
// 分割原始数据,提取 Token 和时间戳
|
|
358
348
|
const parts = decrypted.split('|+|');
|
|
359
|
-
return {
|
|
360
|
-
token: parts[0],
|
|
361
|
-
timestamp: parseInt(parts[1], 10),
|
|
362
|
-
};
|
|
349
|
+
return { token: parts[0], timestamp: parseInt(parts[1], 10) };
|
|
363
350
|
}
|
|
364
351
|
/**
|
|
365
352
|
* 获取调整后的时间戳
|
|
@@ -467,18 +454,10 @@ function setRequestInterceptor(instance, options, timeSyncService, encryptionSer
|
|
|
467
454
|
}
|
|
468
455
|
// 步骤 4: 添加 Token
|
|
469
456
|
// 根据是否配置了加密服务,决定是否对 Token 进行加密
|
|
470
|
-
if (options.getToken
|
|
471
|
-
// 有加密服务:获取 Token 并加密后添加到请求头
|
|
472
|
-
const token = options.getToken();
|
|
473
|
-
if (token) {
|
|
474
|
-
config.headers[tokenHeaderName] = encryptionService.encryptToken(token);
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
else if (options.getToken) {
|
|
478
|
-
// 无加密服务:直接使用原始 Token
|
|
457
|
+
if (options.getToken) {
|
|
479
458
|
const token = options.getToken();
|
|
480
459
|
if (token) {
|
|
481
|
-
config.headers[tokenHeaderName] = token;
|
|
460
|
+
config.headers[tokenHeaderName] = encryptionService ? encryptionService.encryptToken(token) : token;
|
|
482
461
|
}
|
|
483
462
|
}
|
|
484
463
|
// 步骤 5: 调用自定义请求拦截器
|
|
@@ -659,10 +638,10 @@ class BeLinkHttp {
|
|
|
659
638
|
}
|
|
660
639
|
// 创建加密服务
|
|
661
640
|
if (encryption?.key && encryption?.iv) {
|
|
662
|
-
this.encryptionService = new EncryptionService(encryption, this.timeSyncService
|
|
641
|
+
this.encryptionService = new EncryptionService(encryption, this.timeSyncService);
|
|
663
642
|
}
|
|
664
643
|
// 设置拦截器
|
|
665
|
-
setRequestInterceptor(this.instance, options, this.timeSyncService
|
|
644
|
+
setRequestInterceptor(this.instance, options, this.timeSyncService, this.encryptionService);
|
|
666
645
|
setResponseInterceptor(this.instance, options);
|
|
667
646
|
this.initialized = true;
|
|
668
647
|
}
|
|
@@ -832,4 +811,4 @@ class BeLinkHttp {
|
|
|
832
811
|
*/
|
|
833
812
|
const beLinkHttp = new BeLinkHttp();
|
|
834
813
|
|
|
835
|
-
export { BeLinkHttp,
|
|
814
|
+
export { BeLinkHttp, beLinkHttp, beLinkHttp as default };
|
|
@@ -46,5 +46,5 @@ import { EncryptionService, TimeSyncService } from '../services';
|
|
|
46
46
|
* );
|
|
47
47
|
* ```
|
|
48
48
|
*/
|
|
49
|
-
export declare function setRequestInterceptor(instance: AxiosInstance, options: RequestOptions, timeSyncService?: TimeSyncService, encryptionService?: EncryptionService): void;
|
|
49
|
+
export declare function setRequestInterceptor(instance: AxiosInstance, options: RequestOptions, timeSyncService?: TimeSyncService | null, encryptionService?: EncryptionService | null): void;
|
|
50
50
|
//# sourceMappingURL=request.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/interceptors/request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAA8B,MAAM,OAAO,CAAC;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,cAAc,EACvB,eAAe,CAAC,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/interceptors/request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAA8B,MAAM,OAAO,CAAC;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,cAAc,EACvB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,EACxC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAC3C,IAAI,CA4CN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/interceptors/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,OAAO,CAAC;AAE1D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/interceptors/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,OAAO,CAAC;AAE1D,OAAO,KAAK,EAA6B,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAyC7F"}
|
|
@@ -46,7 +46,7 @@ export declare class EncryptionService implements IEncryptionService {
|
|
|
46
46
|
* @param config - 加密配置
|
|
47
47
|
* @param timeSyncService - 时间同步服务实例(可选),用于获取服务器校正后的时间
|
|
48
48
|
*/
|
|
49
|
-
constructor(config: EncryptionConfig, timeSyncService?: TimeSyncService);
|
|
49
|
+
constructor(config: EncryptionConfig, timeSyncService?: TimeSyncService | null);
|
|
50
50
|
/**
|
|
51
51
|
* 加密 Token
|
|
52
52
|
*
|
|
@@ -73,19 +73,9 @@ export declare class EncryptionService implements IEncryptionService {
|
|
|
73
73
|
*/
|
|
74
74
|
encryptToken(token: string, timestamp?: number): string;
|
|
75
75
|
/**
|
|
76
|
-
* 解密 Token
|
|
77
|
-
*
|
|
78
|
-
* 将加密后的 Token 解密,提取原始 Token 和时间戳
|
|
79
|
-
*
|
|
76
|
+
* 解密 Token,将加密后的 Token 解密,提取原始 Token 和时间戳
|
|
80
77
|
* @param encryptedToken - 加密后的 Token 字符串
|
|
81
78
|
* @returns 包含原始 Token 和时间戳的对象
|
|
82
|
-
*
|
|
83
|
-
* @example
|
|
84
|
-
* ```ts
|
|
85
|
-
* const { token, timestamp } = encryption.decryptToken(encryptedToken);
|
|
86
|
-
* console.log(token); // 'my-token'
|
|
87
|
-
* console.log(timestamp); // 1703577600000
|
|
88
|
-
* ```
|
|
89
79
|
*/
|
|
90
80
|
decryptToken(encryptedToken: string): {
|
|
91
81
|
token: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EncryptionService.d.ts","sourceRoot":"","sources":["../../src/services/EncryptionService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,iBAAkB,YAAW,kBAAkB;IAC1D,WAAW;IACX,OAAO,CAAC,MAAM,CAAmB;IAEjC,mBAAmB;IACnB,OAAO,CAAC,eAAe,CAAC,CAAkB;IAE1C;;;;;OAKG;gBACS,MAAM,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"EncryptionService.d.ts","sourceRoot":"","sources":["../../src/services/EncryptionService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,iBAAkB,YAAW,kBAAkB;IAC1D,WAAW;IACX,OAAO,CAAC,MAAM,CAAmB;IAEjC,mBAAmB;IACnB,OAAO,CAAC,eAAe,CAAC,CAAkB;IAE1C;;;;;OAKG;gBACS,MAAM,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI;IAQ9E;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAmB9D;;;;OAIG;IACI,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAYjF;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAOvB;;;;;;OAMG;IACI,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAI5D;;;;;;OAMG;IACI,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;CAGlE"}
|
package/dist/types.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* 本文件定义了请求库的所有 TypeScript 类型接口
|
|
5
5
|
*/
|
|
6
|
-
import type { AxiosInstance,
|
|
6
|
+
import type { AxiosInstance, InternalAxiosRequestConfig } from 'axios';
|
|
7
7
|
/**
|
|
8
8
|
* 时间同步配置
|
|
9
9
|
*
|
|
@@ -28,7 +28,7 @@ export interface TimeSyncConfig {
|
|
|
28
28
|
enabled?: boolean;
|
|
29
29
|
/**
|
|
30
30
|
* 时间同步接口 URL
|
|
31
|
-
* 该接口应返回 { data: number } 格式,
|
|
31
|
+
* 该接口应返回 { data: { timestamp: number } } 格式,timestamp 为服务器时间戳(毫秒)
|
|
32
32
|
*/
|
|
33
33
|
syncUrl: string;
|
|
34
34
|
/**
|
|
@@ -143,10 +143,10 @@ export interface RequestOptions {
|
|
|
143
143
|
/**
|
|
144
144
|
* 自定义请求拦截器
|
|
145
145
|
* 在请求发出前调用,可以修改请求配置
|
|
146
|
-
* @param config - Axios
|
|
146
|
+
* @param config - Axios 内部请求配置
|
|
147
147
|
* @returns 修改后的请求配置
|
|
148
148
|
*/
|
|
149
|
-
onRequest?: (config:
|
|
149
|
+
onRequest?: (config: InternalAxiosRequestConfig) => InternalAxiosRequestConfig | Promise<InternalAxiosRequestConfig>;
|
|
150
150
|
/**
|
|
151
151
|
* 自定义响应拦截器
|
|
152
152
|
* 在收到响应后调用,可以处理响应数据
|
|
@@ -265,4 +265,20 @@ export interface EncryptionService {
|
|
|
265
265
|
timestamp: number;
|
|
266
266
|
};
|
|
267
267
|
}
|
|
268
|
+
/**
|
|
269
|
+
* API 响应结构
|
|
270
|
+
*
|
|
271
|
+
* 标准的 API 响应格式
|
|
272
|
+
*
|
|
273
|
+
* @template T - 响应数据类型
|
|
274
|
+
*/
|
|
275
|
+
export interface IApiResponse<T> {
|
|
276
|
+
success: boolean;
|
|
277
|
+
message: string;
|
|
278
|
+
data: T;
|
|
279
|
+
/** 请求ID */
|
|
280
|
+
requestId?: string;
|
|
281
|
+
/** 错误类型 */
|
|
282
|
+
errorType?: string;
|
|
283
|
+
}
|
|
268
284
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED