@uploadcare/upload-client 2.0.0-alpha.6 → 2.0.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 +209 -150
- package/dist/index.browser.js +244 -189
- package/dist/index.cjs +214 -150
- package/dist/index.js +247 -192
- package/dist/types.d.ts +155 -92
- package/package.json +33 -27
- package/CHANGELOG.md +0 -243
package/dist/index.cjs
CHANGED
|
@@ -2,14 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var abortController = require('abort-controller');
|
|
6
5
|
var http = require('http');
|
|
7
6
|
var https = require('https');
|
|
8
7
|
var url = require('url');
|
|
9
8
|
var stream = require('stream');
|
|
10
9
|
var NodeFormData = require('form-data');
|
|
10
|
+
var abortController = require('abort-controller');
|
|
11
11
|
var WebSocket = require('ws');
|
|
12
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
|
+
|
|
13
20
|
/*! *****************************************************************************
|
|
14
21
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
15
22
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
@@ -58,32 +65,13 @@ function __spreadArrays() {
|
|
|
58
65
|
return r;
|
|
59
66
|
}
|
|
60
67
|
|
|
61
|
-
/*
|
|
62
|
-
Settings for future support:
|
|
63
|
-
parallelDirectUploads: 10,
|
|
64
|
-
*/
|
|
65
|
-
var defaultSettings = {
|
|
66
|
-
baseCDN: 'https://ucarecdn.com',
|
|
67
|
-
baseURL: 'https://upload.uploadcare.com',
|
|
68
|
-
maxContentLength: 50 * 1024 * 1024,
|
|
69
|
-
retryThrottledRequestMaxTimes: 1,
|
|
70
|
-
multipartMinFileSize: 25 * 1024 * 1024,
|
|
71
|
-
multipartChunkSize: 5 * 1024 * 1024,
|
|
72
|
-
multipartMinLastPartSize: 1024 * 1024,
|
|
73
|
-
maxConcurrentRequests: 4,
|
|
74
|
-
multipartMaxAttempts: 3,
|
|
75
|
-
pollingTimeoutMilliseconds: 10000,
|
|
76
|
-
pusherKey: '79ae88bd931ea68464d9'
|
|
77
|
-
};
|
|
78
|
-
var defaultContentType = 'application/octet-stream';
|
|
79
|
-
var defaultFilename = 'original';
|
|
80
|
-
|
|
81
68
|
var UploadClientError = /** @class */ (function (_super) {
|
|
82
69
|
__extends(UploadClientError, _super);
|
|
83
|
-
function UploadClientError(message, request, response, headers) {
|
|
70
|
+
function UploadClientError(message, code, request, response, headers) {
|
|
84
71
|
var _this = _super.call(this) || this;
|
|
85
72
|
_this.name = 'UploadClientError';
|
|
86
73
|
_this.message = message;
|
|
74
|
+
_this.code = code;
|
|
87
75
|
_this.request = request;
|
|
88
76
|
_this.response = response;
|
|
89
77
|
_this.headers = headers;
|
|
@@ -176,8 +164,8 @@ var request = function (params) {
|
|
|
176
164
|
length || data.length;
|
|
177
165
|
}
|
|
178
166
|
var req = options.protocol !== 'https:'
|
|
179
|
-
?
|
|
180
|
-
:
|
|
167
|
+
? http__default["default"].request(options)
|
|
168
|
+
: https__default["default"].request(options);
|
|
181
169
|
onCancel(signal, function () {
|
|
182
170
|
aborted = true;
|
|
183
171
|
req.abort();
|
|
@@ -220,20 +208,27 @@ var request = function (params) {
|
|
|
220
208
|
});
|
|
221
209
|
};
|
|
222
210
|
|
|
223
|
-
|
|
211
|
+
function identity(obj) {
|
|
212
|
+
return obj;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
var transformFile = identity;
|
|
216
|
+
var getFormData = (function () { return new NodeFormData__default["default"](); });
|
|
224
217
|
|
|
218
|
+
var isFileTuple = function (tuple) {
|
|
219
|
+
return tuple[0] === 'file';
|
|
220
|
+
};
|
|
225
221
|
function buildFormData(body) {
|
|
226
222
|
var formData = getFormData();
|
|
227
|
-
var isTriple = function (tuple) {
|
|
228
|
-
return tuple[0] === 'file';
|
|
229
|
-
};
|
|
230
223
|
var _loop_1 = function (tuple) {
|
|
231
224
|
if (Array.isArray(tuple[1])) {
|
|
232
225
|
// refactor this
|
|
233
226
|
tuple[1].forEach(function (val) { return val && formData.append(tuple[0] + '[]', "" + val); });
|
|
234
227
|
}
|
|
235
|
-
else if (
|
|
236
|
-
|
|
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);
|
|
237
232
|
}
|
|
238
233
|
else if (tuple[1] != null) {
|
|
239
234
|
formData.append(tuple[0], "" + tuple[1]);
|
|
@@ -271,16 +266,53 @@ var getUrl = function (base, path, query) {
|
|
|
271
266
|
.join('');
|
|
272
267
|
};
|
|
273
268
|
|
|
274
|
-
|
|
269
|
+
/*
|
|
270
|
+
Settings for future support:
|
|
271
|
+
parallelDirectUploads: 10,
|
|
272
|
+
*/
|
|
273
|
+
var defaultSettings = {
|
|
274
|
+
baseCDN: 'https://ucarecdn.com',
|
|
275
|
+
baseURL: 'https://upload.uploadcare.com',
|
|
276
|
+
maxContentLength: 50 * 1024 * 1024,
|
|
277
|
+
retryThrottledRequestMaxTimes: 1,
|
|
278
|
+
multipartMinFileSize: 25 * 1024 * 1024,
|
|
279
|
+
multipartChunkSize: 5 * 1024 * 1024,
|
|
280
|
+
multipartMinLastPartSize: 1024 * 1024,
|
|
281
|
+
maxConcurrentRequests: 4,
|
|
282
|
+
multipartMaxAttempts: 3,
|
|
283
|
+
pollingTimeoutMilliseconds: 10000,
|
|
284
|
+
pusherKey: '79ae88bd931ea68464d9'
|
|
285
|
+
};
|
|
286
|
+
var defaultContentType = 'application/octet-stream';
|
|
287
|
+
var defaultFilename = 'original';
|
|
288
|
+
|
|
289
|
+
var version = '2.0.0';
|
|
275
290
|
|
|
276
291
|
/**
|
|
277
292
|
* Returns User Agent based on version and settings.
|
|
278
293
|
*/
|
|
279
294
|
function getUserAgent(_a) {
|
|
280
|
-
var _b = _a === void 0 ? {} : _a, _c = _b.publicKey, publicKey = _c === void 0 ? '' : _c, _d = _b.integration, integration = _d === void 0 ? '' : _d;
|
|
281
|
-
var
|
|
282
|
-
var
|
|
283
|
-
|
|
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 + ")";
|
|
284
316
|
}
|
|
285
317
|
|
|
286
318
|
var SEPARATOR = /\W|_/g;
|
|
@@ -343,7 +375,7 @@ function retrier(fn, options) {
|
|
|
343
375
|
return runAttempt(fn);
|
|
344
376
|
}
|
|
345
377
|
|
|
346
|
-
var REQUEST_WAS_THROTTLED_CODE =
|
|
378
|
+
var REQUEST_WAS_THROTTLED_CODE = 'RequestThrottledError';
|
|
347
379
|
var DEFAULT_RETRY_AFTER_TIMEOUT = 15000;
|
|
348
380
|
function getTimeoutFromThrottledRequest(error) {
|
|
349
381
|
var headers = (error || {}).headers;
|
|
@@ -355,9 +387,8 @@ function retryIfThrottled(fn, retryThrottledMaxTimes) {
|
|
|
355
387
|
return retrier(function (_a) {
|
|
356
388
|
var attempt = _a.attempt, retry = _a.retry;
|
|
357
389
|
return fn().catch(function (error) {
|
|
358
|
-
var _a;
|
|
359
390
|
if ('response' in error &&
|
|
360
|
-
(
|
|
391
|
+
(error === null || error === void 0 ? void 0 : error.code) === REQUEST_WAS_THROTTLED_CODE &&
|
|
361
392
|
attempt < retryThrottledMaxTimes) {
|
|
362
393
|
return retry(getTimeoutFromThrottledRequest(error));
|
|
363
394
|
}
|
|
@@ -371,7 +402,7 @@ function retryIfThrottled(fn, retryThrottledMaxTimes) {
|
|
|
371
402
|
* Can be canceled and has progress.
|
|
372
403
|
*/
|
|
373
404
|
function base(file, _a) {
|
|
374
|
-
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;
|
|
375
406
|
return retryIfThrottled(function () {
|
|
376
407
|
var _a;
|
|
377
408
|
return request({
|
|
@@ -380,7 +411,7 @@ function base(file, _a) {
|
|
|
380
411
|
jsonerrors: 1
|
|
381
412
|
}),
|
|
382
413
|
headers: {
|
|
383
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
414
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
384
415
|
},
|
|
385
416
|
data: buildFormData([
|
|
386
417
|
['file', file, (_a = fileName !== null && fileName !== void 0 ? fileName : file.name) !== null && _a !== void 0 ? _a : defaultFilename],
|
|
@@ -399,39 +430,7 @@ function base(file, _a) {
|
|
|
399
430
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
400
431
|
var response = camelizeKeys(JSON.parse(data));
|
|
401
432
|
if ('error' in response) {
|
|
402
|
-
throw new UploadClientError(
|
|
403
|
-
}
|
|
404
|
-
else {
|
|
405
|
-
return response;
|
|
406
|
-
}
|
|
407
|
-
});
|
|
408
|
-
}, retryThrottledRequestMaxTimes);
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
/**
|
|
412
|
-
* Returns a JSON dictionary holding file info.
|
|
413
|
-
*/
|
|
414
|
-
/* eslint @typescript-eslint/camelcase: [2, {allow: ["pub_key", "file_id"]}] */
|
|
415
|
-
function info(uuid, _a) {
|
|
416
|
-
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;
|
|
417
|
-
return retryIfThrottled(function () {
|
|
418
|
-
return request({
|
|
419
|
-
method: 'GET',
|
|
420
|
-
headers: {
|
|
421
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
422
|
-
},
|
|
423
|
-
url: getUrl(baseURL, '/info/', {
|
|
424
|
-
jsonerrors: 1,
|
|
425
|
-
pub_key: publicKey,
|
|
426
|
-
file_id: uuid,
|
|
427
|
-
source: source
|
|
428
|
-
}),
|
|
429
|
-
signal: signal
|
|
430
|
-
}).then(function (_a) {
|
|
431
|
-
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
432
|
-
var response = camelizeKeys(JSON.parse(data));
|
|
433
|
-
if ('error' in response) {
|
|
434
|
-
throw new UploadClientError("[" + response.error.statusCode + "] " + response.error.content, request, response.error, headers);
|
|
433
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
435
434
|
}
|
|
436
435
|
else {
|
|
437
436
|
return response;
|
|
@@ -448,14 +447,13 @@ var TypeEnum;
|
|
|
448
447
|
/**
|
|
449
448
|
* Uploading files from URL.
|
|
450
449
|
*/
|
|
451
|
-
/* eslint @typescript-eslint/camelcase: [2, {allow: ["pub_key", "source_url", "check_URL_duplicates", "save_URL_duplicates"]}] */
|
|
452
450
|
function fromUrl(sourceUrl, _a) {
|
|
453
|
-
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;
|
|
454
452
|
return retryIfThrottled(function () {
|
|
455
453
|
return request({
|
|
456
454
|
method: 'POST',
|
|
457
455
|
headers: {
|
|
458
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
456
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
459
457
|
},
|
|
460
458
|
url: getUrl(baseURL, '/from_url/', {
|
|
461
459
|
jsonerrors: 1,
|
|
@@ -474,7 +472,7 @@ function fromUrl(sourceUrl, _a) {
|
|
|
474
472
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
475
473
|
var response = camelizeKeys(JSON.parse(data));
|
|
476
474
|
if ('error' in response) {
|
|
477
|
-
throw new UploadClientError(
|
|
475
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
478
476
|
}
|
|
479
477
|
else {
|
|
480
478
|
return response;
|
|
@@ -498,12 +496,18 @@ var isErrorResponse = function (response) {
|
|
|
498
496
|
* Checking upload status and working with file tokens.
|
|
499
497
|
*/
|
|
500
498
|
function fromUrlStatus(token, _a) {
|
|
501
|
-
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;
|
|
502
500
|
return retryIfThrottled(function () {
|
|
503
501
|
return request({
|
|
504
502
|
method: 'GET',
|
|
505
503
|
headers: publicKey
|
|
506
|
-
? {
|
|
504
|
+
? {
|
|
505
|
+
'X-UC-User-Agent': getUserAgent({
|
|
506
|
+
publicKey: publicKey,
|
|
507
|
+
integration: integration,
|
|
508
|
+
userAgent: userAgent
|
|
509
|
+
})
|
|
510
|
+
}
|
|
507
511
|
: undefined,
|
|
508
512
|
url: getUrl(baseURL, '/from_url/status/', {
|
|
509
513
|
jsonerrors: 1,
|
|
@@ -514,7 +518,7 @@ function fromUrlStatus(token, _a) {
|
|
|
514
518
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
515
519
|
var response = camelizeKeys(JSON.parse(data));
|
|
516
520
|
if ('error' in response && !isErrorResponse(response)) {
|
|
517
|
-
throw new UploadClientError(
|
|
521
|
+
throw new UploadClientError(response.error.content, undefined, request, response, headers);
|
|
518
522
|
}
|
|
519
523
|
else {
|
|
520
524
|
return response;
|
|
@@ -526,14 +530,13 @@ function fromUrlStatus(token, _a) {
|
|
|
526
530
|
/**
|
|
527
531
|
* Create files group.
|
|
528
532
|
*/
|
|
529
|
-
/* eslint @typescript-eslint/camelcase: [2, {allow: ["pub_key"]}] */
|
|
530
533
|
function group(uuids, _a) {
|
|
531
|
-
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;
|
|
532
535
|
return retryIfThrottled(function () {
|
|
533
536
|
return request({
|
|
534
537
|
method: 'POST',
|
|
535
538
|
headers: {
|
|
536
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
539
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
537
540
|
},
|
|
538
541
|
url: getUrl(baseURL, '/group/', {
|
|
539
542
|
jsonerrors: 1,
|
|
@@ -549,7 +552,7 @@ function group(uuids, _a) {
|
|
|
549
552
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
550
553
|
var response = camelizeKeys(JSON.parse(data));
|
|
551
554
|
if ('error' in response) {
|
|
552
|
-
throw new UploadClientError(
|
|
555
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
553
556
|
}
|
|
554
557
|
else {
|
|
555
558
|
return response;
|
|
@@ -561,14 +564,13 @@ function group(uuids, _a) {
|
|
|
561
564
|
/**
|
|
562
565
|
* Get info about group.
|
|
563
566
|
*/
|
|
564
|
-
/* eslint @typescript-eslint/camelcase: [2, {allow: ["pub_key", "group_id"]}] */
|
|
565
567
|
function groupInfo(id, _a) {
|
|
566
|
-
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;
|
|
567
569
|
return retryIfThrottled(function () {
|
|
568
570
|
return request({
|
|
569
571
|
method: 'GET',
|
|
570
572
|
headers: {
|
|
571
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
573
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
572
574
|
},
|
|
573
575
|
url: getUrl(baseURL, '/group/info/', {
|
|
574
576
|
jsonerrors: 1,
|
|
@@ -581,7 +583,7 @@ function groupInfo(id, _a) {
|
|
|
581
583
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
582
584
|
var response = camelizeKeys(JSON.parse(data));
|
|
583
585
|
if ('error' in response) {
|
|
584
|
-
throw new UploadClientError(
|
|
586
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
585
587
|
}
|
|
586
588
|
else {
|
|
587
589
|
return response;
|
|
@@ -591,38 +593,30 @@ function groupInfo(id, _a) {
|
|
|
591
593
|
}
|
|
592
594
|
|
|
593
595
|
/**
|
|
594
|
-
*
|
|
596
|
+
* Returns a JSON dictionary holding file info.
|
|
595
597
|
*/
|
|
596
|
-
function
|
|
597
|
-
var publicKey = _a.publicKey,
|
|
598
|
+
function info(uuid, _a) {
|
|
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;
|
|
598
600
|
return retryIfThrottled(function () {
|
|
599
601
|
return request({
|
|
600
|
-
method: '
|
|
601
|
-
url: getUrl(baseURL, '/multipart/start/', { jsonerrors: 1 }),
|
|
602
|
+
method: 'GET',
|
|
602
603
|
headers: {
|
|
603
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
604
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
604
605
|
},
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
['UPLOADCARE_PUB_KEY', publicKey],
|
|
612
|
-
['signature', secureSignature],
|
|
613
|
-
['expire', secureExpire],
|
|
614
|
-
['source', source]
|
|
615
|
-
]),
|
|
606
|
+
url: getUrl(baseURL, '/info/', {
|
|
607
|
+
jsonerrors: 1,
|
|
608
|
+
pub_key: publicKey,
|
|
609
|
+
file_id: uuid,
|
|
610
|
+
source: source
|
|
611
|
+
}),
|
|
616
612
|
signal: signal
|
|
617
613
|
}).then(function (_a) {
|
|
618
614
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
619
615
|
var response = camelizeKeys(JSON.parse(data));
|
|
620
616
|
if ('error' in response) {
|
|
621
|
-
throw new UploadClientError(
|
|
617
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
622
618
|
}
|
|
623
619
|
else {
|
|
624
|
-
// convert to array
|
|
625
|
-
response.parts = Object.keys(response.parts).map(function (key) { return response.parts[key]; });
|
|
626
620
|
return response;
|
|
627
621
|
}
|
|
628
622
|
});
|
|
@@ -630,20 +624,26 @@ function multipartStart(size, _a) {
|
|
|
630
624
|
}
|
|
631
625
|
|
|
632
626
|
/**
|
|
633
|
-
*
|
|
627
|
+
* Start multipart uploading.
|
|
634
628
|
*/
|
|
635
|
-
function
|
|
636
|
-
var publicKey = _a.publicKey, _b = _a.
|
|
629
|
+
function multipartStart(size, _a) {
|
|
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;
|
|
637
631
|
return retryIfThrottled(function () {
|
|
638
632
|
return request({
|
|
639
633
|
method: 'POST',
|
|
640
|
-
url: getUrl(baseURL, '/multipart/
|
|
634
|
+
url: getUrl(baseURL, '/multipart/start/', { jsonerrors: 1 }),
|
|
641
635
|
headers: {
|
|
642
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
636
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
643
637
|
},
|
|
644
638
|
data: buildFormData([
|
|
645
|
-
['
|
|
639
|
+
['filename', fileName !== null && fileName !== void 0 ? fileName : defaultFilename],
|
|
640
|
+
['size', size],
|
|
641
|
+
['content_type', contentType !== null && contentType !== void 0 ? contentType : defaultContentType],
|
|
642
|
+
['part_size', multipartChunkSize],
|
|
643
|
+
['UPLOADCARE_STORE', store ? '' : 'auto'],
|
|
646
644
|
['UPLOADCARE_PUB_KEY', publicKey],
|
|
645
|
+
['signature', secureSignature],
|
|
646
|
+
['expire', secureExpire],
|
|
647
647
|
['source', source]
|
|
648
648
|
]),
|
|
649
649
|
signal: signal
|
|
@@ -651,9 +651,11 @@ function multipartComplete(uuid, _a) {
|
|
|
651
651
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
652
652
|
var response = camelizeKeys(JSON.parse(data));
|
|
653
653
|
if ('error' in response) {
|
|
654
|
-
throw new UploadClientError(
|
|
654
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
655
655
|
}
|
|
656
656
|
else {
|
|
657
|
+
// convert to array
|
|
658
|
+
response.parts = Object.keys(response.parts).map(function (key) { return response.parts[key]; });
|
|
657
659
|
return response;
|
|
658
660
|
}
|
|
659
661
|
});
|
|
@@ -664,15 +666,10 @@ function multipartComplete(uuid, _a) {
|
|
|
664
666
|
* Complete multipart uploading.
|
|
665
667
|
*/
|
|
666
668
|
function multipartUpload(part, url, _a) {
|
|
667
|
-
var
|
|
669
|
+
var signal = _a.signal, onProgress = _a.onProgress;
|
|
668
670
|
return request({
|
|
669
671
|
method: 'PUT',
|
|
670
672
|
url: url,
|
|
671
|
-
headers: {
|
|
672
|
-
'X-UC-User-Agent': publicKey
|
|
673
|
-
? getUserAgent({ publicKey: publicKey, integration: integration })
|
|
674
|
-
: undefined
|
|
675
|
-
},
|
|
676
673
|
data: part,
|
|
677
674
|
onProgress: onProgress,
|
|
678
675
|
signal: signal
|
|
@@ -689,6 +686,37 @@ function multipartUpload(part, url, _a) {
|
|
|
689
686
|
});
|
|
690
687
|
}
|
|
691
688
|
|
|
689
|
+
/**
|
|
690
|
+
* Complete multipart uploading.
|
|
691
|
+
*/
|
|
692
|
+
function multipartComplete(uuid, _a) {
|
|
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;
|
|
694
|
+
return retryIfThrottled(function () {
|
|
695
|
+
return request({
|
|
696
|
+
method: 'POST',
|
|
697
|
+
url: getUrl(baseURL, '/multipart/complete/', { jsonerrors: 1 }),
|
|
698
|
+
headers: {
|
|
699
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
700
|
+
},
|
|
701
|
+
data: buildFormData([
|
|
702
|
+
['uuid', uuid],
|
|
703
|
+
['UPLOADCARE_PUB_KEY', publicKey],
|
|
704
|
+
['source', source]
|
|
705
|
+
]),
|
|
706
|
+
signal: signal
|
|
707
|
+
}).then(function (_a) {
|
|
708
|
+
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
709
|
+
var response = camelizeKeys(JSON.parse(data));
|
|
710
|
+
if ('error' in response) {
|
|
711
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
712
|
+
}
|
|
713
|
+
else {
|
|
714
|
+
return response;
|
|
715
|
+
}
|
|
716
|
+
});
|
|
717
|
+
}, retryThrottledRequestMaxTimes);
|
|
718
|
+
}
|
|
719
|
+
|
|
692
720
|
var UploadcareFile = /** @class */ (function () {
|
|
693
721
|
function UploadcareFile(fileInfo, _a) {
|
|
694
722
|
var baseCDN = _a.baseCDN, defaultEffects = _a.defaultEffects, fileName = _a.fileName;
|
|
@@ -696,6 +724,7 @@ var UploadcareFile = /** @class */ (function () {
|
|
|
696
724
|
this.size = null;
|
|
697
725
|
this.isStored = null;
|
|
698
726
|
this.isImage = null;
|
|
727
|
+
this.mimeType = null;
|
|
699
728
|
this.cdnUrl = null;
|
|
700
729
|
this.cdnUrlModifiers = null;
|
|
701
730
|
this.originalUrl = null;
|
|
@@ -714,6 +743,7 @@ var UploadcareFile = /** @class */ (function () {
|
|
|
714
743
|
this.size = fileInfo.size;
|
|
715
744
|
this.isStored = fileInfo.isStored;
|
|
716
745
|
this.isImage = fileInfo.isImage;
|
|
746
|
+
this.mimeType = fileInfo.mimeType;
|
|
717
747
|
this.cdnUrl = cdnUrl;
|
|
718
748
|
this.cdnUrlModifiers = cdnUrlModifiers;
|
|
719
749
|
this.originalUrl = originalUrl;
|
|
@@ -755,7 +785,7 @@ var poll = function (_a) {
|
|
|
755
785
|
};
|
|
756
786
|
|
|
757
787
|
function isReadyPoll(_a) {
|
|
758
|
-
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;
|
|
759
789
|
return poll({
|
|
760
790
|
check: function (signal) {
|
|
761
791
|
return info(file, {
|
|
@@ -764,6 +794,7 @@ function isReadyPoll(_a) {
|
|
|
764
794
|
signal: signal,
|
|
765
795
|
source: source,
|
|
766
796
|
integration: integration,
|
|
797
|
+
userAgent: userAgent,
|
|
767
798
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
768
799
|
}).then(function (response) {
|
|
769
800
|
if (response.isReady) {
|
|
@@ -778,7 +809,7 @@ function isReadyPoll(_a) {
|
|
|
778
809
|
}
|
|
779
810
|
|
|
780
811
|
var uploadFromObject = function (file, _a) {
|
|
781
|
-
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;
|
|
782
813
|
return base(file, {
|
|
783
814
|
publicKey: publicKey,
|
|
784
815
|
fileName: fileName,
|
|
@@ -790,6 +821,7 @@ var uploadFromObject = function (file, _a) {
|
|
|
790
821
|
onProgress: onProgress,
|
|
791
822
|
source: source,
|
|
792
823
|
integration: integration,
|
|
824
|
+
userAgent: userAgent,
|
|
793
825
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
794
826
|
})
|
|
795
827
|
.then(function (_a) {
|
|
@@ -800,6 +832,7 @@ var uploadFromObject = function (file, _a) {
|
|
|
800
832
|
baseURL: baseURL,
|
|
801
833
|
source: source,
|
|
802
834
|
integration: integration,
|
|
835
|
+
userAgent: userAgent,
|
|
803
836
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
804
837
|
onProgress: onProgress,
|
|
805
838
|
signal: signal
|
|
@@ -891,7 +924,7 @@ var Pusher = /** @class */ (function () {
|
|
|
891
924
|
this.disconnectTimeoutId && clearTimeout(this.disconnectTimeoutId);
|
|
892
925
|
if (!this.isConnected && !this.ws) {
|
|
893
926
|
var pusherUrl = "wss://ws.pusherapp.com/app/" + this.key + "?protocol=5&client=js&version=1.12.2";
|
|
894
|
-
this.ws = new
|
|
927
|
+
this.ws = new WebSocket__default["default"](pusherUrl);
|
|
895
928
|
this.ws.addEventListener('error', function (error) {
|
|
896
929
|
_this.emmitter.emit('error', new Error(error.message));
|
|
897
930
|
});
|
|
@@ -901,7 +934,7 @@ var Pusher = /** @class */ (function () {
|
|
|
901
934
|
_this.queue = [];
|
|
902
935
|
});
|
|
903
936
|
this.ws.addEventListener('message', function (e) {
|
|
904
|
-
var data = JSON.parse(e.data);
|
|
937
|
+
var data = JSON.parse(e.data.toString());
|
|
905
938
|
switch (data.event) {
|
|
906
939
|
case 'pusher:connection_established': {
|
|
907
940
|
_this.emmitter.emit('connected', undefined);
|
|
@@ -997,19 +1030,20 @@ var preconnect = function (key) {
|
|
|
997
1030
|
};
|
|
998
1031
|
|
|
999
1032
|
function pollStrategy(_a) {
|
|
1000
|
-
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;
|
|
1001
1034
|
return poll({
|
|
1002
1035
|
check: function (signal) {
|
|
1003
1036
|
return fromUrlStatus(token, {
|
|
1004
1037
|
publicKey: publicKey,
|
|
1005
1038
|
baseURL: baseURL,
|
|
1006
1039
|
integration: integration,
|
|
1040
|
+
userAgent: userAgent,
|
|
1007
1041
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1008
1042
|
signal: signal
|
|
1009
1043
|
}).then(function (response) {
|
|
1010
1044
|
switch (response.status) {
|
|
1011
1045
|
case Status.Error: {
|
|
1012
|
-
return new UploadClientError(response.error);
|
|
1046
|
+
return new UploadClientError(response.error, response.errorCode);
|
|
1013
1047
|
}
|
|
1014
1048
|
case Status.Waiting: {
|
|
1015
1049
|
return false;
|
|
@@ -1037,7 +1071,7 @@ function pollStrategy(_a) {
|
|
|
1037
1071
|
});
|
|
1038
1072
|
}
|
|
1039
1073
|
var pushStrategy = function (_a) {
|
|
1040
|
-
var token = _a.token, pusherKey = _a.pusherKey, signal = _a.signal,
|
|
1074
|
+
var token = _a.token, pusherKey = _a.pusherKey, signal = _a.signal, onProgress = _a.onProgress;
|
|
1041
1075
|
return new Promise(function (resolve, reject) {
|
|
1042
1076
|
var pusher = getPusher(pusherKey);
|
|
1043
1077
|
var unsubErrorHandler = pusher.onError(reject);
|
|
@@ -1047,10 +1081,9 @@ var pushStrategy = function (_a) {
|
|
|
1047
1081
|
};
|
|
1048
1082
|
onCancel(signal, function () {
|
|
1049
1083
|
destroy();
|
|
1050
|
-
reject(cancelError('
|
|
1084
|
+
reject(cancelError('pusher cancelled'));
|
|
1051
1085
|
});
|
|
1052
1086
|
pusher.subscribe(token, function (result) {
|
|
1053
|
-
stopRace();
|
|
1054
1087
|
switch (result.status) {
|
|
1055
1088
|
case Status.Progress: {
|
|
1056
1089
|
if (onProgress) {
|
|
@@ -1067,14 +1100,14 @@ var pushStrategy = function (_a) {
|
|
|
1067
1100
|
}
|
|
1068
1101
|
case Status.Error: {
|
|
1069
1102
|
destroy();
|
|
1070
|
-
reject(new UploadClientError(result.msg));
|
|
1103
|
+
reject(new UploadClientError(result.msg, result.error_code));
|
|
1071
1104
|
}
|
|
1072
1105
|
}
|
|
1073
1106
|
});
|
|
1074
1107
|
});
|
|
1075
1108
|
};
|
|
1076
1109
|
var uploadFromUrl = function (sourceUrl, _a) {
|
|
1077
|
-
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;
|
|
1078
1111
|
return Promise.resolve(preconnect(pusherKey))
|
|
1079
1112
|
.then(function () {
|
|
1080
1113
|
return fromUrl(sourceUrl, {
|
|
@@ -1089,8 +1122,14 @@ var uploadFromUrl = function (sourceUrl, _a) {
|
|
|
1089
1122
|
signal: signal,
|
|
1090
1123
|
source: source,
|
|
1091
1124
|
integration: integration,
|
|
1125
|
+
userAgent: userAgent,
|
|
1092
1126
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1093
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);
|
|
1094
1133
|
})
|
|
1095
1134
|
.then(function (urlResponse) {
|
|
1096
1135
|
if (urlResponse.type === TypeEnum.FileInfo) {
|
|
@@ -1105,17 +1144,17 @@ var uploadFromUrl = function (sourceUrl, _a) {
|
|
|
1105
1144
|
publicKey: publicKey,
|
|
1106
1145
|
baseURL: baseURL,
|
|
1107
1146
|
integration: integration,
|
|
1147
|
+
userAgent: userAgent,
|
|
1108
1148
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1109
1149
|
onProgress: onProgress,
|
|
1110
1150
|
signal: signal
|
|
1111
1151
|
});
|
|
1112
1152
|
},
|
|
1113
1153
|
function (_a) {
|
|
1114
|
-
var
|
|
1154
|
+
var signal = _a.signal;
|
|
1115
1155
|
return pushStrategy({
|
|
1116
1156
|
token: urlResponse.token,
|
|
1117
1157
|
pusherKey: pusherKey,
|
|
1118
|
-
stopRace: stopRace,
|
|
1119
1158
|
signal: signal,
|
|
1120
1159
|
onProgress: onProgress
|
|
1121
1160
|
});
|
|
@@ -1134,6 +1173,7 @@ var uploadFromUrl = function (sourceUrl, _a) {
|
|
|
1134
1173
|
publicKey: publicKey,
|
|
1135
1174
|
baseURL: baseURL,
|
|
1136
1175
|
integration: integration,
|
|
1176
|
+
userAgent: userAgent,
|
|
1137
1177
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1138
1178
|
onProgress: onProgress,
|
|
1139
1179
|
signal: signal
|
|
@@ -1143,13 +1183,14 @@ var uploadFromUrl = function (sourceUrl, _a) {
|
|
|
1143
1183
|
};
|
|
1144
1184
|
|
|
1145
1185
|
var uploadFromUploaded = function (uuid, _a) {
|
|
1146
|
-
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;
|
|
1147
1187
|
return info(uuid, {
|
|
1148
1188
|
publicKey: publicKey,
|
|
1149
1189
|
baseURL: baseURL,
|
|
1150
1190
|
signal: signal,
|
|
1151
1191
|
source: source,
|
|
1152
1192
|
integration: integration,
|
|
1193
|
+
userAgent: userAgent,
|
|
1153
1194
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1154
1195
|
})
|
|
1155
1196
|
.then(function (fileInfo) { return new UploadcareFile(fileInfo, { baseCDN: baseCDN, fileName: fileName }); })
|
|
@@ -1203,6 +1244,18 @@ var isMultipart = function (fileSize, multipartMinFileSize) {
|
|
|
1203
1244
|
return fileSize >= multipartMinFileSize;
|
|
1204
1245
|
};
|
|
1205
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
|
+
|
|
1206
1259
|
var runWithConcurrency = function (concurrency, tasks) {
|
|
1207
1260
|
return new Promise(function (resolve, reject) {
|
|
1208
1261
|
var results = [];
|
|
@@ -1238,11 +1291,6 @@ var runWithConcurrency = function (concurrency, tasks) {
|
|
|
1238
1291
|
});
|
|
1239
1292
|
};
|
|
1240
1293
|
|
|
1241
|
-
var getChunk = function (file, index, fileSize, chunkSize) {
|
|
1242
|
-
var start = chunkSize * index;
|
|
1243
|
-
var end = Math.min(start + chunkSize, fileSize);
|
|
1244
|
-
return file.slice(start, end);
|
|
1245
|
-
};
|
|
1246
1294
|
var uploadPartWithRetry = function (chunk, url, _a) {
|
|
1247
1295
|
var publicKey = _a.publicKey, onProgress = _a.onProgress, signal = _a.signal, integration = _a.integration, multipartMaxAttempts = _a.multipartMaxAttempts;
|
|
1248
1296
|
return retrier(function (_a) {
|
|
@@ -1261,7 +1309,7 @@ var uploadPartWithRetry = function (chunk, url, _a) {
|
|
|
1261
1309
|
});
|
|
1262
1310
|
};
|
|
1263
1311
|
var uploadMultipart = function (file, _a) {
|
|
1264
|
-
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;
|
|
1265
1313
|
var size = fileSize || getFileSize(file);
|
|
1266
1314
|
var progressValues;
|
|
1267
1315
|
var createProgressHandler = function (size, index) {
|
|
@@ -1290,14 +1338,16 @@ var uploadMultipart = function (file, _a) {
|
|
|
1290
1338
|
signal: signal,
|
|
1291
1339
|
source: source,
|
|
1292
1340
|
integration: integration,
|
|
1341
|
+
userAgent: userAgent,
|
|
1293
1342
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1294
1343
|
})
|
|
1295
1344
|
.then(function (_a) {
|
|
1296
1345
|
var uuid = _a.uuid, parts = _a.parts;
|
|
1346
|
+
var getChunk = prepareChunks(file, size, multipartChunkSize);
|
|
1297
1347
|
return Promise.all([
|
|
1298
1348
|
uuid,
|
|
1299
1349
|
runWithConcurrency(maxConcurrentRequests, parts.map(function (url, index) { return function () {
|
|
1300
|
-
return uploadPartWithRetry(getChunk(
|
|
1350
|
+
return uploadPartWithRetry(getChunk(index), url, {
|
|
1301
1351
|
publicKey: publicKey,
|
|
1302
1352
|
onProgress: createProgressHandler(parts.length, index),
|
|
1303
1353
|
signal: signal,
|
|
@@ -1314,6 +1364,7 @@ var uploadMultipart = function (file, _a) {
|
|
|
1314
1364
|
baseURL: baseURL,
|
|
1315
1365
|
source: source,
|
|
1316
1366
|
integration: integration,
|
|
1367
|
+
userAgent: userAgent,
|
|
1317
1368
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1318
1369
|
});
|
|
1319
1370
|
})
|
|
@@ -1328,6 +1379,7 @@ var uploadMultipart = function (file, _a) {
|
|
|
1328
1379
|
baseURL: baseURL,
|
|
1329
1380
|
source: source,
|
|
1330
1381
|
integration: integration,
|
|
1382
|
+
userAgent: userAgent,
|
|
1331
1383
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1332
1384
|
onProgress: onProgress,
|
|
1333
1385
|
signal: signal
|
|
@@ -1341,7 +1393,7 @@ var uploadMultipart = function (file, _a) {
|
|
|
1341
1393
|
* Uploads file from provided data.
|
|
1342
1394
|
*/
|
|
1343
1395
|
function uploadFile(data, _a) {
|
|
1344
|
-
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;
|
|
1345
1397
|
if (isFileData(data)) {
|
|
1346
1398
|
var fileSize = getFileSize(data);
|
|
1347
1399
|
if (isMultipart(fileSize)) {
|
|
@@ -1349,6 +1401,7 @@ function uploadFile(data, _a) {
|
|
|
1349
1401
|
publicKey: publicKey,
|
|
1350
1402
|
contentType: contentType,
|
|
1351
1403
|
multipartChunkSize: multipartChunkSize,
|
|
1404
|
+
multipartMaxAttempts: multipartMaxAttempts,
|
|
1352
1405
|
fileName: fileName,
|
|
1353
1406
|
baseURL: baseURL,
|
|
1354
1407
|
secureSignature: secureSignature,
|
|
@@ -1358,6 +1411,8 @@ function uploadFile(data, _a) {
|
|
|
1358
1411
|
onProgress: onProgress,
|
|
1359
1412
|
source: source,
|
|
1360
1413
|
integration: integration,
|
|
1414
|
+
userAgent: userAgent,
|
|
1415
|
+
maxConcurrentRequests: maxConcurrentRequests,
|
|
1361
1416
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1362
1417
|
baseCDN: baseCDN
|
|
1363
1418
|
});
|
|
@@ -1373,6 +1428,7 @@ function uploadFile(data, _a) {
|
|
|
1373
1428
|
onProgress: onProgress,
|
|
1374
1429
|
source: source,
|
|
1375
1430
|
integration: integration,
|
|
1431
|
+
userAgent: userAgent,
|
|
1376
1432
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1377
1433
|
baseCDN: baseCDN
|
|
1378
1434
|
});
|
|
@@ -1382,6 +1438,9 @@ function uploadFile(data, _a) {
|
|
|
1382
1438
|
publicKey: publicKey,
|
|
1383
1439
|
fileName: fileName,
|
|
1384
1440
|
baseURL: baseURL,
|
|
1441
|
+
baseCDN: baseCDN,
|
|
1442
|
+
checkForUrlDuplicates: checkForUrlDuplicates,
|
|
1443
|
+
saveUrlForRecurrentUploads: saveUrlForRecurrentUploads,
|
|
1385
1444
|
secureSignature: secureSignature,
|
|
1386
1445
|
secureExpire: secureExpire,
|
|
1387
1446
|
store: store,
|
|
@@ -1389,8 +1448,9 @@ function uploadFile(data, _a) {
|
|
|
1389
1448
|
onProgress: onProgress,
|
|
1390
1449
|
source: source,
|
|
1391
1450
|
integration: integration,
|
|
1451
|
+
userAgent: userAgent,
|
|
1392
1452
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1393
|
-
|
|
1453
|
+
pusherKey: pusherKey
|
|
1394
1454
|
});
|
|
1395
1455
|
}
|
|
1396
1456
|
if (isUuid(data)) {
|
|
@@ -1402,6 +1462,7 @@ function uploadFile(data, _a) {
|
|
|
1402
1462
|
onProgress: onProgress,
|
|
1403
1463
|
source: source,
|
|
1404
1464
|
integration: integration,
|
|
1465
|
+
userAgent: userAgent,
|
|
1405
1466
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1406
1467
|
baseCDN: baseCDN
|
|
1407
1468
|
});
|
|
@@ -1416,8 +1477,7 @@ var UploadcareGroup = /** @class */ (function () {
|
|
|
1416
1477
|
this.filesCount = groupInfo.filesCount;
|
|
1417
1478
|
this.totalSize = Object.values(groupInfo.files).reduce(function (acc, file) { return acc + file.size; }, 0);
|
|
1418
1479
|
this.isStored = !!groupInfo.datetimeStored;
|
|
1419
|
-
this.isImage = !!Object.values(groupInfo.files).filter(function (file) { return file.isImage; })
|
|
1420
|
-
.length;
|
|
1480
|
+
this.isImage = !!Object.values(groupInfo.files).filter(function (file) { return file.isImage; }).length;
|
|
1421
1481
|
this.cdnUrl = groupInfo.cdnUrl;
|
|
1422
1482
|
this.files = files;
|
|
1423
1483
|
this.createdAt = groupInfo.datetimeCreated;
|
|
@@ -1464,7 +1524,7 @@ var isUrlArray = function (data) {
|
|
|
1464
1524
|
};
|
|
1465
1525
|
|
|
1466
1526
|
function uploadFileGroup(data, _a) {
|
|
1467
|
-
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;
|
|
1468
1528
|
if (!isFileDataArray(data) && !isUrlArray(data) && !isUuidArray(data)) {
|
|
1469
1529
|
throw new TypeError("Group uploading from \"" + data + "\" is not supported");
|
|
1470
1530
|
}
|
|
@@ -1497,6 +1557,7 @@ function uploadFileGroup(data, _a) {
|
|
|
1497
1557
|
onProgress: createProgressHandler(filesCount, index),
|
|
1498
1558
|
source: source,
|
|
1499
1559
|
integration: integration,
|
|
1560
|
+
userAgent: userAgent,
|
|
1500
1561
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1501
1562
|
contentType: contentType,
|
|
1502
1563
|
multipartChunkSize: multipartChunkSize,
|
|
@@ -1520,6 +1581,7 @@ function uploadFileGroup(data, _a) {
|
|
|
1520
1581
|
signal: signal,
|
|
1521
1582
|
source: source,
|
|
1522
1583
|
integration: integration,
|
|
1584
|
+
userAgent: userAgent,
|
|
1523
1585
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1524
1586
|
}).then(function (groupInfo) { return new UploadcareGroup(groupInfo, filesInGroup); });
|
|
1525
1587
|
});
|
|
@@ -1588,9 +1650,7 @@ var UploadClient = /** @class */ (function () {
|
|
|
1588
1650
|
|
|
1589
1651
|
Object.defineProperty(exports, 'AbortController', {
|
|
1590
1652
|
enumerable: true,
|
|
1591
|
-
get: function () {
|
|
1592
|
-
return abortController.AbortController;
|
|
1593
|
-
}
|
|
1653
|
+
get: function () { return abortController.AbortController; }
|
|
1594
1654
|
});
|
|
1595
1655
|
exports.UploadClient = UploadClient;
|
|
1596
1656
|
exports.base = base;
|
|
@@ -1602,5 +1662,9 @@ exports.info = info;
|
|
|
1602
1662
|
exports.multipartComplete = multipartComplete;
|
|
1603
1663
|
exports.multipartStart = multipartStart;
|
|
1604
1664
|
exports.multipartUpload = multipartUpload;
|
|
1665
|
+
exports.uploadBase = uploadFromObject;
|
|
1605
1666
|
exports.uploadFile = uploadFile;
|
|
1606
1667
|
exports.uploadFileGroup = uploadFileGroup;
|
|
1668
|
+
exports.uploadFromUploaded = uploadFromUploaded;
|
|
1669
|
+
exports.uploadFromUrl = uploadFromUrl;
|
|
1670
|
+
exports.uploadMultipart = uploadMultipart;
|