@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 +2 -2
- package/dist/index.js +353 -125
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +353 -126
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -2
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
|
-
//
|
|
532
|
+
// 使用第三方md5库生成MD5哈希,支持浏览器和Node.js环境
|
|
206
533
|
const input = this.config.salt ? this.config.salt + str : str;
|
|
207
|
-
return
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|