@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.
@@ -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 = any>(url: string, data?: any, config?: AxiosRequestConfig): Promise<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 = any>(url: string, data?: any, config?: AxiosRequestConfig): Promise<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 = any>(url: string, data?: any, config?: AxiosRequestConfig): Promise<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 = any>(url: string, config?: AxiosRequestConfig): Promise<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 = any>(config: AxiosRequestConfig): Promise<T>;
159
+ request<T>(config: AxiosRequestConfig): Promise<IApiResponse<T>>;
160
160
  /**
161
161
  * 获取时间同步服务实例
162
162
  *
@@ -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;AAC9C,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;IAmC1C;;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,CAAC,CAAC;IAK/E;;;;;;;;;;;;OAYG;IACU,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAK5F;;;;;;;;;;;;OAYG;IACU,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAK3F;;;;;;;;;;;;OAYG;IACU,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAK7F;;;;;;;;;;;OAWG;IACU,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKlF;;;;;;;;;;;;;;;OAeG;IACU,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKrE;;;;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"}
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 && encryptionService) {
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 || undefined);
645
+ this.encryptionService = new EncryptionService(encryption, this.timeSyncService);
667
646
  }
668
647
  // 设置拦截器
669
- setRequestInterceptor(this.instance, options, this.timeSyncService || undefined, this.encryptionService || undefined);
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
- TimeSyncService as ITimeSyncService,
88
- /** 加密服务接口 */
89
- EncryptionService as IEncryptionService, } from './types';
66
+ /** 标准化 API 响应结构(带泛型 data) */
67
+ IApiResponse, } from './types';
90
68
  /**
91
69
  * 默认导出 beLinkHttp 单例
92
70
  */
@@ -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;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAMjE;;;GAGG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;GAGG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAMjE,YAAY;AACV,aAAa;AACb,cAAc;AACd,aAAa;AACb,cAAc;AACd,WAAW;AACX,gBAAgB;AAChB,eAAe;AACf,WAAW;AACX,eAAe;AACf,eAAe,IAAI,gBAAgB;AACnC,aAAa;AACb,iBAAiB,IAAI,kBAAkB,GACxC,MAAM,SAAS,CAAC;AAMjB;;GAEG;AACH,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC"}
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 && encryptionService) {
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 || undefined);
641
+ this.encryptionService = new EncryptionService(encryption, this.timeSyncService);
663
642
  }
664
643
  // 设置拦截器
665
- setRequestInterceptor(this.instance, options, this.timeSyncService || undefined, this.encryptionService || undefined);
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, EncryptionService, TimeSyncService, beLinkHttp, beLinkHttp as default, setRequestInterceptor, setResponseInterceptor };
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,EACjC,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,IAAI,CAmDN"}
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,EAAe,cAAc,EAAE,MAAM,UAAU,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAyC7F"}
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;IAQvE;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAmB9D;;;;;;;;;;;;;;OAcG;IACI,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAejF;;;;;;;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"}
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, AxiosRequestConfig } from 'axios';
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 } 格式,data 为服务器时间戳(毫秒)
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: AxiosRequestConfig) => AxiosRequestConfig | Promise<AxiosRequestConfig>;
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
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@be-link/http",
3
- "version": "1.0.1-beta.0",
3
+ "version": "1.0.1-beta.2",
4
4
  "description": "共比邻 HTTP 请求库,提供简洁的 HTTP 请求封装,支持时间同步和 Token 加密",
5
5
  "homepage": "https://github.com/snowmountain-top/be-link#readme",
6
6
  "author": "zhuifeng <yangyiboys@163.com>",