@uploadcare/upload-client 2.0.0-alpha.7 → 2.1.0
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/README.md +35 -10
- package/dist/index.browser.cjs +134 -73
- package/dist/index.browser.js +174 -119
- package/dist/index.cjs +147 -83
- package/dist/index.js +182 -127
- package/dist/types.d.ts +125 -40
- package/package.json +32 -26
- package/CHANGELOG.md +0 -243
package/dist/index.cjs
CHANGED
|
@@ -2,16 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
6
|
-
|
|
7
5
|
var http = require('http');
|
|
8
6
|
var https = require('https');
|
|
9
7
|
var url = require('url');
|
|
10
8
|
var stream = require('stream');
|
|
11
|
-
var NodeFormData =
|
|
9
|
+
var NodeFormData = require('form-data');
|
|
12
10
|
var abortController = require('abort-controller');
|
|
13
11
|
var WebSocket = require('ws');
|
|
14
12
|
|
|
13
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
|
+
|
|
15
|
+
var http__default = /*#__PURE__*/_interopDefaultLegacy(http);
|
|
16
|
+
var https__default = /*#__PURE__*/_interopDefaultLegacy(https);
|
|
17
|
+
var NodeFormData__default = /*#__PURE__*/_interopDefaultLegacy(NodeFormData);
|
|
18
|
+
var WebSocket__default = /*#__PURE__*/_interopDefaultLegacy(WebSocket);
|
|
19
|
+
|
|
15
20
|
/*! *****************************************************************************
|
|
16
21
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
17
22
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
@@ -62,10 +67,11 @@ function __spreadArrays() {
|
|
|
62
67
|
|
|
63
68
|
var UploadClientError = /** @class */ (function (_super) {
|
|
64
69
|
__extends(UploadClientError, _super);
|
|
65
|
-
function UploadClientError(message, request, response, headers) {
|
|
70
|
+
function UploadClientError(message, code, request, response, headers) {
|
|
66
71
|
var _this = _super.call(this) || this;
|
|
67
72
|
_this.name = 'UploadClientError';
|
|
68
73
|
_this.message = message;
|
|
74
|
+
_this.code = code;
|
|
69
75
|
_this.request = request;
|
|
70
76
|
_this.response = response;
|
|
71
77
|
_this.headers = headers;
|
|
@@ -158,8 +164,8 @@ var request = function (params) {
|
|
|
158
164
|
length || data.length;
|
|
159
165
|
}
|
|
160
166
|
var req = options.protocol !== 'https:'
|
|
161
|
-
?
|
|
162
|
-
:
|
|
167
|
+
? http__default["default"].request(options)
|
|
168
|
+
: https__default["default"].request(options);
|
|
163
169
|
onCancel(signal, function () {
|
|
164
170
|
aborted = true;
|
|
165
171
|
req.abort();
|
|
@@ -202,20 +208,27 @@ var request = function (params) {
|
|
|
202
208
|
});
|
|
203
209
|
};
|
|
204
210
|
|
|
205
|
-
|
|
211
|
+
function identity(obj) {
|
|
212
|
+
return obj;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
var transformFile = identity;
|
|
216
|
+
var getFormData = (function () { return new NodeFormData__default["default"](); });
|
|
206
217
|
|
|
218
|
+
var isFileTuple = function (tuple) {
|
|
219
|
+
return tuple[0] === 'file';
|
|
220
|
+
};
|
|
207
221
|
function buildFormData(body) {
|
|
208
222
|
var formData = getFormData();
|
|
209
|
-
var isTriple = function (tuple) {
|
|
210
|
-
return tuple[0] === 'file';
|
|
211
|
-
};
|
|
212
223
|
var _loop_1 = function (tuple) {
|
|
213
224
|
if (Array.isArray(tuple[1])) {
|
|
214
225
|
// refactor this
|
|
215
226
|
tuple[1].forEach(function (val) { return val && formData.append(tuple[0] + '[]', "" + val); });
|
|
216
227
|
}
|
|
217
|
-
else if (
|
|
218
|
-
|
|
228
|
+
else if (isFileTuple(tuple)) {
|
|
229
|
+
var name_1 = tuple[2];
|
|
230
|
+
var file = transformFile(tuple[1]); // lgtm[js/superfluous-trailing-arguments]
|
|
231
|
+
formData.append(tuple[0], file, name_1);
|
|
219
232
|
}
|
|
220
233
|
else if (tuple[1] != null) {
|
|
221
234
|
formData.append(tuple[0], "" + tuple[1]);
|
|
@@ -273,16 +286,33 @@ var defaultSettings = {
|
|
|
273
286
|
var defaultContentType = 'application/octet-stream';
|
|
274
287
|
var defaultFilename = 'original';
|
|
275
288
|
|
|
276
|
-
var version = '
|
|
289
|
+
var version = '2.1.0';
|
|
277
290
|
|
|
278
291
|
/**
|
|
279
292
|
* Returns User Agent based on version and settings.
|
|
280
293
|
*/
|
|
281
294
|
function getUserAgent(_a) {
|
|
282
|
-
var _b = _a === void 0 ? {} : _a, _c = _b.publicKey, publicKey = _c === void 0 ? '' : _c, _d = _b.integration, integration = _d === void 0 ? '' : _d;
|
|
283
|
-
var
|
|
284
|
-
var
|
|
285
|
-
|
|
295
|
+
var _b = _a === void 0 ? {} : _a, userAgent = _b.userAgent, _c = _b.publicKey, publicKey = _c === void 0 ? '' : _c, _d = _b.integration, integration = _d === void 0 ? '' : _d;
|
|
296
|
+
var libraryName = 'UploadcareUploadClient';
|
|
297
|
+
var libraryVersion = version;
|
|
298
|
+
var languageName = 'JavaScript';
|
|
299
|
+
if (typeof userAgent === 'string') {
|
|
300
|
+
return userAgent;
|
|
301
|
+
}
|
|
302
|
+
if (typeof userAgent === 'function') {
|
|
303
|
+
return userAgent({
|
|
304
|
+
publicKey: publicKey,
|
|
305
|
+
libraryName: libraryName,
|
|
306
|
+
libraryVersion: libraryVersion,
|
|
307
|
+
languageName: languageName,
|
|
308
|
+
integration: integration
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
var mainInfo = [libraryName, libraryVersion, publicKey]
|
|
312
|
+
.filter(Boolean)
|
|
313
|
+
.join('/');
|
|
314
|
+
var additionInfo = [languageName, integration].filter(Boolean).join('; ');
|
|
315
|
+
return mainInfo + " (" + additionInfo + ")";
|
|
286
316
|
}
|
|
287
317
|
|
|
288
318
|
var SEPARATOR = /\W|_/g;
|
|
@@ -345,7 +375,7 @@ function retrier(fn, options) {
|
|
|
345
375
|
return runAttempt(fn);
|
|
346
376
|
}
|
|
347
377
|
|
|
348
|
-
var REQUEST_WAS_THROTTLED_CODE =
|
|
378
|
+
var REQUEST_WAS_THROTTLED_CODE = 'RequestThrottledError';
|
|
349
379
|
var DEFAULT_RETRY_AFTER_TIMEOUT = 15000;
|
|
350
380
|
function getTimeoutFromThrottledRequest(error) {
|
|
351
381
|
var headers = (error || {}).headers;
|
|
@@ -357,9 +387,8 @@ function retryIfThrottled(fn, retryThrottledMaxTimes) {
|
|
|
357
387
|
return retrier(function (_a) {
|
|
358
388
|
var attempt = _a.attempt, retry = _a.retry;
|
|
359
389
|
return fn().catch(function (error) {
|
|
360
|
-
var _a;
|
|
361
390
|
if ('response' in error &&
|
|
362
|
-
(
|
|
391
|
+
(error === null || error === void 0 ? void 0 : error.code) === REQUEST_WAS_THROTTLED_CODE &&
|
|
363
392
|
attempt < retryThrottledMaxTimes) {
|
|
364
393
|
return retry(getTimeoutFromThrottledRequest(error));
|
|
365
394
|
}
|
|
@@ -373,7 +402,7 @@ function retryIfThrottled(fn, retryThrottledMaxTimes) {
|
|
|
373
402
|
* Can be canceled and has progress.
|
|
374
403
|
*/
|
|
375
404
|
function base(file, _a) {
|
|
376
|
-
var publicKey = _a.publicKey, fileName = _a.fileName, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, onProgress = _a.onProgress, _c = _a.source, source = _c === void 0 ? 'local' : _c, integration = _a.integration, _d = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _d === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _d;
|
|
405
|
+
var publicKey = _a.publicKey, fileName = _a.fileName, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, onProgress = _a.onProgress, _c = _a.source, source = _c === void 0 ? 'local' : _c, integration = _a.integration, userAgent = _a.userAgent, _d = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _d === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _d;
|
|
377
406
|
return retryIfThrottled(function () {
|
|
378
407
|
var _a;
|
|
379
408
|
return request({
|
|
@@ -382,7 +411,7 @@ function base(file, _a) {
|
|
|
382
411
|
jsonerrors: 1
|
|
383
412
|
}),
|
|
384
413
|
headers: {
|
|
385
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
414
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
386
415
|
},
|
|
387
416
|
data: buildFormData([
|
|
388
417
|
['file', file, (_a = fileName !== null && fileName !== void 0 ? fileName : file.name) !== null && _a !== void 0 ? _a : defaultFilename],
|
|
@@ -401,7 +430,7 @@ function base(file, _a) {
|
|
|
401
430
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
402
431
|
var response = camelizeKeys(JSON.parse(data));
|
|
403
432
|
if ('error' in response) {
|
|
404
|
-
throw new UploadClientError(
|
|
433
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
405
434
|
}
|
|
406
435
|
else {
|
|
407
436
|
return response;
|
|
@@ -418,14 +447,13 @@ var TypeEnum;
|
|
|
418
447
|
/**
|
|
419
448
|
* Uploading files from URL.
|
|
420
449
|
*/
|
|
421
|
-
/* eslint @typescript-eslint/camelcase: [2, {allow: ["pub_key", "source_url", "check_URL_duplicates", "save_URL_duplicates"]}] */
|
|
422
450
|
function fromUrl(sourceUrl, _a) {
|
|
423
|
-
var publicKey = _a.publicKey, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, store = _a.store, fileName = _a.fileName, checkForUrlDuplicates = _a.checkForUrlDuplicates, saveUrlForRecurrentUploads = _a.saveUrlForRecurrentUploads, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, _c = _a.source, source = _c === void 0 ? 'url' : _c, signal = _a.signal, integration = _a.integration, _d = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _d === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _d;
|
|
451
|
+
var publicKey = _a.publicKey, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, store = _a.store, fileName = _a.fileName, checkForUrlDuplicates = _a.checkForUrlDuplicates, saveUrlForRecurrentUploads = _a.saveUrlForRecurrentUploads, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, _c = _a.source, source = _c === void 0 ? 'url' : _c, signal = _a.signal, integration = _a.integration, userAgent = _a.userAgent, _d = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _d === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _d;
|
|
424
452
|
return retryIfThrottled(function () {
|
|
425
453
|
return request({
|
|
426
454
|
method: 'POST',
|
|
427
455
|
headers: {
|
|
428
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
456
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
429
457
|
},
|
|
430
458
|
url: getUrl(baseURL, '/from_url/', {
|
|
431
459
|
jsonerrors: 1,
|
|
@@ -444,7 +472,7 @@ function fromUrl(sourceUrl, _a) {
|
|
|
444
472
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
445
473
|
var response = camelizeKeys(JSON.parse(data));
|
|
446
474
|
if ('error' in response) {
|
|
447
|
-
throw new UploadClientError(
|
|
475
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
448
476
|
}
|
|
449
477
|
else {
|
|
450
478
|
return response;
|
|
@@ -468,12 +496,18 @@ var isErrorResponse = function (response) {
|
|
|
468
496
|
* Checking upload status and working with file tokens.
|
|
469
497
|
*/
|
|
470
498
|
function fromUrlStatus(token, _a) {
|
|
471
|
-
var _b = _a === void 0 ? {} : _a, publicKey = _b.publicKey, _c = _b.baseURL, baseURL = _c === void 0 ? defaultSettings.baseURL : _c, signal = _b.signal, integration = _b.integration, _d = _b.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _d === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _d;
|
|
499
|
+
var _b = _a === void 0 ? {} : _a, publicKey = _b.publicKey, _c = _b.baseURL, baseURL = _c === void 0 ? defaultSettings.baseURL : _c, signal = _b.signal, integration = _b.integration, userAgent = _b.userAgent, _d = _b.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _d === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _d;
|
|
472
500
|
return retryIfThrottled(function () {
|
|
473
501
|
return request({
|
|
474
502
|
method: 'GET',
|
|
475
503
|
headers: publicKey
|
|
476
|
-
? {
|
|
504
|
+
? {
|
|
505
|
+
'X-UC-User-Agent': getUserAgent({
|
|
506
|
+
publicKey: publicKey,
|
|
507
|
+
integration: integration,
|
|
508
|
+
userAgent: userAgent
|
|
509
|
+
})
|
|
510
|
+
}
|
|
477
511
|
: undefined,
|
|
478
512
|
url: getUrl(baseURL, '/from_url/status/', {
|
|
479
513
|
jsonerrors: 1,
|
|
@@ -484,7 +518,7 @@ function fromUrlStatus(token, _a) {
|
|
|
484
518
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
485
519
|
var response = camelizeKeys(JSON.parse(data));
|
|
486
520
|
if ('error' in response && !isErrorResponse(response)) {
|
|
487
|
-
throw new UploadClientError(
|
|
521
|
+
throw new UploadClientError(response.error.content, undefined, request, response, headers);
|
|
488
522
|
}
|
|
489
523
|
else {
|
|
490
524
|
return response;
|
|
@@ -496,14 +530,13 @@ function fromUrlStatus(token, _a) {
|
|
|
496
530
|
/**
|
|
497
531
|
* Create files group.
|
|
498
532
|
*/
|
|
499
|
-
/* eslint @typescript-eslint/camelcase: [2, {allow: ["pub_key"]}] */
|
|
500
533
|
function group(uuids, _a) {
|
|
501
|
-
var publicKey = _a.publicKey, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, jsonpCallback = _a.jsonpCallback, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, signal = _a.signal, source = _a.source, integration = _a.integration, _c = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _c === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _c;
|
|
534
|
+
var publicKey = _a.publicKey, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, jsonpCallback = _a.jsonpCallback, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, signal = _a.signal, source = _a.source, integration = _a.integration, userAgent = _a.userAgent, _c = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _c === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _c;
|
|
502
535
|
return retryIfThrottled(function () {
|
|
503
536
|
return request({
|
|
504
537
|
method: 'POST',
|
|
505
538
|
headers: {
|
|
506
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
539
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
507
540
|
},
|
|
508
541
|
url: getUrl(baseURL, '/group/', {
|
|
509
542
|
jsonerrors: 1,
|
|
@@ -519,7 +552,7 @@ function group(uuids, _a) {
|
|
|
519
552
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
520
553
|
var response = camelizeKeys(JSON.parse(data));
|
|
521
554
|
if ('error' in response) {
|
|
522
|
-
throw new UploadClientError(
|
|
555
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
523
556
|
}
|
|
524
557
|
else {
|
|
525
558
|
return response;
|
|
@@ -531,14 +564,13 @@ function group(uuids, _a) {
|
|
|
531
564
|
/**
|
|
532
565
|
* Get info about group.
|
|
533
566
|
*/
|
|
534
|
-
/* eslint @typescript-eslint/camelcase: [2, {allow: ["pub_key", "group_id"]}] */
|
|
535
567
|
function groupInfo(id, _a) {
|
|
536
|
-
var publicKey = _a.publicKey, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, signal = _a.signal, source = _a.source, integration = _a.integration, _c = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _c === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _c;
|
|
568
|
+
var publicKey = _a.publicKey, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, signal = _a.signal, source = _a.source, integration = _a.integration, userAgent = _a.userAgent, _c = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _c === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _c;
|
|
537
569
|
return retryIfThrottled(function () {
|
|
538
570
|
return request({
|
|
539
571
|
method: 'GET',
|
|
540
572
|
headers: {
|
|
541
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
573
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
542
574
|
},
|
|
543
575
|
url: getUrl(baseURL, '/group/info/', {
|
|
544
576
|
jsonerrors: 1,
|
|
@@ -551,7 +583,7 @@ function groupInfo(id, _a) {
|
|
|
551
583
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
552
584
|
var response = camelizeKeys(JSON.parse(data));
|
|
553
585
|
if ('error' in response) {
|
|
554
|
-
throw new UploadClientError(
|
|
586
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
555
587
|
}
|
|
556
588
|
else {
|
|
557
589
|
return response;
|
|
@@ -563,14 +595,13 @@ function groupInfo(id, _a) {
|
|
|
563
595
|
/**
|
|
564
596
|
* Returns a JSON dictionary holding file info.
|
|
565
597
|
*/
|
|
566
|
-
/* eslint @typescript-eslint/camelcase: [2, {allow: ["pub_key", "file_id"]}] */
|
|
567
598
|
function info(uuid, _a) {
|
|
568
|
-
var publicKey = _a.publicKey, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, signal = _a.signal, source = _a.source, integration = _a.integration, _c = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _c === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _c;
|
|
599
|
+
var publicKey = _a.publicKey, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, signal = _a.signal, source = _a.source, integration = _a.integration, userAgent = _a.userAgent, _c = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _c === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _c;
|
|
569
600
|
return retryIfThrottled(function () {
|
|
570
601
|
return request({
|
|
571
602
|
method: 'GET',
|
|
572
603
|
headers: {
|
|
573
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
604
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
574
605
|
},
|
|
575
606
|
url: getUrl(baseURL, '/info/', {
|
|
576
607
|
jsonerrors: 1,
|
|
@@ -583,7 +614,7 @@ function info(uuid, _a) {
|
|
|
583
614
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
584
615
|
var response = camelizeKeys(JSON.parse(data));
|
|
585
616
|
if ('error' in response) {
|
|
586
|
-
throw new UploadClientError(
|
|
617
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
587
618
|
}
|
|
588
619
|
else {
|
|
589
620
|
return response;
|
|
@@ -596,13 +627,13 @@ function info(uuid, _a) {
|
|
|
596
627
|
* Start multipart uploading.
|
|
597
628
|
*/
|
|
598
629
|
function multipartStart(size, _a) {
|
|
599
|
-
var publicKey = _a.publicKey, contentType = _a.contentType, fileName = _a.fileName, _b = _a.multipartChunkSize, multipartChunkSize = _b === void 0 ? defaultSettings.multipartChunkSize : _b, _c = _a.baseURL, baseURL = _c === void 0 ? '' : _c, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, _d = _a.source, source = _d === void 0 ? 'local' : _d, integration = _a.integration, _e = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _e === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _e;
|
|
630
|
+
var publicKey = _a.publicKey, contentType = _a.contentType, fileName = _a.fileName, _b = _a.multipartChunkSize, multipartChunkSize = _b === void 0 ? defaultSettings.multipartChunkSize : _b, _c = _a.baseURL, baseURL = _c === void 0 ? '' : _c, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, _d = _a.source, source = _d === void 0 ? 'local' : _d, integration = _a.integration, userAgent = _a.userAgent, _e = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _e === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _e;
|
|
600
631
|
return retryIfThrottled(function () {
|
|
601
632
|
return request({
|
|
602
633
|
method: 'POST',
|
|
603
634
|
url: getUrl(baseURL, '/multipart/start/', { jsonerrors: 1 }),
|
|
604
635
|
headers: {
|
|
605
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
636
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
606
637
|
},
|
|
607
638
|
data: buildFormData([
|
|
608
639
|
['filename', fileName !== null && fileName !== void 0 ? fileName : defaultFilename],
|
|
@@ -620,7 +651,7 @@ function multipartStart(size, _a) {
|
|
|
620
651
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
621
652
|
var response = camelizeKeys(JSON.parse(data));
|
|
622
653
|
if ('error' in response) {
|
|
623
|
-
throw new UploadClientError(
|
|
654
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
624
655
|
}
|
|
625
656
|
else {
|
|
626
657
|
// convert to array
|
|
@@ -635,15 +666,10 @@ function multipartStart(size, _a) {
|
|
|
635
666
|
* Complete multipart uploading.
|
|
636
667
|
*/
|
|
637
668
|
function multipartUpload(part, url, _a) {
|
|
638
|
-
var
|
|
669
|
+
var signal = _a.signal, onProgress = _a.onProgress;
|
|
639
670
|
return request({
|
|
640
671
|
method: 'PUT',
|
|
641
672
|
url: url,
|
|
642
|
-
headers: {
|
|
643
|
-
'X-UC-User-Agent': publicKey
|
|
644
|
-
? getUserAgent({ publicKey: publicKey, integration: integration })
|
|
645
|
-
: undefined
|
|
646
|
-
},
|
|
647
673
|
data: part,
|
|
648
674
|
onProgress: onProgress,
|
|
649
675
|
signal: signal
|
|
@@ -664,13 +690,13 @@ function multipartUpload(part, url, _a) {
|
|
|
664
690
|
* Complete multipart uploading.
|
|
665
691
|
*/
|
|
666
692
|
function multipartComplete(uuid, _a) {
|
|
667
|
-
var publicKey = _a.publicKey, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, _c = _a.source, source = _c === void 0 ? 'local' : _c, signal = _a.signal, integration = _a.integration, _d = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _d === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _d;
|
|
693
|
+
var publicKey = _a.publicKey, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, _c = _a.source, source = _c === void 0 ? 'local' : _c, signal = _a.signal, integration = _a.integration, userAgent = _a.userAgent, _d = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _d === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _d;
|
|
668
694
|
return retryIfThrottled(function () {
|
|
669
695
|
return request({
|
|
670
696
|
method: 'POST',
|
|
671
697
|
url: getUrl(baseURL, '/multipart/complete/', { jsonerrors: 1 }),
|
|
672
698
|
headers: {
|
|
673
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
699
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
674
700
|
},
|
|
675
701
|
data: buildFormData([
|
|
676
702
|
['uuid', uuid],
|
|
@@ -682,7 +708,7 @@ function multipartComplete(uuid, _a) {
|
|
|
682
708
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
683
709
|
var response = camelizeKeys(JSON.parse(data));
|
|
684
710
|
if ('error' in response) {
|
|
685
|
-
throw new UploadClientError(
|
|
711
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
686
712
|
}
|
|
687
713
|
else {
|
|
688
714
|
return response;
|
|
@@ -698,6 +724,7 @@ var UploadcareFile = /** @class */ (function () {
|
|
|
698
724
|
this.size = null;
|
|
699
725
|
this.isStored = null;
|
|
700
726
|
this.isImage = null;
|
|
727
|
+
this.mimeType = null;
|
|
701
728
|
this.cdnUrl = null;
|
|
702
729
|
this.cdnUrlModifiers = null;
|
|
703
730
|
this.originalUrl = null;
|
|
@@ -716,6 +743,7 @@ var UploadcareFile = /** @class */ (function () {
|
|
|
716
743
|
this.size = fileInfo.size;
|
|
717
744
|
this.isStored = fileInfo.isStored;
|
|
718
745
|
this.isImage = fileInfo.isImage;
|
|
746
|
+
this.mimeType = fileInfo.mimeType;
|
|
719
747
|
this.cdnUrl = cdnUrl;
|
|
720
748
|
this.cdnUrlModifiers = cdnUrlModifiers;
|
|
721
749
|
this.originalUrl = originalUrl;
|
|
@@ -757,7 +785,7 @@ var poll = function (_a) {
|
|
|
757
785
|
};
|
|
758
786
|
|
|
759
787
|
function isReadyPoll(_a) {
|
|
760
|
-
var file = _a.file, publicKey = _a.publicKey, baseURL = _a.baseURL, source = _a.source, integration = _a.integration, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, signal = _a.signal, onProgress = _a.onProgress;
|
|
788
|
+
var file = _a.file, publicKey = _a.publicKey, baseURL = _a.baseURL, source = _a.source, integration = _a.integration, userAgent = _a.userAgent, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, signal = _a.signal, onProgress = _a.onProgress;
|
|
761
789
|
return poll({
|
|
762
790
|
check: function (signal) {
|
|
763
791
|
return info(file, {
|
|
@@ -766,6 +794,7 @@ function isReadyPoll(_a) {
|
|
|
766
794
|
signal: signal,
|
|
767
795
|
source: source,
|
|
768
796
|
integration: integration,
|
|
797
|
+
userAgent: userAgent,
|
|
769
798
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
770
799
|
}).then(function (response) {
|
|
771
800
|
if (response.isReady) {
|
|
@@ -780,7 +809,7 @@ function isReadyPoll(_a) {
|
|
|
780
809
|
}
|
|
781
810
|
|
|
782
811
|
var uploadFromObject = function (file, _a) {
|
|
783
|
-
var publicKey = _a.publicKey, fileName = _a.fileName, baseURL = _a.baseURL, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, onProgress = _a.onProgress, source = _a.source, integration = _a.integration, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, baseCDN = _a.baseCDN;
|
|
812
|
+
var publicKey = _a.publicKey, fileName = _a.fileName, baseURL = _a.baseURL, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, onProgress = _a.onProgress, source = _a.source, integration = _a.integration, userAgent = _a.userAgent, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, baseCDN = _a.baseCDN;
|
|
784
813
|
return base(file, {
|
|
785
814
|
publicKey: publicKey,
|
|
786
815
|
fileName: fileName,
|
|
@@ -792,6 +821,7 @@ var uploadFromObject = function (file, _a) {
|
|
|
792
821
|
onProgress: onProgress,
|
|
793
822
|
source: source,
|
|
794
823
|
integration: integration,
|
|
824
|
+
userAgent: userAgent,
|
|
795
825
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
796
826
|
})
|
|
797
827
|
.then(function (_a) {
|
|
@@ -802,6 +832,7 @@ var uploadFromObject = function (file, _a) {
|
|
|
802
832
|
baseURL: baseURL,
|
|
803
833
|
source: source,
|
|
804
834
|
integration: integration,
|
|
835
|
+
userAgent: userAgent,
|
|
805
836
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
806
837
|
onProgress: onProgress,
|
|
807
838
|
signal: signal
|
|
@@ -893,7 +924,7 @@ var Pusher = /** @class */ (function () {
|
|
|
893
924
|
this.disconnectTimeoutId && clearTimeout(this.disconnectTimeoutId);
|
|
894
925
|
if (!this.isConnected && !this.ws) {
|
|
895
926
|
var pusherUrl = "wss://ws.pusherapp.com/app/" + this.key + "?protocol=5&client=js&version=1.12.2";
|
|
896
|
-
this.ws = new
|
|
927
|
+
this.ws = new WebSocket__default["default"](pusherUrl);
|
|
897
928
|
this.ws.addEventListener('error', function (error) {
|
|
898
929
|
_this.emmitter.emit('error', new Error(error.message));
|
|
899
930
|
});
|
|
@@ -903,7 +934,7 @@ var Pusher = /** @class */ (function () {
|
|
|
903
934
|
_this.queue = [];
|
|
904
935
|
});
|
|
905
936
|
this.ws.addEventListener('message', function (e) {
|
|
906
|
-
var data = JSON.parse(e.data);
|
|
937
|
+
var data = JSON.parse(e.data.toString());
|
|
907
938
|
switch (data.event) {
|
|
908
939
|
case 'pusher:connection_established': {
|
|
909
940
|
_this.emmitter.emit('connected', undefined);
|
|
@@ -999,19 +1030,20 @@ var preconnect = function (key) {
|
|
|
999
1030
|
};
|
|
1000
1031
|
|
|
1001
1032
|
function pollStrategy(_a) {
|
|
1002
|
-
var token = _a.token, publicKey = _a.publicKey, baseURL = _a.baseURL, integration = _a.integration, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, onProgress = _a.onProgress, signal = _a.signal;
|
|
1033
|
+
var token = _a.token, publicKey = _a.publicKey, baseURL = _a.baseURL, integration = _a.integration, userAgent = _a.userAgent, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, onProgress = _a.onProgress, signal = _a.signal;
|
|
1003
1034
|
return poll({
|
|
1004
1035
|
check: function (signal) {
|
|
1005
1036
|
return fromUrlStatus(token, {
|
|
1006
1037
|
publicKey: publicKey,
|
|
1007
1038
|
baseURL: baseURL,
|
|
1008
1039
|
integration: integration,
|
|
1040
|
+
userAgent: userAgent,
|
|
1009
1041
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1010
1042
|
signal: signal
|
|
1011
1043
|
}).then(function (response) {
|
|
1012
1044
|
switch (response.status) {
|
|
1013
1045
|
case Status.Error: {
|
|
1014
|
-
return new UploadClientError(response.error);
|
|
1046
|
+
return new UploadClientError(response.error, response.errorCode);
|
|
1015
1047
|
}
|
|
1016
1048
|
case Status.Waiting: {
|
|
1017
1049
|
return false;
|
|
@@ -1039,7 +1071,7 @@ function pollStrategy(_a) {
|
|
|
1039
1071
|
});
|
|
1040
1072
|
}
|
|
1041
1073
|
var pushStrategy = function (_a) {
|
|
1042
|
-
var token = _a.token, pusherKey = _a.pusherKey, signal = _a.signal,
|
|
1074
|
+
var token = _a.token, pusherKey = _a.pusherKey, signal = _a.signal, onProgress = _a.onProgress;
|
|
1043
1075
|
return new Promise(function (resolve, reject) {
|
|
1044
1076
|
var pusher = getPusher(pusherKey);
|
|
1045
1077
|
var unsubErrorHandler = pusher.onError(reject);
|
|
@@ -1049,10 +1081,9 @@ var pushStrategy = function (_a) {
|
|
|
1049
1081
|
};
|
|
1050
1082
|
onCancel(signal, function () {
|
|
1051
1083
|
destroy();
|
|
1052
|
-
reject(cancelError('
|
|
1084
|
+
reject(cancelError('pusher cancelled'));
|
|
1053
1085
|
});
|
|
1054
1086
|
pusher.subscribe(token, function (result) {
|
|
1055
|
-
stopRace();
|
|
1056
1087
|
switch (result.status) {
|
|
1057
1088
|
case Status.Progress: {
|
|
1058
1089
|
if (onProgress) {
|
|
@@ -1069,14 +1100,14 @@ var pushStrategy = function (_a) {
|
|
|
1069
1100
|
}
|
|
1070
1101
|
case Status.Error: {
|
|
1071
1102
|
destroy();
|
|
1072
|
-
reject(new UploadClientError(result.msg));
|
|
1103
|
+
reject(new UploadClientError(result.msg, result.error_code));
|
|
1073
1104
|
}
|
|
1074
1105
|
}
|
|
1075
1106
|
});
|
|
1076
1107
|
});
|
|
1077
1108
|
};
|
|
1078
1109
|
var uploadFromUrl = function (sourceUrl, _a) {
|
|
1079
|
-
var publicKey = _a.publicKey, fileName = _a.fileName, baseURL = _a.baseURL, baseCDN = _a.baseCDN, checkForUrlDuplicates = _a.checkForUrlDuplicates, saveUrlForRecurrentUploads = _a.saveUrlForRecurrentUploads, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, onProgress = _a.onProgress, source = _a.source, integration = _a.integration, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, _b = _a.pusherKey, pusherKey = _b === void 0 ? defaultSettings.pusherKey : _b;
|
|
1110
|
+
var publicKey = _a.publicKey, fileName = _a.fileName, baseURL = _a.baseURL, baseCDN = _a.baseCDN, checkForUrlDuplicates = _a.checkForUrlDuplicates, saveUrlForRecurrentUploads = _a.saveUrlForRecurrentUploads, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, onProgress = _a.onProgress, source = _a.source, integration = _a.integration, userAgent = _a.userAgent, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, _b = _a.pusherKey, pusherKey = _b === void 0 ? defaultSettings.pusherKey : _b;
|
|
1080
1111
|
return Promise.resolve(preconnect(pusherKey))
|
|
1081
1112
|
.then(function () {
|
|
1082
1113
|
return fromUrl(sourceUrl, {
|
|
@@ -1091,8 +1122,14 @@ var uploadFromUrl = function (sourceUrl, _a) {
|
|
|
1091
1122
|
signal: signal,
|
|
1092
1123
|
source: source,
|
|
1093
1124
|
integration: integration,
|
|
1125
|
+
userAgent: userAgent,
|
|
1094
1126
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1095
1127
|
});
|
|
1128
|
+
})
|
|
1129
|
+
.catch(function (error) {
|
|
1130
|
+
var pusher = getPusher(pusherKey);
|
|
1131
|
+
pusher === null || pusher === void 0 ? void 0 : pusher.disconnect();
|
|
1132
|
+
return Promise.reject(error);
|
|
1096
1133
|
})
|
|
1097
1134
|
.then(function (urlResponse) {
|
|
1098
1135
|
if (urlResponse.type === TypeEnum.FileInfo) {
|
|
@@ -1107,17 +1144,17 @@ var uploadFromUrl = function (sourceUrl, _a) {
|
|
|
1107
1144
|
publicKey: publicKey,
|
|
1108
1145
|
baseURL: baseURL,
|
|
1109
1146
|
integration: integration,
|
|
1147
|
+
userAgent: userAgent,
|
|
1110
1148
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1111
1149
|
onProgress: onProgress,
|
|
1112
1150
|
signal: signal
|
|
1113
1151
|
});
|
|
1114
1152
|
},
|
|
1115
1153
|
function (_a) {
|
|
1116
|
-
var
|
|
1154
|
+
var signal = _a.signal;
|
|
1117
1155
|
return pushStrategy({
|
|
1118
1156
|
token: urlResponse.token,
|
|
1119
1157
|
pusherKey: pusherKey,
|
|
1120
|
-
stopRace: stopRace,
|
|
1121
1158
|
signal: signal,
|
|
1122
1159
|
onProgress: onProgress
|
|
1123
1160
|
});
|
|
@@ -1136,6 +1173,7 @@ var uploadFromUrl = function (sourceUrl, _a) {
|
|
|
1136
1173
|
publicKey: publicKey,
|
|
1137
1174
|
baseURL: baseURL,
|
|
1138
1175
|
integration: integration,
|
|
1176
|
+
userAgent: userAgent,
|
|
1139
1177
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1140
1178
|
onProgress: onProgress,
|
|
1141
1179
|
signal: signal
|
|
@@ -1145,13 +1183,14 @@ var uploadFromUrl = function (sourceUrl, _a) {
|
|
|
1145
1183
|
};
|
|
1146
1184
|
|
|
1147
1185
|
var uploadFromUploaded = function (uuid, _a) {
|
|
1148
|
-
var publicKey = _a.publicKey, fileName = _a.fileName, baseURL = _a.baseURL, signal = _a.signal, onProgress = _a.onProgress, source = _a.source, integration = _a.integration, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, baseCDN = _a.baseCDN;
|
|
1186
|
+
var publicKey = _a.publicKey, fileName = _a.fileName, baseURL = _a.baseURL, signal = _a.signal, onProgress = _a.onProgress, source = _a.source, integration = _a.integration, userAgent = _a.userAgent, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, baseCDN = _a.baseCDN;
|
|
1149
1187
|
return info(uuid, {
|
|
1150
1188
|
publicKey: publicKey,
|
|
1151
1189
|
baseURL: baseURL,
|
|
1152
1190
|
signal: signal,
|
|
1153
1191
|
source: source,
|
|
1154
1192
|
integration: integration,
|
|
1193
|
+
userAgent: userAgent,
|
|
1155
1194
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1156
1195
|
})
|
|
1157
1196
|
.then(function (fileInfo) { return new UploadcareFile(fileInfo, { baseCDN: baseCDN, fileName: fileName }); })
|
|
@@ -1205,6 +1244,18 @@ var isMultipart = function (fileSize, multipartMinFileSize) {
|
|
|
1205
1244
|
return fileSize >= multipartMinFileSize;
|
|
1206
1245
|
};
|
|
1207
1246
|
|
|
1247
|
+
var sliceChunk = function (file, index, fileSize, chunkSize) {
|
|
1248
|
+
var start = chunkSize * index;
|
|
1249
|
+
var end = Math.min(start + chunkSize, fileSize);
|
|
1250
|
+
return file.slice(start, end);
|
|
1251
|
+
};
|
|
1252
|
+
|
|
1253
|
+
function prepareChunks(file, fileSize, chunkSize) {
|
|
1254
|
+
return function (index) {
|
|
1255
|
+
return sliceChunk(file, index, fileSize, chunkSize);
|
|
1256
|
+
};
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1208
1259
|
var runWithConcurrency = function (concurrency, tasks) {
|
|
1209
1260
|
return new Promise(function (resolve, reject) {
|
|
1210
1261
|
var results = [];
|
|
@@ -1240,11 +1291,6 @@ var runWithConcurrency = function (concurrency, tasks) {
|
|
|
1240
1291
|
});
|
|
1241
1292
|
};
|
|
1242
1293
|
|
|
1243
|
-
var getChunk = function (file, index, fileSize, chunkSize) {
|
|
1244
|
-
var start = chunkSize * index;
|
|
1245
|
-
var end = Math.min(start + chunkSize, fileSize);
|
|
1246
|
-
return file.slice(start, end);
|
|
1247
|
-
};
|
|
1248
1294
|
var uploadPartWithRetry = function (chunk, url, _a) {
|
|
1249
1295
|
var publicKey = _a.publicKey, onProgress = _a.onProgress, signal = _a.signal, integration = _a.integration, multipartMaxAttempts = _a.multipartMaxAttempts;
|
|
1250
1296
|
return retrier(function (_a) {
|
|
@@ -1263,7 +1309,7 @@ var uploadPartWithRetry = function (chunk, url, _a) {
|
|
|
1263
1309
|
});
|
|
1264
1310
|
};
|
|
1265
1311
|
var uploadMultipart = function (file, _a) {
|
|
1266
|
-
var publicKey = _a.publicKey, fileName = _a.fileName, fileSize = _a.fileSize, baseURL = _a.baseURL, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, onProgress = _a.onProgress, source = _a.source, integration = _a.integration, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, contentType = _a.contentType, _b = _a.multipartChunkSize, multipartChunkSize = _b === void 0 ? defaultSettings.multipartChunkSize : _b, _c = _a.maxConcurrentRequests, maxConcurrentRequests = _c === void 0 ? defaultSettings.maxConcurrentRequests : _c, _d = _a.multipartMaxAttempts, multipartMaxAttempts = _d === void 0 ? defaultSettings.multipartMaxAttempts : _d, baseCDN = _a.baseCDN;
|
|
1312
|
+
var publicKey = _a.publicKey, fileName = _a.fileName, fileSize = _a.fileSize, baseURL = _a.baseURL, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, onProgress = _a.onProgress, source = _a.source, integration = _a.integration, userAgent = _a.userAgent, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, contentType = _a.contentType, _b = _a.multipartChunkSize, multipartChunkSize = _b === void 0 ? defaultSettings.multipartChunkSize : _b, _c = _a.maxConcurrentRequests, maxConcurrentRequests = _c === void 0 ? defaultSettings.maxConcurrentRequests : _c, _d = _a.multipartMaxAttempts, multipartMaxAttempts = _d === void 0 ? defaultSettings.multipartMaxAttempts : _d, baseCDN = _a.baseCDN;
|
|
1267
1313
|
var size = fileSize || getFileSize(file);
|
|
1268
1314
|
var progressValues;
|
|
1269
1315
|
var createProgressHandler = function (size, index) {
|
|
@@ -1292,14 +1338,16 @@ var uploadMultipart = function (file, _a) {
|
|
|
1292
1338
|
signal: signal,
|
|
1293
1339
|
source: source,
|
|
1294
1340
|
integration: integration,
|
|
1341
|
+
userAgent: userAgent,
|
|
1295
1342
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1296
1343
|
})
|
|
1297
1344
|
.then(function (_a) {
|
|
1298
1345
|
var uuid = _a.uuid, parts = _a.parts;
|
|
1346
|
+
var getChunk = prepareChunks(file, size, multipartChunkSize);
|
|
1299
1347
|
return Promise.all([
|
|
1300
1348
|
uuid,
|
|
1301
1349
|
runWithConcurrency(maxConcurrentRequests, parts.map(function (url, index) { return function () {
|
|
1302
|
-
return uploadPartWithRetry(getChunk(
|
|
1350
|
+
return uploadPartWithRetry(getChunk(index), url, {
|
|
1303
1351
|
publicKey: publicKey,
|
|
1304
1352
|
onProgress: createProgressHandler(parts.length, index),
|
|
1305
1353
|
signal: signal,
|
|
@@ -1316,6 +1364,7 @@ var uploadMultipart = function (file, _a) {
|
|
|
1316
1364
|
baseURL: baseURL,
|
|
1317
1365
|
source: source,
|
|
1318
1366
|
integration: integration,
|
|
1367
|
+
userAgent: userAgent,
|
|
1319
1368
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1320
1369
|
});
|
|
1321
1370
|
})
|
|
@@ -1330,6 +1379,7 @@ var uploadMultipart = function (file, _a) {
|
|
|
1330
1379
|
baseURL: baseURL,
|
|
1331
1380
|
source: source,
|
|
1332
1381
|
integration: integration,
|
|
1382
|
+
userAgent: userAgent,
|
|
1333
1383
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1334
1384
|
onProgress: onProgress,
|
|
1335
1385
|
signal: signal
|
|
@@ -1343,7 +1393,7 @@ var uploadMultipart = function (file, _a) {
|
|
|
1343
1393
|
* Uploads file from provided data.
|
|
1344
1394
|
*/
|
|
1345
1395
|
function uploadFile(data, _a) {
|
|
1346
|
-
var publicKey = _a.publicKey, fileName = _a.fileName, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, onProgress = _a.onProgress, source = _a.source, integration = _a.integration, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, contentType = _a.contentType,
|
|
1396
|
+
var publicKey = _a.publicKey, fileName = _a.fileName, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, onProgress = _a.onProgress, source = _a.source, integration = _a.integration, userAgent = _a.userAgent, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, contentType = _a.contentType, multipartChunkSize = _a.multipartChunkSize, multipartMaxAttempts = _a.multipartMaxAttempts, maxConcurrentRequests = _a.maxConcurrentRequests, _c = _a.baseCDN, baseCDN = _c === void 0 ? defaultSettings.baseCDN : _c, checkForUrlDuplicates = _a.checkForUrlDuplicates, saveUrlForRecurrentUploads = _a.saveUrlForRecurrentUploads, pusherKey = _a.pusherKey;
|
|
1347
1397
|
if (isFileData(data)) {
|
|
1348
1398
|
var fileSize = getFileSize(data);
|
|
1349
1399
|
if (isMultipart(fileSize)) {
|
|
@@ -1351,6 +1401,7 @@ function uploadFile(data, _a) {
|
|
|
1351
1401
|
publicKey: publicKey,
|
|
1352
1402
|
contentType: contentType,
|
|
1353
1403
|
multipartChunkSize: multipartChunkSize,
|
|
1404
|
+
multipartMaxAttempts: multipartMaxAttempts,
|
|
1354
1405
|
fileName: fileName,
|
|
1355
1406
|
baseURL: baseURL,
|
|
1356
1407
|
secureSignature: secureSignature,
|
|
@@ -1360,6 +1411,8 @@ function uploadFile(data, _a) {
|
|
|
1360
1411
|
onProgress: onProgress,
|
|
1361
1412
|
source: source,
|
|
1362
1413
|
integration: integration,
|
|
1414
|
+
userAgent: userAgent,
|
|
1415
|
+
maxConcurrentRequests: maxConcurrentRequests,
|
|
1363
1416
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1364
1417
|
baseCDN: baseCDN
|
|
1365
1418
|
});
|
|
@@ -1375,6 +1428,7 @@ function uploadFile(data, _a) {
|
|
|
1375
1428
|
onProgress: onProgress,
|
|
1376
1429
|
source: source,
|
|
1377
1430
|
integration: integration,
|
|
1431
|
+
userAgent: userAgent,
|
|
1378
1432
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1379
1433
|
baseCDN: baseCDN
|
|
1380
1434
|
});
|
|
@@ -1384,6 +1438,9 @@ function uploadFile(data, _a) {
|
|
|
1384
1438
|
publicKey: publicKey,
|
|
1385
1439
|
fileName: fileName,
|
|
1386
1440
|
baseURL: baseURL,
|
|
1441
|
+
baseCDN: baseCDN,
|
|
1442
|
+
checkForUrlDuplicates: checkForUrlDuplicates,
|
|
1443
|
+
saveUrlForRecurrentUploads: saveUrlForRecurrentUploads,
|
|
1387
1444
|
secureSignature: secureSignature,
|
|
1388
1445
|
secureExpire: secureExpire,
|
|
1389
1446
|
store: store,
|
|
@@ -1391,8 +1448,9 @@ function uploadFile(data, _a) {
|
|
|
1391
1448
|
onProgress: onProgress,
|
|
1392
1449
|
source: source,
|
|
1393
1450
|
integration: integration,
|
|
1451
|
+
userAgent: userAgent,
|
|
1394
1452
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1395
|
-
|
|
1453
|
+
pusherKey: pusherKey
|
|
1396
1454
|
});
|
|
1397
1455
|
}
|
|
1398
1456
|
if (isUuid(data)) {
|
|
@@ -1404,6 +1462,7 @@ function uploadFile(data, _a) {
|
|
|
1404
1462
|
onProgress: onProgress,
|
|
1405
1463
|
source: source,
|
|
1406
1464
|
integration: integration,
|
|
1465
|
+
userAgent: userAgent,
|
|
1407
1466
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1408
1467
|
baseCDN: baseCDN
|
|
1409
1468
|
});
|
|
@@ -1418,8 +1477,7 @@ var UploadcareGroup = /** @class */ (function () {
|
|
|
1418
1477
|
this.filesCount = groupInfo.filesCount;
|
|
1419
1478
|
this.totalSize = Object.values(groupInfo.files).reduce(function (acc, file) { return acc + file.size; }, 0);
|
|
1420
1479
|
this.isStored = !!groupInfo.datetimeStored;
|
|
1421
|
-
this.isImage = !!Object.values(groupInfo.files).filter(function (file) { return file.isImage; })
|
|
1422
|
-
.length;
|
|
1480
|
+
this.isImage = !!Object.values(groupInfo.files).filter(function (file) { return file.isImage; }).length;
|
|
1423
1481
|
this.cdnUrl = groupInfo.cdnUrl;
|
|
1424
1482
|
this.files = files;
|
|
1425
1483
|
this.createdAt = groupInfo.datetimeCreated;
|
|
@@ -1466,7 +1524,7 @@ var isUrlArray = function (data) {
|
|
|
1466
1524
|
};
|
|
1467
1525
|
|
|
1468
1526
|
function uploadFileGroup(data, _a) {
|
|
1469
|
-
var publicKey = _a.publicKey, fileName = _a.fileName, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, onProgress = _a.onProgress, source = _a.source, integration = _a.integration, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, contentType = _a.contentType, _c = _a.multipartChunkSize, multipartChunkSize = _c === void 0 ? defaultSettings.multipartChunkSize : _c, _d = _a.baseCDN, baseCDN = _d === void 0 ? defaultSettings.baseCDN : _d, jsonpCallback = _a.jsonpCallback, defaultEffects = _a.defaultEffects;
|
|
1527
|
+
var publicKey = _a.publicKey, fileName = _a.fileName, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, onProgress = _a.onProgress, source = _a.source, integration = _a.integration, userAgent = _a.userAgent, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, contentType = _a.contentType, _c = _a.multipartChunkSize, multipartChunkSize = _c === void 0 ? defaultSettings.multipartChunkSize : _c, _d = _a.baseCDN, baseCDN = _d === void 0 ? defaultSettings.baseCDN : _d, jsonpCallback = _a.jsonpCallback, defaultEffects = _a.defaultEffects;
|
|
1470
1528
|
if (!isFileDataArray(data) && !isUrlArray(data) && !isUuidArray(data)) {
|
|
1471
1529
|
throw new TypeError("Group uploading from \"" + data + "\" is not supported");
|
|
1472
1530
|
}
|
|
@@ -1499,6 +1557,7 @@ function uploadFileGroup(data, _a) {
|
|
|
1499
1557
|
onProgress: createProgressHandler(filesCount, index),
|
|
1500
1558
|
source: source,
|
|
1501
1559
|
integration: integration,
|
|
1560
|
+
userAgent: userAgent,
|
|
1502
1561
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1503
1562
|
contentType: contentType,
|
|
1504
1563
|
multipartChunkSize: multipartChunkSize,
|
|
@@ -1522,6 +1581,7 @@ function uploadFileGroup(data, _a) {
|
|
|
1522
1581
|
signal: signal,
|
|
1523
1582
|
source: source,
|
|
1524
1583
|
integration: integration,
|
|
1584
|
+
userAgent: userAgent,
|
|
1525
1585
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1526
1586
|
}).then(function (groupInfo) { return new UploadcareGroup(groupInfo, filesInGroup); });
|
|
1527
1587
|
});
|
|
@@ -1590,11 +1650,11 @@ var UploadClient = /** @class */ (function () {
|
|
|
1590
1650
|
|
|
1591
1651
|
Object.defineProperty(exports, 'AbortController', {
|
|
1592
1652
|
enumerable: true,
|
|
1593
|
-
get: function () {
|
|
1594
|
-
return abortController.AbortController;
|
|
1595
|
-
}
|
|
1653
|
+
get: function () { return abortController.AbortController; }
|
|
1596
1654
|
});
|
|
1597
1655
|
exports.UploadClient = UploadClient;
|
|
1656
|
+
exports.UploadcareFile = UploadcareFile;
|
|
1657
|
+
exports.UploadcareGroup = UploadcareGroup;
|
|
1598
1658
|
exports.base = base;
|
|
1599
1659
|
exports.fromUrl = fromUrl;
|
|
1600
1660
|
exports.fromUrlStatus = fromUrlStatus;
|
|
@@ -1604,5 +1664,9 @@ exports.info = info;
|
|
|
1604
1664
|
exports.multipartComplete = multipartComplete;
|
|
1605
1665
|
exports.multipartStart = multipartStart;
|
|
1606
1666
|
exports.multipartUpload = multipartUpload;
|
|
1667
|
+
exports.uploadBase = uploadFromObject;
|
|
1607
1668
|
exports.uploadFile = uploadFile;
|
|
1608
1669
|
exports.uploadFileGroup = uploadFileGroup;
|
|
1670
|
+
exports.uploadFromUploaded = uploadFromUploaded;
|
|
1671
|
+
exports.uploadFromUrl = uploadFromUrl;
|
|
1672
|
+
exports.uploadMultipart = uploadMultipart;
|