@zym-test-zerog/apiclient 1.0.3 → 1.0.5

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/index.d.ts CHANGED
@@ -135,7 +135,6 @@ declare class SignGenerator {
135
135
  private filterParams;
136
136
  private buildSignString;
137
137
  private hash;
138
- private md5;
139
138
  getSignHeaderName(): string;
140
139
  }
141
140
 
@@ -728,7 +727,8 @@ declare namespace index {
728
727
  declare function init(config?: ApiClientConfig): void;
729
728
  declare function updateConfig(config: Partial<ApiClientConfig>): void;
730
729
  declare function getApiClient(): ApiClient;
730
+ declare function saveToken(token: string): void;
731
731
  declare function destroy(): void;
732
732
 
733
- export { ApiClient, ErrorHandlerManager, SignGenerator, TokenRefreshManager, index$1 as apiV1, index as apiV2, destroy, errorHandlerManager, getApiClient, init, logger, updateConfig };
733
+ export { ApiClient, ErrorHandlerManager, SignGenerator, TokenRefreshManager, index$1 as apiV1, index as apiV2, destroy, errorHandlerManager, getApiClient, init, logger, saveToken, updateConfig };
734
734
  export type { ApiClientConfig, ApiError, ApiResponse, ErrorHandler, LogCallback, LogLevel, PaginationParams, PaginationResponse, RequestLog, ResponseLog, SignConfig, TokenRefreshConfig };
package/dist/index.js CHANGED
@@ -117,6 +117,333 @@ class Logger {
117
117
  }
118
118
  const logger = new Logger();
119
119
 
120
+ function getDefaultExportFromCjs (x) {
121
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
122
+ }
123
+
124
+ var md5$1 = {exports: {}};
125
+
126
+ var crypt = {exports: {}};
127
+
128
+ (function() {
129
+ var base64map
130
+ = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
131
+
132
+ crypt$1 = {
133
+ // Bit-wise rotation left
134
+ rotl: function(n, b) {
135
+ return (n << b) | (n >>> (32 - b));
136
+ },
137
+
138
+ // Bit-wise rotation right
139
+ rotr: function(n, b) {
140
+ return (n << (32 - b)) | (n >>> b);
141
+ },
142
+
143
+ // Swap big-endian to little-endian and vice versa
144
+ endian: function(n) {
145
+ // If number given, swap endian
146
+ if (n.constructor == Number) {
147
+ return crypt$1.rotl(n, 8) & 0x00FF00FF | crypt$1.rotl(n, 24) & 0xFF00FF00;
148
+ }
149
+
150
+ // Else, assume array and swap all items
151
+ for (var i = 0; i < n.length; i++)
152
+ n[i] = crypt$1.endian(n[i]);
153
+ return n;
154
+ },
155
+
156
+ // Generate an array of any length of random bytes
157
+ randomBytes: function(n) {
158
+ for (var bytes = []; n > 0; n--)
159
+ bytes.push(Math.floor(Math.random() * 256));
160
+ return bytes;
161
+ },
162
+
163
+ // Convert a byte array to big-endian 32-bit words
164
+ bytesToWords: function(bytes) {
165
+ for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)
166
+ words[b >>> 5] |= bytes[i] << (24 - b % 32);
167
+ return words;
168
+ },
169
+
170
+ // Convert big-endian 32-bit words to a byte array
171
+ wordsToBytes: function(words) {
172
+ for (var bytes = [], b = 0; b < words.length * 32; b += 8)
173
+ bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);
174
+ return bytes;
175
+ },
176
+
177
+ // Convert a byte array to a hex string
178
+ bytesToHex: function(bytes) {
179
+ for (var hex = [], i = 0; i < bytes.length; i++) {
180
+ hex.push((bytes[i] >>> 4).toString(16));
181
+ hex.push((bytes[i] & 0xF).toString(16));
182
+ }
183
+ return hex.join('');
184
+ },
185
+
186
+ // Convert a hex string to a byte array
187
+ hexToBytes: function(hex) {
188
+ for (var bytes = [], c = 0; c < hex.length; c += 2)
189
+ bytes.push(parseInt(hex.substr(c, 2), 16));
190
+ return bytes;
191
+ },
192
+
193
+ // Convert a byte array to a base-64 string
194
+ bytesToBase64: function(bytes) {
195
+ for (var base64 = [], i = 0; i < bytes.length; i += 3) {
196
+ var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];
197
+ for (var j = 0; j < 4; j++)
198
+ if (i * 8 + j * 6 <= bytes.length * 8)
199
+ base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));
200
+ else
201
+ base64.push('=');
202
+ }
203
+ return base64.join('');
204
+ },
205
+
206
+ // Convert a base-64 string to a byte array
207
+ base64ToBytes: function(base64) {
208
+ // Remove non-base-64 characters
209
+ base64 = base64.replace(/[^A-Z0-9+\/]/ig, '');
210
+
211
+ for (var bytes = [], i = 0, imod4 = 0; i < base64.length;
212
+ imod4 = ++i % 4) {
213
+ if (imod4 == 0) continue;
214
+ bytes.push(((base64map.indexOf(base64.charAt(i - 1))
215
+ & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))
216
+ | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));
217
+ }
218
+ return bytes;
219
+ }
220
+ };
221
+
222
+ crypt.exports = crypt$1;
223
+ })();
224
+
225
+ var cryptExports = crypt.exports;
226
+
227
+ var charenc = {
228
+ // UTF-8 encoding
229
+ utf8: {
230
+ // Convert a string to a byte array
231
+ stringToBytes: function(str) {
232
+ return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));
233
+ },
234
+
235
+ // Convert a byte array to a string
236
+ bytesToString: function(bytes) {
237
+ return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));
238
+ }
239
+ },
240
+
241
+ // Binary encoding
242
+ bin: {
243
+ // Convert a string to a byte array
244
+ stringToBytes: function(str) {
245
+ for (var bytes = [], i = 0; i < str.length; i++)
246
+ bytes.push(str.charCodeAt(i) & 0xFF);
247
+ return bytes;
248
+ },
249
+
250
+ // Convert a byte array to a string
251
+ bytesToString: function(bytes) {
252
+ for (var str = [], i = 0; i < bytes.length; i++)
253
+ str.push(String.fromCharCode(bytes[i]));
254
+ return str.join('');
255
+ }
256
+ }
257
+ };
258
+
259
+ var charenc_1 = charenc;
260
+
261
+ /*!
262
+ * Determine if an object is a Buffer
263
+ *
264
+ * @author Feross Aboukhadijeh <https://feross.org>
265
+ * @license MIT
266
+ */
267
+
268
+ // The _isBuffer check is for Safari 5-7 support, because it's missing
269
+ // Object.prototype.constructor. Remove this eventually
270
+ var isBuffer_1 = function (obj) {
271
+ return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
272
+ };
273
+
274
+ function isBuffer (obj) {
275
+ return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
276
+ }
277
+
278
+ // For Node v0.10 support. Remove this eventually.
279
+ function isSlowBuffer (obj) {
280
+ return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
281
+ }
282
+
283
+ (function(){
284
+ var crypt = cryptExports,
285
+ utf8 = charenc_1.utf8,
286
+ isBuffer = isBuffer_1,
287
+ bin = charenc_1.bin,
288
+
289
+ // The core
290
+ md5 = function (message, options) {
291
+ // Convert to byte array
292
+ if (message.constructor == String)
293
+ if (options && options.encoding === 'binary')
294
+ message = bin.stringToBytes(message);
295
+ else
296
+ message = utf8.stringToBytes(message);
297
+ else if (isBuffer(message))
298
+ message = Array.prototype.slice.call(message, 0);
299
+ else if (!Array.isArray(message) && message.constructor !== Uint8Array)
300
+ message = message.toString();
301
+ // else, assume byte array already
302
+
303
+ var m = crypt.bytesToWords(message),
304
+ l = message.length * 8,
305
+ a = 1732584193,
306
+ b = -271733879,
307
+ c = -1732584194,
308
+ d = 271733878;
309
+
310
+ // Swap endian
311
+ for (var i = 0; i < m.length; i++) {
312
+ m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |
313
+ ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;
314
+ }
315
+
316
+ // Padding
317
+ m[l >>> 5] |= 0x80 << (l % 32);
318
+ m[(((l + 64) >>> 9) << 4) + 14] = l;
319
+
320
+ // Method shortcuts
321
+ var FF = md5._ff,
322
+ GG = md5._gg,
323
+ HH = md5._hh,
324
+ II = md5._ii;
325
+
326
+ for (var i = 0; i < m.length; i += 16) {
327
+
328
+ var aa = a,
329
+ bb = b,
330
+ cc = c,
331
+ dd = d;
332
+
333
+ a = FF(a, b, c, d, m[i+ 0], 7, -680876936);
334
+ d = FF(d, a, b, c, m[i+ 1], 12, -389564586);
335
+ c = FF(c, d, a, b, m[i+ 2], 17, 606105819);
336
+ b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);
337
+ a = FF(a, b, c, d, m[i+ 4], 7, -176418897);
338
+ d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);
339
+ c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);
340
+ b = FF(b, c, d, a, m[i+ 7], 22, -45705983);
341
+ a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);
342
+ d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);
343
+ c = FF(c, d, a, b, m[i+10], 17, -42063);
344
+ b = FF(b, c, d, a, m[i+11], 22, -1990404162);
345
+ a = FF(a, b, c, d, m[i+12], 7, 1804603682);
346
+ d = FF(d, a, b, c, m[i+13], 12, -40341101);
347
+ c = FF(c, d, a, b, m[i+14], 17, -1502002290);
348
+ b = FF(b, c, d, a, m[i+15], 22, 1236535329);
349
+
350
+ a = GG(a, b, c, d, m[i+ 1], 5, -165796510);
351
+ d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);
352
+ c = GG(c, d, a, b, m[i+11], 14, 643717713);
353
+ b = GG(b, c, d, a, m[i+ 0], 20, -373897302);
354
+ a = GG(a, b, c, d, m[i+ 5], 5, -701558691);
355
+ d = GG(d, a, b, c, m[i+10], 9, 38016083);
356
+ c = GG(c, d, a, b, m[i+15], 14, -660478335);
357
+ b = GG(b, c, d, a, m[i+ 4], 20, -405537848);
358
+ a = GG(a, b, c, d, m[i+ 9], 5, 568446438);
359
+ d = GG(d, a, b, c, m[i+14], 9, -1019803690);
360
+ c = GG(c, d, a, b, m[i+ 3], 14, -187363961);
361
+ b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);
362
+ a = GG(a, b, c, d, m[i+13], 5, -1444681467);
363
+ d = GG(d, a, b, c, m[i+ 2], 9, -51403784);
364
+ c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);
365
+ b = GG(b, c, d, a, m[i+12], 20, -1926607734);
366
+
367
+ a = HH(a, b, c, d, m[i+ 5], 4, -378558);
368
+ d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);
369
+ c = HH(c, d, a, b, m[i+11], 16, 1839030562);
370
+ b = HH(b, c, d, a, m[i+14], 23, -35309556);
371
+ a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);
372
+ d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);
373
+ c = HH(c, d, a, b, m[i+ 7], 16, -155497632);
374
+ b = HH(b, c, d, a, m[i+10], 23, -1094730640);
375
+ a = HH(a, b, c, d, m[i+13], 4, 681279174);
376
+ d = HH(d, a, b, c, m[i+ 0], 11, -358537222);
377
+ c = HH(c, d, a, b, m[i+ 3], 16, -722521979);
378
+ b = HH(b, c, d, a, m[i+ 6], 23, 76029189);
379
+ a = HH(a, b, c, d, m[i+ 9], 4, -640364487);
380
+ d = HH(d, a, b, c, m[i+12], 11, -421815835);
381
+ c = HH(c, d, a, b, m[i+15], 16, 530742520);
382
+ b = HH(b, c, d, a, m[i+ 2], 23, -995338651);
383
+
384
+ a = II(a, b, c, d, m[i+ 0], 6, -198630844);
385
+ d = II(d, a, b, c, m[i+ 7], 10, 1126891415);
386
+ c = II(c, d, a, b, m[i+14], 15, -1416354905);
387
+ b = II(b, c, d, a, m[i+ 5], 21, -57434055);
388
+ a = II(a, b, c, d, m[i+12], 6, 1700485571);
389
+ d = II(d, a, b, c, m[i+ 3], 10, -1894986606);
390
+ c = II(c, d, a, b, m[i+10], 15, -1051523);
391
+ b = II(b, c, d, a, m[i+ 1], 21, -2054922799);
392
+ a = II(a, b, c, d, m[i+ 8], 6, 1873313359);
393
+ d = II(d, a, b, c, m[i+15], 10, -30611744);
394
+ c = II(c, d, a, b, m[i+ 6], 15, -1560198380);
395
+ b = II(b, c, d, a, m[i+13], 21, 1309151649);
396
+ a = II(a, b, c, d, m[i+ 4], 6, -145523070);
397
+ d = II(d, a, b, c, m[i+11], 10, -1120210379);
398
+ c = II(c, d, a, b, m[i+ 2], 15, 718787259);
399
+ b = II(b, c, d, a, m[i+ 9], 21, -343485551);
400
+
401
+ a = (a + aa) >>> 0;
402
+ b = (b + bb) >>> 0;
403
+ c = (c + cc) >>> 0;
404
+ d = (d + dd) >>> 0;
405
+ }
406
+
407
+ return crypt.endian([a, b, c, d]);
408
+ };
409
+
410
+ // Auxiliary functions
411
+ md5._ff = function (a, b, c, d, x, s, t) {
412
+ var n = a + (b & c | ~b & d) + (x >>> 0) + t;
413
+ return ((n << s) | (n >>> (32 - s))) + b;
414
+ };
415
+ md5._gg = function (a, b, c, d, x, s, t) {
416
+ var n = a + (b & d | c & ~d) + (x >>> 0) + t;
417
+ return ((n << s) | (n >>> (32 - s))) + b;
418
+ };
419
+ md5._hh = function (a, b, c, d, x, s, t) {
420
+ var n = a + (b ^ c ^ d) + (x >>> 0) + t;
421
+ return ((n << s) | (n >>> (32 - s))) + b;
422
+ };
423
+ md5._ii = function (a, b, c, d, x, s, t) {
424
+ var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;
425
+ return ((n << s) | (n >>> (32 - s))) + b;
426
+ };
427
+
428
+ // Package private blocksize
429
+ md5._blocksize = 16;
430
+ md5._digestsize = 16;
431
+
432
+ md5$1.exports = function (message, options) {
433
+ if (message === undefined || message === null)
434
+ throw new Error('Illegal argument ' + message);
435
+
436
+ var digestbytes = crypt.wordsToBytes(md5(message, options));
437
+ return options && options.asBytes ? digestbytes :
438
+ options && options.asString ? bin.bytesToString(digestbytes) :
439
+ crypt.bytesToHex(digestbytes);
440
+ };
441
+
442
+ })();
443
+
444
+ var md5Exports = md5$1.exports;
445
+ var md5 = /*@__PURE__*/getDefaultExportFromCjs(md5Exports);
446
+
120
447
  class SignGenerator {
121
448
  constructor(config) {
122
449
  this.config = {
@@ -202,129 +529,9 @@ class SignGenerator {
202
529
  return signString.toLowerCase();
203
530
  }
204
531
  hash(str) {
205
- // 使用纯JavaScript实现的MD5算法,支持浏览器和Node.js环境
532
+ // 使用第三方md5库生成MD5哈希,支持浏览器和Node.js环境
206
533
  const input = this.config.salt ? this.config.salt + str : str;
207
- return this.md5(input);
208
- }
209
- // 纯JavaScript MD5实现
210
- md5(message) {
211
- // MD5常量
212
- const K = [
213
- 0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee,
214
- 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501,
215
- 0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be,
216
- 0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821,
217
- 0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa,
218
- 0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8,
219
- 0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed,
220
- 0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a,
221
- 0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c,
222
- 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70,
223
- 0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05,
224
- 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665,
225
- 0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039,
226
- 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1,
227
- 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1,
228
- 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391
229
- ];
230
- // 左旋转函数
231
- const leftRotate = (x, c) => {
232
- return (x << c) | (x >>> (32 - c));
233
- };
234
- // 将字符串转换为字节数组
235
- const utf8Encode = (str) => {
236
- const bytes = [];
237
- for (let i = 0; i < str.length; i++) {
238
- const charCode = str.charCodeAt(i);
239
- if (charCode < 128) {
240
- bytes.push(charCode);
241
- }
242
- else if (charCode < 2048) {
243
- bytes.push((charCode >> 6) | 192);
244
- bytes.push((charCode & 63) | 128);
245
- }
246
- else if (charCode < 65536) {
247
- bytes.push((charCode >> 12) | 224);
248
- bytes.push(((charCode >> 6) & 63) | 128);
249
- bytes.push((charCode & 63) | 128);
250
- }
251
- else {
252
- bytes.push((charCode >> 18) | 240);
253
- bytes.push(((charCode >> 12) & 63) | 128);
254
- bytes.push(((charCode >> 6) & 63) | 128);
255
- bytes.push((charCode & 63) | 128);
256
- }
257
- }
258
- return bytes;
259
- };
260
- // 初始化变量
261
- let a0 = 0x67452301;
262
- let b0 = 0xefcdab89;
263
- let c0 = 0x98badcfe;
264
- let d0 = 0x10325476;
265
- // 处理输入
266
- const bytes = utf8Encode(message);
267
- const originalLength = bytes.length * 8;
268
- // 添加填充
269
- bytes.push(0x80);
270
- while ((bytes.length * 8) % 512 !== 448) {
271
- bytes.push(0x00);
272
- }
273
- // 添加长度
274
- for (let i = 0; i < 8; i++) {
275
- bytes.push((originalLength >>> (i * 8)) & 0xff);
276
- }
277
- // 处理512位块
278
- for (let i = 0; i < bytes.length; i += 64) {
279
- const w = [];
280
- for (let j = 0; j < 16; j++) {
281
- w[j] = ((bytes[i + j * 4] << 24) |
282
- (bytes[i + j * 4 + 1] << 16) |
283
- (bytes[i + j * 4 + 2] << 8) |
284
- bytes[i + j * 4 + 3]);
285
- }
286
- let a = a0;
287
- let b = b0;
288
- let c = c0;
289
- let d = d0;
290
- for (let j = 0; j < 64; j++) {
291
- let f;
292
- let g;
293
- if (j < 16) {
294
- f = (b & c) | (~b & d);
295
- g = j;
296
- }
297
- else if (j < 32) {
298
- f = (d & b) | (~d & c);
299
- g = (5 * j + 1) % 16;
300
- }
301
- else if (j < 48) {
302
- f = b ^ c ^ d;
303
- g = (3 * j + 5) % 16;
304
- }
305
- else {
306
- f = c ^ (b | ~d);
307
- g = (7 * j) % 16;
308
- }
309
- const temp = d;
310
- d = c;
311
- c = b;
312
- b = b + leftRotate((a + f + K[j] + w[g]), [7, 12, 17, 22][j / 16 | 0]);
313
- a = temp;
314
- }
315
- a0 += a;
316
- b0 += b;
317
- c0 += c;
318
- d0 += d;
319
- }
320
- // 将结果转换为十六进制字符串
321
- const toHex = (n) => {
322
- return ('00000000' + n.toString(16)).slice(-8);
323
- };
324
- return (toHex(a0) +
325
- toHex(b0) +
326
- toHex(c0) +
327
- toHex(d0)).toLowerCase();
534
+ return md5(input);
328
535
  }
329
536
  getSignHeaderName() {
330
537
  return this.config.signHeaderName;
@@ -354,7 +561,7 @@ class TokenRefreshManager {
354
561
  if (!updatedConfig.headers) {
355
562
  updatedConfig.headers = {};
356
563
  }
357
- updatedConfig.headers.Authorization = `Bearer ${token}`;
564
+ updatedConfig.headers.Authorization = `${token}`;
358
565
  resolve(updatedConfig);
359
566
  }
360
567
  else {
@@ -632,7 +839,7 @@ class ApiClient {
632
839
  if (this.config.tokenRefreshConfig?.getToken) {
633
840
  const token = this.config.tokenRefreshConfig.getToken();
634
841
  if (token) {
635
- config.headers.Authorization = `Bearer ${token}`;
842
+ config.headers.Authorization = `${token}`;
636
843
  }
637
844
  }
638
845
  const requestLog = {
@@ -670,6 +877,12 @@ class ApiClient {
670
877
  error instanceof Error && 'response' in error &&
671
878
  error.response?.status &&
672
879
  this.tokenRefreshManager.isTokenExpired(error.response.status)) {
880
+ // 检查是否是auth相关接口,如果是则跳过token刷新
881
+ const config = error.config;
882
+ const url = config?.url || '';
883
+ if (url.includes('/auth/')) {
884
+ return Promise.reject(errorHandlerManager.handleError(error));
885
+ }
673
886
  try {
674
887
  const newConfig = await this.tokenRefreshManager.handleTokenExpired(this.axiosInstance, error.config);
675
888
  return this.axiosInstance.request(newConfig);
@@ -763,7 +976,12 @@ class ApiClient {
763
976
  async function login(params) {
764
977
  const client = getApiClient();
765
978
  const response = await client.post('/auth/v1/login', params);
766
- return response.data;
979
+ const loginResult = response.data;
980
+ // 保存token
981
+ if (loginResult.token) {
982
+ saveToken(loginResult.token);
983
+ }
984
+ return loginResult;
767
985
  }
768
986
  async function refreshToken() {
769
987
  const client = getApiClient();
@@ -1108,6 +1326,15 @@ function getApiClient() {
1108
1326
  }
1109
1327
  return apiClientInstance;
1110
1328
  }
1329
+ // 保存token的方法
1330
+ function saveToken(token) {
1331
+ if (!apiClientInstance) {
1332
+ throw new Error('ApiClient has not been initialized. Call init first.');
1333
+ }
1334
+ if (apiClientInstance['config']?.tokenRefreshConfig?.setToken) {
1335
+ apiClientInstance['config'].tokenRefreshConfig.setToken(token);
1336
+ }
1337
+ }
1111
1338
  function destroy() {
1112
1339
  if (apiClientInstance) {
1113
1340
  apiClientInstance.cancelAllRequests();
@@ -1126,5 +1353,6 @@ exports.errorHandlerManager = errorHandlerManager;
1126
1353
  exports.getApiClient = getApiClient;
1127
1354
  exports.init = init;
1128
1355
  exports.logger = logger;
1356
+ exports.saveToken = saveToken;
1129
1357
  exports.updateConfig = updateConfig;
1130
1358
  //# sourceMappingURL=index.js.map