@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.browser.cjs
CHANGED
|
@@ -2,14 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
/*globals self, window */
|
|
6
|
-
|
|
7
|
-
/*eslint-disable @mysticatea/prettier */
|
|
8
|
-
const { AbortController, AbortSignal } =
|
|
9
|
-
typeof self !== "undefined" ? self :
|
|
10
|
-
typeof window !== "undefined" ? window :
|
|
11
|
-
/* otherwise */ undefined;
|
|
12
|
-
|
|
13
5
|
/*! *****************************************************************************
|
|
14
6
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
15
7
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
@@ -58,32 +50,13 @@ function __spreadArrays() {
|
|
|
58
50
|
return r;
|
|
59
51
|
}
|
|
60
52
|
|
|
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
53
|
var UploadClientError = /** @class */ (function (_super) {
|
|
82
54
|
__extends(UploadClientError, _super);
|
|
83
|
-
function UploadClientError(message, request, response, headers) {
|
|
55
|
+
function UploadClientError(message, code, request, response, headers) {
|
|
84
56
|
var _this = _super.call(this) || this;
|
|
85
57
|
_this.name = 'UploadClientError';
|
|
86
58
|
_this.message = message;
|
|
59
|
+
_this.code = code;
|
|
87
60
|
_this.request = request;
|
|
88
61
|
_this.response = response;
|
|
89
62
|
_this.headers = headers;
|
|
@@ -191,20 +164,27 @@ var request = function (_a) {
|
|
|
191
164
|
});
|
|
192
165
|
};
|
|
193
166
|
|
|
167
|
+
function identity(obj) {
|
|
168
|
+
return obj;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
var transformFile = identity;
|
|
194
172
|
var getFormData = (function () { return new FormData(); });
|
|
195
173
|
|
|
174
|
+
var isFileTuple = function (tuple) {
|
|
175
|
+
return tuple[0] === 'file';
|
|
176
|
+
};
|
|
196
177
|
function buildFormData(body) {
|
|
197
178
|
var formData = getFormData();
|
|
198
|
-
var isTriple = function (tuple) {
|
|
199
|
-
return tuple[0] === 'file';
|
|
200
|
-
};
|
|
201
179
|
var _loop_1 = function (tuple) {
|
|
202
180
|
if (Array.isArray(tuple[1])) {
|
|
203
181
|
// refactor this
|
|
204
182
|
tuple[1].forEach(function (val) { return val && formData.append(tuple[0] + '[]', "" + val); });
|
|
205
183
|
}
|
|
206
|
-
else if (
|
|
207
|
-
|
|
184
|
+
else if (isFileTuple(tuple)) {
|
|
185
|
+
var name_1 = tuple[2];
|
|
186
|
+
var file = transformFile(tuple[1]); // lgtm[js/superfluous-trailing-arguments]
|
|
187
|
+
formData.append(tuple[0], file, name_1);
|
|
208
188
|
}
|
|
209
189
|
else if (tuple[1] != null) {
|
|
210
190
|
formData.append(tuple[0], "" + tuple[1]);
|
|
@@ -242,16 +222,53 @@ var getUrl = function (base, path, query) {
|
|
|
242
222
|
.join('');
|
|
243
223
|
};
|
|
244
224
|
|
|
245
|
-
|
|
225
|
+
/*
|
|
226
|
+
Settings for future support:
|
|
227
|
+
parallelDirectUploads: 10,
|
|
228
|
+
*/
|
|
229
|
+
var defaultSettings = {
|
|
230
|
+
baseCDN: 'https://ucarecdn.com',
|
|
231
|
+
baseURL: 'https://upload.uploadcare.com',
|
|
232
|
+
maxContentLength: 50 * 1024 * 1024,
|
|
233
|
+
retryThrottledRequestMaxTimes: 1,
|
|
234
|
+
multipartMinFileSize: 25 * 1024 * 1024,
|
|
235
|
+
multipartChunkSize: 5 * 1024 * 1024,
|
|
236
|
+
multipartMinLastPartSize: 1024 * 1024,
|
|
237
|
+
maxConcurrentRequests: 4,
|
|
238
|
+
multipartMaxAttempts: 3,
|
|
239
|
+
pollingTimeoutMilliseconds: 10000,
|
|
240
|
+
pusherKey: '79ae88bd931ea68464d9'
|
|
241
|
+
};
|
|
242
|
+
var defaultContentType = 'application/octet-stream';
|
|
243
|
+
var defaultFilename = 'original';
|
|
244
|
+
|
|
245
|
+
var version = '2.0.0';
|
|
246
246
|
|
|
247
247
|
/**
|
|
248
248
|
* Returns User Agent based on version and settings.
|
|
249
249
|
*/
|
|
250
250
|
function getUserAgent(_a) {
|
|
251
|
-
var _b = _a === void 0 ? {} : _a, _c = _b.publicKey, publicKey = _c === void 0 ? '' : _c, _d = _b.integration, integration = _d === void 0 ? '' : _d;
|
|
252
|
-
var
|
|
253
|
-
var
|
|
254
|
-
|
|
251
|
+
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;
|
|
252
|
+
var libraryName = 'UploadcareUploadClient';
|
|
253
|
+
var libraryVersion = version;
|
|
254
|
+
var languageName = 'JavaScript';
|
|
255
|
+
if (typeof userAgent === 'string') {
|
|
256
|
+
return userAgent;
|
|
257
|
+
}
|
|
258
|
+
if (typeof userAgent === 'function') {
|
|
259
|
+
return userAgent({
|
|
260
|
+
publicKey: publicKey,
|
|
261
|
+
libraryName: libraryName,
|
|
262
|
+
libraryVersion: libraryVersion,
|
|
263
|
+
languageName: languageName,
|
|
264
|
+
integration: integration
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
var mainInfo = [libraryName, libraryVersion, publicKey]
|
|
268
|
+
.filter(Boolean)
|
|
269
|
+
.join('/');
|
|
270
|
+
var additionInfo = [languageName, integration].filter(Boolean).join('; ');
|
|
271
|
+
return mainInfo + " (" + additionInfo + ")";
|
|
255
272
|
}
|
|
256
273
|
|
|
257
274
|
var SEPARATOR = /\W|_/g;
|
|
@@ -314,7 +331,7 @@ function retrier(fn, options) {
|
|
|
314
331
|
return runAttempt(fn);
|
|
315
332
|
}
|
|
316
333
|
|
|
317
|
-
var REQUEST_WAS_THROTTLED_CODE =
|
|
334
|
+
var REQUEST_WAS_THROTTLED_CODE = 'RequestThrottledError';
|
|
318
335
|
var DEFAULT_RETRY_AFTER_TIMEOUT = 15000;
|
|
319
336
|
function getTimeoutFromThrottledRequest(error) {
|
|
320
337
|
var headers = (error || {}).headers;
|
|
@@ -326,9 +343,8 @@ function retryIfThrottled(fn, retryThrottledMaxTimes) {
|
|
|
326
343
|
return retrier(function (_a) {
|
|
327
344
|
var attempt = _a.attempt, retry = _a.retry;
|
|
328
345
|
return fn().catch(function (error) {
|
|
329
|
-
var _a;
|
|
330
346
|
if ('response' in error &&
|
|
331
|
-
(
|
|
347
|
+
(error === null || error === void 0 ? void 0 : error.code) === REQUEST_WAS_THROTTLED_CODE &&
|
|
332
348
|
attempt < retryThrottledMaxTimes) {
|
|
333
349
|
return retry(getTimeoutFromThrottledRequest(error));
|
|
334
350
|
}
|
|
@@ -342,7 +358,7 @@ function retryIfThrottled(fn, retryThrottledMaxTimes) {
|
|
|
342
358
|
* Can be canceled and has progress.
|
|
343
359
|
*/
|
|
344
360
|
function base(file, _a) {
|
|
345
|
-
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;
|
|
361
|
+
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;
|
|
346
362
|
return retryIfThrottled(function () {
|
|
347
363
|
var _a;
|
|
348
364
|
return request({
|
|
@@ -351,7 +367,7 @@ function base(file, _a) {
|
|
|
351
367
|
jsonerrors: 1
|
|
352
368
|
}),
|
|
353
369
|
headers: {
|
|
354
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
370
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
355
371
|
},
|
|
356
372
|
data: buildFormData([
|
|
357
373
|
['file', file, (_a = fileName !== null && fileName !== void 0 ? fileName : file.name) !== null && _a !== void 0 ? _a : defaultFilename],
|
|
@@ -370,39 +386,7 @@ function base(file, _a) {
|
|
|
370
386
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
371
387
|
var response = camelizeKeys(JSON.parse(data));
|
|
372
388
|
if ('error' in response) {
|
|
373
|
-
throw new UploadClientError(
|
|
374
|
-
}
|
|
375
|
-
else {
|
|
376
|
-
return response;
|
|
377
|
-
}
|
|
378
|
-
});
|
|
379
|
-
}, retryThrottledRequestMaxTimes);
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
/**
|
|
383
|
-
* Returns a JSON dictionary holding file info.
|
|
384
|
-
*/
|
|
385
|
-
/* eslint @typescript-eslint/camelcase: [2, {allow: ["pub_key", "file_id"]}] */
|
|
386
|
-
function info(uuid, _a) {
|
|
387
|
-
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;
|
|
388
|
-
return retryIfThrottled(function () {
|
|
389
|
-
return request({
|
|
390
|
-
method: 'GET',
|
|
391
|
-
headers: {
|
|
392
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
393
|
-
},
|
|
394
|
-
url: getUrl(baseURL, '/info/', {
|
|
395
|
-
jsonerrors: 1,
|
|
396
|
-
pub_key: publicKey,
|
|
397
|
-
file_id: uuid,
|
|
398
|
-
source: source
|
|
399
|
-
}),
|
|
400
|
-
signal: signal
|
|
401
|
-
}).then(function (_a) {
|
|
402
|
-
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
403
|
-
var response = camelizeKeys(JSON.parse(data));
|
|
404
|
-
if ('error' in response) {
|
|
405
|
-
throw new UploadClientError("[" + response.error.statusCode + "] " + response.error.content, request, response.error, headers);
|
|
389
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
406
390
|
}
|
|
407
391
|
else {
|
|
408
392
|
return response;
|
|
@@ -419,14 +403,13 @@ var TypeEnum;
|
|
|
419
403
|
/**
|
|
420
404
|
* Uploading files from URL.
|
|
421
405
|
*/
|
|
422
|
-
/* eslint @typescript-eslint/camelcase: [2, {allow: ["pub_key", "source_url", "check_URL_duplicates", "save_URL_duplicates"]}] */
|
|
423
406
|
function fromUrl(sourceUrl, _a) {
|
|
424
|
-
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;
|
|
407
|
+
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;
|
|
425
408
|
return retryIfThrottled(function () {
|
|
426
409
|
return request({
|
|
427
410
|
method: 'POST',
|
|
428
411
|
headers: {
|
|
429
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
412
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
430
413
|
},
|
|
431
414
|
url: getUrl(baseURL, '/from_url/', {
|
|
432
415
|
jsonerrors: 1,
|
|
@@ -445,7 +428,7 @@ function fromUrl(sourceUrl, _a) {
|
|
|
445
428
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
446
429
|
var response = camelizeKeys(JSON.parse(data));
|
|
447
430
|
if ('error' in response) {
|
|
448
|
-
throw new UploadClientError(
|
|
431
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
449
432
|
}
|
|
450
433
|
else {
|
|
451
434
|
return response;
|
|
@@ -469,12 +452,18 @@ var isErrorResponse = function (response) {
|
|
|
469
452
|
* Checking upload status and working with file tokens.
|
|
470
453
|
*/
|
|
471
454
|
function fromUrlStatus(token, _a) {
|
|
472
|
-
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;
|
|
455
|
+
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;
|
|
473
456
|
return retryIfThrottled(function () {
|
|
474
457
|
return request({
|
|
475
458
|
method: 'GET',
|
|
476
459
|
headers: publicKey
|
|
477
|
-
? {
|
|
460
|
+
? {
|
|
461
|
+
'X-UC-User-Agent': getUserAgent({
|
|
462
|
+
publicKey: publicKey,
|
|
463
|
+
integration: integration,
|
|
464
|
+
userAgent: userAgent
|
|
465
|
+
})
|
|
466
|
+
}
|
|
478
467
|
: undefined,
|
|
479
468
|
url: getUrl(baseURL, '/from_url/status/', {
|
|
480
469
|
jsonerrors: 1,
|
|
@@ -485,7 +474,7 @@ function fromUrlStatus(token, _a) {
|
|
|
485
474
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
486
475
|
var response = camelizeKeys(JSON.parse(data));
|
|
487
476
|
if ('error' in response && !isErrorResponse(response)) {
|
|
488
|
-
throw new UploadClientError(
|
|
477
|
+
throw new UploadClientError(response.error.content, undefined, request, response, headers);
|
|
489
478
|
}
|
|
490
479
|
else {
|
|
491
480
|
return response;
|
|
@@ -497,14 +486,13 @@ function fromUrlStatus(token, _a) {
|
|
|
497
486
|
/**
|
|
498
487
|
* Create files group.
|
|
499
488
|
*/
|
|
500
|
-
/* eslint @typescript-eslint/camelcase: [2, {allow: ["pub_key"]}] */
|
|
501
489
|
function group(uuids, _a) {
|
|
502
|
-
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;
|
|
490
|
+
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;
|
|
503
491
|
return retryIfThrottled(function () {
|
|
504
492
|
return request({
|
|
505
493
|
method: 'POST',
|
|
506
494
|
headers: {
|
|
507
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
495
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
508
496
|
},
|
|
509
497
|
url: getUrl(baseURL, '/group/', {
|
|
510
498
|
jsonerrors: 1,
|
|
@@ -520,7 +508,7 @@ function group(uuids, _a) {
|
|
|
520
508
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
521
509
|
var response = camelizeKeys(JSON.parse(data));
|
|
522
510
|
if ('error' in response) {
|
|
523
|
-
throw new UploadClientError(
|
|
511
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
524
512
|
}
|
|
525
513
|
else {
|
|
526
514
|
return response;
|
|
@@ -532,14 +520,13 @@ function group(uuids, _a) {
|
|
|
532
520
|
/**
|
|
533
521
|
* Get info about group.
|
|
534
522
|
*/
|
|
535
|
-
/* eslint @typescript-eslint/camelcase: [2, {allow: ["pub_key", "group_id"]}] */
|
|
536
523
|
function groupInfo(id, _a) {
|
|
537
|
-
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;
|
|
524
|
+
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;
|
|
538
525
|
return retryIfThrottled(function () {
|
|
539
526
|
return request({
|
|
540
527
|
method: 'GET',
|
|
541
528
|
headers: {
|
|
542
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
529
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
543
530
|
},
|
|
544
531
|
url: getUrl(baseURL, '/group/info/', {
|
|
545
532
|
jsonerrors: 1,
|
|
@@ -552,7 +539,7 @@ function groupInfo(id, _a) {
|
|
|
552
539
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
553
540
|
var response = camelizeKeys(JSON.parse(data));
|
|
554
541
|
if ('error' in response) {
|
|
555
|
-
throw new UploadClientError(
|
|
542
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
556
543
|
}
|
|
557
544
|
else {
|
|
558
545
|
return response;
|
|
@@ -562,38 +549,30 @@ function groupInfo(id, _a) {
|
|
|
562
549
|
}
|
|
563
550
|
|
|
564
551
|
/**
|
|
565
|
-
*
|
|
552
|
+
* Returns a JSON dictionary holding file info.
|
|
566
553
|
*/
|
|
567
|
-
function
|
|
568
|
-
var publicKey = _a.publicKey,
|
|
554
|
+
function info(uuid, _a) {
|
|
555
|
+
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
556
|
return retryIfThrottled(function () {
|
|
570
557
|
return request({
|
|
571
|
-
method: '
|
|
572
|
-
url: getUrl(baseURL, '/multipart/start/', { jsonerrors: 1 }),
|
|
558
|
+
method: 'GET',
|
|
573
559
|
headers: {
|
|
574
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
560
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
575
561
|
},
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
['UPLOADCARE_PUB_KEY', publicKey],
|
|
583
|
-
['signature', secureSignature],
|
|
584
|
-
['expire', secureExpire],
|
|
585
|
-
['source', source]
|
|
586
|
-
]),
|
|
562
|
+
url: getUrl(baseURL, '/info/', {
|
|
563
|
+
jsonerrors: 1,
|
|
564
|
+
pub_key: publicKey,
|
|
565
|
+
file_id: uuid,
|
|
566
|
+
source: source
|
|
567
|
+
}),
|
|
587
568
|
signal: signal
|
|
588
569
|
}).then(function (_a) {
|
|
589
570
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
590
571
|
var response = camelizeKeys(JSON.parse(data));
|
|
591
572
|
if ('error' in response) {
|
|
592
|
-
throw new UploadClientError(
|
|
573
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
593
574
|
}
|
|
594
575
|
else {
|
|
595
|
-
// convert to array
|
|
596
|
-
response.parts = Object.keys(response.parts).map(function (key) { return response.parts[key]; });
|
|
597
576
|
return response;
|
|
598
577
|
}
|
|
599
578
|
});
|
|
@@ -601,20 +580,26 @@ function multipartStart(size, _a) {
|
|
|
601
580
|
}
|
|
602
581
|
|
|
603
582
|
/**
|
|
604
|
-
*
|
|
583
|
+
* Start multipart uploading.
|
|
605
584
|
*/
|
|
606
|
-
function
|
|
607
|
-
var publicKey = _a.publicKey, _b = _a.
|
|
585
|
+
function multipartStart(size, _a) {
|
|
586
|
+
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;
|
|
608
587
|
return retryIfThrottled(function () {
|
|
609
588
|
return request({
|
|
610
589
|
method: 'POST',
|
|
611
|
-
url: getUrl(baseURL, '/multipart/
|
|
590
|
+
url: getUrl(baseURL, '/multipart/start/', { jsonerrors: 1 }),
|
|
612
591
|
headers: {
|
|
613
|
-
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration })
|
|
592
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
614
593
|
},
|
|
615
594
|
data: buildFormData([
|
|
616
|
-
['
|
|
595
|
+
['filename', fileName !== null && fileName !== void 0 ? fileName : defaultFilename],
|
|
596
|
+
['size', size],
|
|
597
|
+
['content_type', contentType !== null && contentType !== void 0 ? contentType : defaultContentType],
|
|
598
|
+
['part_size', multipartChunkSize],
|
|
599
|
+
['UPLOADCARE_STORE', store ? '' : 'auto'],
|
|
617
600
|
['UPLOADCARE_PUB_KEY', publicKey],
|
|
601
|
+
['signature', secureSignature],
|
|
602
|
+
['expire', secureExpire],
|
|
618
603
|
['source', source]
|
|
619
604
|
]),
|
|
620
605
|
signal: signal
|
|
@@ -622,9 +607,11 @@ function multipartComplete(uuid, _a) {
|
|
|
622
607
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
623
608
|
var response = camelizeKeys(JSON.parse(data));
|
|
624
609
|
if ('error' in response) {
|
|
625
|
-
throw new UploadClientError(
|
|
610
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
626
611
|
}
|
|
627
612
|
else {
|
|
613
|
+
// convert to array
|
|
614
|
+
response.parts = Object.keys(response.parts).map(function (key) { return response.parts[key]; });
|
|
628
615
|
return response;
|
|
629
616
|
}
|
|
630
617
|
});
|
|
@@ -635,15 +622,10 @@ function multipartComplete(uuid, _a) {
|
|
|
635
622
|
* Complete multipart uploading.
|
|
636
623
|
*/
|
|
637
624
|
function multipartUpload(part, url, _a) {
|
|
638
|
-
var
|
|
625
|
+
var signal = _a.signal, onProgress = _a.onProgress;
|
|
639
626
|
return request({
|
|
640
627
|
method: 'PUT',
|
|
641
628
|
url: url,
|
|
642
|
-
headers: {
|
|
643
|
-
'X-UC-User-Agent': publicKey
|
|
644
|
-
? getUserAgent({ publicKey: publicKey, integration: integration })
|
|
645
|
-
: undefined
|
|
646
|
-
},
|
|
647
629
|
data: part,
|
|
648
630
|
onProgress: onProgress,
|
|
649
631
|
signal: signal
|
|
@@ -660,6 +642,37 @@ function multipartUpload(part, url, _a) {
|
|
|
660
642
|
});
|
|
661
643
|
}
|
|
662
644
|
|
|
645
|
+
/**
|
|
646
|
+
* Complete multipart uploading.
|
|
647
|
+
*/
|
|
648
|
+
function multipartComplete(uuid, _a) {
|
|
649
|
+
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;
|
|
650
|
+
return retryIfThrottled(function () {
|
|
651
|
+
return request({
|
|
652
|
+
method: 'POST',
|
|
653
|
+
url: getUrl(baseURL, '/multipart/complete/', { jsonerrors: 1 }),
|
|
654
|
+
headers: {
|
|
655
|
+
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
656
|
+
},
|
|
657
|
+
data: buildFormData([
|
|
658
|
+
['uuid', uuid],
|
|
659
|
+
['UPLOADCARE_PUB_KEY', publicKey],
|
|
660
|
+
['source', source]
|
|
661
|
+
]),
|
|
662
|
+
signal: signal
|
|
663
|
+
}).then(function (_a) {
|
|
664
|
+
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
665
|
+
var response = camelizeKeys(JSON.parse(data));
|
|
666
|
+
if ('error' in response) {
|
|
667
|
+
throw new UploadClientError(response.error.content, response.error.errorCode, request, response, headers);
|
|
668
|
+
}
|
|
669
|
+
else {
|
|
670
|
+
return response;
|
|
671
|
+
}
|
|
672
|
+
});
|
|
673
|
+
}, retryThrottledRequestMaxTimes);
|
|
674
|
+
}
|
|
675
|
+
|
|
663
676
|
var UploadcareFile = /** @class */ (function () {
|
|
664
677
|
function UploadcareFile(fileInfo, _a) {
|
|
665
678
|
var baseCDN = _a.baseCDN, defaultEffects = _a.defaultEffects, fileName = _a.fileName;
|
|
@@ -667,6 +680,7 @@ var UploadcareFile = /** @class */ (function () {
|
|
|
667
680
|
this.size = null;
|
|
668
681
|
this.isStored = null;
|
|
669
682
|
this.isImage = null;
|
|
683
|
+
this.mimeType = null;
|
|
670
684
|
this.cdnUrl = null;
|
|
671
685
|
this.cdnUrlModifiers = null;
|
|
672
686
|
this.originalUrl = null;
|
|
@@ -685,6 +699,7 @@ var UploadcareFile = /** @class */ (function () {
|
|
|
685
699
|
this.size = fileInfo.size;
|
|
686
700
|
this.isStored = fileInfo.isStored;
|
|
687
701
|
this.isImage = fileInfo.isImage;
|
|
702
|
+
this.mimeType = fileInfo.mimeType;
|
|
688
703
|
this.cdnUrl = cdnUrl;
|
|
689
704
|
this.cdnUrlModifiers = cdnUrlModifiers;
|
|
690
705
|
this.originalUrl = originalUrl;
|
|
@@ -726,7 +741,7 @@ var poll = function (_a) {
|
|
|
726
741
|
};
|
|
727
742
|
|
|
728
743
|
function isReadyPoll(_a) {
|
|
729
|
-
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;
|
|
744
|
+
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;
|
|
730
745
|
return poll({
|
|
731
746
|
check: function (signal) {
|
|
732
747
|
return info(file, {
|
|
@@ -735,6 +750,7 @@ function isReadyPoll(_a) {
|
|
|
735
750
|
signal: signal,
|
|
736
751
|
source: source,
|
|
737
752
|
integration: integration,
|
|
753
|
+
userAgent: userAgent,
|
|
738
754
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
739
755
|
}).then(function (response) {
|
|
740
756
|
if (response.isReady) {
|
|
@@ -749,7 +765,7 @@ function isReadyPoll(_a) {
|
|
|
749
765
|
}
|
|
750
766
|
|
|
751
767
|
var uploadFromObject = function (file, _a) {
|
|
752
|
-
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;
|
|
768
|
+
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;
|
|
753
769
|
return base(file, {
|
|
754
770
|
publicKey: publicKey,
|
|
755
771
|
fileName: fileName,
|
|
@@ -761,6 +777,7 @@ var uploadFromObject = function (file, _a) {
|
|
|
761
777
|
onProgress: onProgress,
|
|
762
778
|
source: source,
|
|
763
779
|
integration: integration,
|
|
780
|
+
userAgent: userAgent,
|
|
764
781
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
765
782
|
})
|
|
766
783
|
.then(function (_a) {
|
|
@@ -771,6 +788,7 @@ var uploadFromObject = function (file, _a) {
|
|
|
771
788
|
baseURL: baseURL,
|
|
772
789
|
source: source,
|
|
773
790
|
integration: integration,
|
|
791
|
+
userAgent: userAgent,
|
|
774
792
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
775
793
|
onProgress: onProgress,
|
|
776
794
|
signal: signal
|
|
@@ -779,6 +797,14 @@ var uploadFromObject = function (file, _a) {
|
|
|
779
797
|
.then(function (fileInfo) { return new UploadcareFile(fileInfo, { baseCDN: baseCDN }); });
|
|
780
798
|
};
|
|
781
799
|
|
|
800
|
+
/*globals self, window */
|
|
801
|
+
|
|
802
|
+
/*eslint-disable @mysticatea/prettier */
|
|
803
|
+
const { AbortController, AbortSignal } =
|
|
804
|
+
typeof self !== "undefined" ? self :
|
|
805
|
+
typeof window !== "undefined" ? window :
|
|
806
|
+
/* otherwise */ undefined;
|
|
807
|
+
|
|
782
808
|
var race = function (fns, _a) {
|
|
783
809
|
var signal = (_a === void 0 ? {} : _a).signal;
|
|
784
810
|
var lastError = null;
|
|
@@ -874,7 +900,7 @@ var Pusher = /** @class */ (function () {
|
|
|
874
900
|
_this.queue = [];
|
|
875
901
|
});
|
|
876
902
|
this.ws.addEventListener('message', function (e) {
|
|
877
|
-
var data = JSON.parse(e.data);
|
|
903
|
+
var data = JSON.parse(e.data.toString());
|
|
878
904
|
switch (data.event) {
|
|
879
905
|
case 'pusher:connection_established': {
|
|
880
906
|
_this.emmitter.emit('connected', undefined);
|
|
@@ -970,19 +996,20 @@ var preconnect = function (key) {
|
|
|
970
996
|
};
|
|
971
997
|
|
|
972
998
|
function pollStrategy(_a) {
|
|
973
|
-
var token = _a.token, publicKey = _a.publicKey, baseURL = _a.baseURL, integration = _a.integration, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, onProgress = _a.onProgress, signal = _a.signal;
|
|
999
|
+
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;
|
|
974
1000
|
return poll({
|
|
975
1001
|
check: function (signal) {
|
|
976
1002
|
return fromUrlStatus(token, {
|
|
977
1003
|
publicKey: publicKey,
|
|
978
1004
|
baseURL: baseURL,
|
|
979
1005
|
integration: integration,
|
|
1006
|
+
userAgent: userAgent,
|
|
980
1007
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
981
1008
|
signal: signal
|
|
982
1009
|
}).then(function (response) {
|
|
983
1010
|
switch (response.status) {
|
|
984
1011
|
case Status.Error: {
|
|
985
|
-
return new UploadClientError(response.error);
|
|
1012
|
+
return new UploadClientError(response.error, response.errorCode);
|
|
986
1013
|
}
|
|
987
1014
|
case Status.Waiting: {
|
|
988
1015
|
return false;
|
|
@@ -1010,7 +1037,7 @@ function pollStrategy(_a) {
|
|
|
1010
1037
|
});
|
|
1011
1038
|
}
|
|
1012
1039
|
var pushStrategy = function (_a) {
|
|
1013
|
-
var token = _a.token, pusherKey = _a.pusherKey, signal = _a.signal,
|
|
1040
|
+
var token = _a.token, pusherKey = _a.pusherKey, signal = _a.signal, onProgress = _a.onProgress;
|
|
1014
1041
|
return new Promise(function (resolve, reject) {
|
|
1015
1042
|
var pusher = getPusher(pusherKey);
|
|
1016
1043
|
var unsubErrorHandler = pusher.onError(reject);
|
|
@@ -1020,10 +1047,9 @@ var pushStrategy = function (_a) {
|
|
|
1020
1047
|
};
|
|
1021
1048
|
onCancel(signal, function () {
|
|
1022
1049
|
destroy();
|
|
1023
|
-
reject(cancelError('
|
|
1050
|
+
reject(cancelError('pusher cancelled'));
|
|
1024
1051
|
});
|
|
1025
1052
|
pusher.subscribe(token, function (result) {
|
|
1026
|
-
stopRace();
|
|
1027
1053
|
switch (result.status) {
|
|
1028
1054
|
case Status.Progress: {
|
|
1029
1055
|
if (onProgress) {
|
|
@@ -1040,14 +1066,14 @@ var pushStrategy = function (_a) {
|
|
|
1040
1066
|
}
|
|
1041
1067
|
case Status.Error: {
|
|
1042
1068
|
destroy();
|
|
1043
|
-
reject(new UploadClientError(result.msg));
|
|
1069
|
+
reject(new UploadClientError(result.msg, result.error_code));
|
|
1044
1070
|
}
|
|
1045
1071
|
}
|
|
1046
1072
|
});
|
|
1047
1073
|
});
|
|
1048
1074
|
};
|
|
1049
1075
|
var uploadFromUrl = function (sourceUrl, _a) {
|
|
1050
|
-
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;
|
|
1076
|
+
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;
|
|
1051
1077
|
return Promise.resolve(preconnect(pusherKey))
|
|
1052
1078
|
.then(function () {
|
|
1053
1079
|
return fromUrl(sourceUrl, {
|
|
@@ -1062,8 +1088,14 @@ var uploadFromUrl = function (sourceUrl, _a) {
|
|
|
1062
1088
|
signal: signal,
|
|
1063
1089
|
source: source,
|
|
1064
1090
|
integration: integration,
|
|
1091
|
+
userAgent: userAgent,
|
|
1065
1092
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1066
1093
|
});
|
|
1094
|
+
})
|
|
1095
|
+
.catch(function (error) {
|
|
1096
|
+
var pusher = getPusher(pusherKey);
|
|
1097
|
+
pusher === null || pusher === void 0 ? void 0 : pusher.disconnect();
|
|
1098
|
+
return Promise.reject(error);
|
|
1067
1099
|
})
|
|
1068
1100
|
.then(function (urlResponse) {
|
|
1069
1101
|
if (urlResponse.type === TypeEnum.FileInfo) {
|
|
@@ -1078,17 +1110,17 @@ var uploadFromUrl = function (sourceUrl, _a) {
|
|
|
1078
1110
|
publicKey: publicKey,
|
|
1079
1111
|
baseURL: baseURL,
|
|
1080
1112
|
integration: integration,
|
|
1113
|
+
userAgent: userAgent,
|
|
1081
1114
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1082
1115
|
onProgress: onProgress,
|
|
1083
1116
|
signal: signal
|
|
1084
1117
|
});
|
|
1085
1118
|
},
|
|
1086
1119
|
function (_a) {
|
|
1087
|
-
var
|
|
1120
|
+
var signal = _a.signal;
|
|
1088
1121
|
return pushStrategy({
|
|
1089
1122
|
token: urlResponse.token,
|
|
1090
1123
|
pusherKey: pusherKey,
|
|
1091
|
-
stopRace: stopRace,
|
|
1092
1124
|
signal: signal,
|
|
1093
1125
|
onProgress: onProgress
|
|
1094
1126
|
});
|
|
@@ -1107,6 +1139,7 @@ var uploadFromUrl = function (sourceUrl, _a) {
|
|
|
1107
1139
|
publicKey: publicKey,
|
|
1108
1140
|
baseURL: baseURL,
|
|
1109
1141
|
integration: integration,
|
|
1142
|
+
userAgent: userAgent,
|
|
1110
1143
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1111
1144
|
onProgress: onProgress,
|
|
1112
1145
|
signal: signal
|
|
@@ -1116,13 +1149,14 @@ var uploadFromUrl = function (sourceUrl, _a) {
|
|
|
1116
1149
|
};
|
|
1117
1150
|
|
|
1118
1151
|
var uploadFromUploaded = function (uuid, _a) {
|
|
1119
|
-
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;
|
|
1152
|
+
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;
|
|
1120
1153
|
return info(uuid, {
|
|
1121
1154
|
publicKey: publicKey,
|
|
1122
1155
|
baseURL: baseURL,
|
|
1123
1156
|
signal: signal,
|
|
1124
1157
|
source: source,
|
|
1125
1158
|
integration: integration,
|
|
1159
|
+
userAgent: userAgent,
|
|
1126
1160
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1127
1161
|
})
|
|
1128
1162
|
.then(function (fileInfo) { return new UploadcareFile(fileInfo, { baseCDN: baseCDN, fileName: fileName }); })
|
|
@@ -1176,6 +1210,18 @@ var isMultipart = function (fileSize, multipartMinFileSize) {
|
|
|
1176
1210
|
return fileSize >= multipartMinFileSize;
|
|
1177
1211
|
};
|
|
1178
1212
|
|
|
1213
|
+
var sliceChunk = function (file, index, fileSize, chunkSize) {
|
|
1214
|
+
var start = chunkSize * index;
|
|
1215
|
+
var end = Math.min(start + chunkSize, fileSize);
|
|
1216
|
+
return file.slice(start, end);
|
|
1217
|
+
};
|
|
1218
|
+
|
|
1219
|
+
function prepareChunks(file, fileSize, chunkSize) {
|
|
1220
|
+
return function (index) {
|
|
1221
|
+
return sliceChunk(file, index, fileSize, chunkSize);
|
|
1222
|
+
};
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1179
1225
|
var runWithConcurrency = function (concurrency, tasks) {
|
|
1180
1226
|
return new Promise(function (resolve, reject) {
|
|
1181
1227
|
var results = [];
|
|
@@ -1211,11 +1257,6 @@ var runWithConcurrency = function (concurrency, tasks) {
|
|
|
1211
1257
|
});
|
|
1212
1258
|
};
|
|
1213
1259
|
|
|
1214
|
-
var getChunk = function (file, index, fileSize, chunkSize) {
|
|
1215
|
-
var start = chunkSize * index;
|
|
1216
|
-
var end = Math.min(start + chunkSize, fileSize);
|
|
1217
|
-
return file.slice(start, end);
|
|
1218
|
-
};
|
|
1219
1260
|
var uploadPartWithRetry = function (chunk, url, _a) {
|
|
1220
1261
|
var publicKey = _a.publicKey, onProgress = _a.onProgress, signal = _a.signal, integration = _a.integration, multipartMaxAttempts = _a.multipartMaxAttempts;
|
|
1221
1262
|
return retrier(function (_a) {
|
|
@@ -1234,7 +1275,7 @@ var uploadPartWithRetry = function (chunk, url, _a) {
|
|
|
1234
1275
|
});
|
|
1235
1276
|
};
|
|
1236
1277
|
var uploadMultipart = function (file, _a) {
|
|
1237
|
-
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;
|
|
1278
|
+
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;
|
|
1238
1279
|
var size = fileSize || getFileSize(file);
|
|
1239
1280
|
var progressValues;
|
|
1240
1281
|
var createProgressHandler = function (size, index) {
|
|
@@ -1263,14 +1304,16 @@ var uploadMultipart = function (file, _a) {
|
|
|
1263
1304
|
signal: signal,
|
|
1264
1305
|
source: source,
|
|
1265
1306
|
integration: integration,
|
|
1307
|
+
userAgent: userAgent,
|
|
1266
1308
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1267
1309
|
})
|
|
1268
1310
|
.then(function (_a) {
|
|
1269
1311
|
var uuid = _a.uuid, parts = _a.parts;
|
|
1312
|
+
var getChunk = prepareChunks(file, size, multipartChunkSize);
|
|
1270
1313
|
return Promise.all([
|
|
1271
1314
|
uuid,
|
|
1272
1315
|
runWithConcurrency(maxConcurrentRequests, parts.map(function (url, index) { return function () {
|
|
1273
|
-
return uploadPartWithRetry(getChunk(
|
|
1316
|
+
return uploadPartWithRetry(getChunk(index), url, {
|
|
1274
1317
|
publicKey: publicKey,
|
|
1275
1318
|
onProgress: createProgressHandler(parts.length, index),
|
|
1276
1319
|
signal: signal,
|
|
@@ -1287,6 +1330,7 @@ var uploadMultipart = function (file, _a) {
|
|
|
1287
1330
|
baseURL: baseURL,
|
|
1288
1331
|
source: source,
|
|
1289
1332
|
integration: integration,
|
|
1333
|
+
userAgent: userAgent,
|
|
1290
1334
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1291
1335
|
});
|
|
1292
1336
|
})
|
|
@@ -1301,6 +1345,7 @@ var uploadMultipart = function (file, _a) {
|
|
|
1301
1345
|
baseURL: baseURL,
|
|
1302
1346
|
source: source,
|
|
1303
1347
|
integration: integration,
|
|
1348
|
+
userAgent: userAgent,
|
|
1304
1349
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1305
1350
|
onProgress: onProgress,
|
|
1306
1351
|
signal: signal
|
|
@@ -1314,7 +1359,7 @@ var uploadMultipart = function (file, _a) {
|
|
|
1314
1359
|
* Uploads file from provided data.
|
|
1315
1360
|
*/
|
|
1316
1361
|
function uploadFile(data, _a) {
|
|
1317
|
-
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,
|
|
1362
|
+
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;
|
|
1318
1363
|
if (isFileData(data)) {
|
|
1319
1364
|
var fileSize = getFileSize(data);
|
|
1320
1365
|
if (isMultipart(fileSize)) {
|
|
@@ -1322,6 +1367,7 @@ function uploadFile(data, _a) {
|
|
|
1322
1367
|
publicKey: publicKey,
|
|
1323
1368
|
contentType: contentType,
|
|
1324
1369
|
multipartChunkSize: multipartChunkSize,
|
|
1370
|
+
multipartMaxAttempts: multipartMaxAttempts,
|
|
1325
1371
|
fileName: fileName,
|
|
1326
1372
|
baseURL: baseURL,
|
|
1327
1373
|
secureSignature: secureSignature,
|
|
@@ -1331,6 +1377,8 @@ function uploadFile(data, _a) {
|
|
|
1331
1377
|
onProgress: onProgress,
|
|
1332
1378
|
source: source,
|
|
1333
1379
|
integration: integration,
|
|
1380
|
+
userAgent: userAgent,
|
|
1381
|
+
maxConcurrentRequests: maxConcurrentRequests,
|
|
1334
1382
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1335
1383
|
baseCDN: baseCDN
|
|
1336
1384
|
});
|
|
@@ -1346,6 +1394,7 @@ function uploadFile(data, _a) {
|
|
|
1346
1394
|
onProgress: onProgress,
|
|
1347
1395
|
source: source,
|
|
1348
1396
|
integration: integration,
|
|
1397
|
+
userAgent: userAgent,
|
|
1349
1398
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1350
1399
|
baseCDN: baseCDN
|
|
1351
1400
|
});
|
|
@@ -1355,6 +1404,9 @@ function uploadFile(data, _a) {
|
|
|
1355
1404
|
publicKey: publicKey,
|
|
1356
1405
|
fileName: fileName,
|
|
1357
1406
|
baseURL: baseURL,
|
|
1407
|
+
baseCDN: baseCDN,
|
|
1408
|
+
checkForUrlDuplicates: checkForUrlDuplicates,
|
|
1409
|
+
saveUrlForRecurrentUploads: saveUrlForRecurrentUploads,
|
|
1358
1410
|
secureSignature: secureSignature,
|
|
1359
1411
|
secureExpire: secureExpire,
|
|
1360
1412
|
store: store,
|
|
@@ -1362,8 +1414,9 @@ function uploadFile(data, _a) {
|
|
|
1362
1414
|
onProgress: onProgress,
|
|
1363
1415
|
source: source,
|
|
1364
1416
|
integration: integration,
|
|
1417
|
+
userAgent: userAgent,
|
|
1365
1418
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1366
|
-
|
|
1419
|
+
pusherKey: pusherKey
|
|
1367
1420
|
});
|
|
1368
1421
|
}
|
|
1369
1422
|
if (isUuid(data)) {
|
|
@@ -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
|
});
|
|
@@ -1389,8 +1443,7 @@ var UploadcareGroup = /** @class */ (function () {
|
|
|
1389
1443
|
this.filesCount = groupInfo.filesCount;
|
|
1390
1444
|
this.totalSize = Object.values(groupInfo.files).reduce(function (acc, file) { return acc + file.size; }, 0);
|
|
1391
1445
|
this.isStored = !!groupInfo.datetimeStored;
|
|
1392
|
-
this.isImage = !!Object.values(groupInfo.files).filter(function (file) { return file.isImage; })
|
|
1393
|
-
.length;
|
|
1446
|
+
this.isImage = !!Object.values(groupInfo.files).filter(function (file) { return file.isImage; }).length;
|
|
1394
1447
|
this.cdnUrl = groupInfo.cdnUrl;
|
|
1395
1448
|
this.files = files;
|
|
1396
1449
|
this.createdAt = groupInfo.datetimeCreated;
|
|
@@ -1437,7 +1490,7 @@ var isUrlArray = function (data) {
|
|
|
1437
1490
|
};
|
|
1438
1491
|
|
|
1439
1492
|
function uploadFileGroup(data, _a) {
|
|
1440
|
-
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;
|
|
1493
|
+
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;
|
|
1441
1494
|
if (!isFileDataArray(data) && !isUrlArray(data) && !isUuidArray(data)) {
|
|
1442
1495
|
throw new TypeError("Group uploading from \"" + data + "\" is not supported");
|
|
1443
1496
|
}
|
|
@@ -1470,6 +1523,7 @@ function uploadFileGroup(data, _a) {
|
|
|
1470
1523
|
onProgress: createProgressHandler(filesCount, index),
|
|
1471
1524
|
source: source,
|
|
1472
1525
|
integration: integration,
|
|
1526
|
+
userAgent: userAgent,
|
|
1473
1527
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1474
1528
|
contentType: contentType,
|
|
1475
1529
|
multipartChunkSize: multipartChunkSize,
|
|
@@ -1493,6 +1547,7 @@ function uploadFileGroup(data, _a) {
|
|
|
1493
1547
|
signal: signal,
|
|
1494
1548
|
source: source,
|
|
1495
1549
|
integration: integration,
|
|
1550
|
+
userAgent: userAgent,
|
|
1496
1551
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1497
1552
|
}).then(function (groupInfo) { return new UploadcareGroup(groupInfo, filesInGroup); });
|
|
1498
1553
|
});
|
|
@@ -1570,5 +1625,9 @@ exports.info = info;
|
|
|
1570
1625
|
exports.multipartComplete = multipartComplete;
|
|
1571
1626
|
exports.multipartStart = multipartStart;
|
|
1572
1627
|
exports.multipartUpload = multipartUpload;
|
|
1628
|
+
exports.uploadBase = uploadFromObject;
|
|
1573
1629
|
exports.uploadFile = uploadFile;
|
|
1574
1630
|
exports.uploadFileGroup = uploadFileGroup;
|
|
1631
|
+
exports.uploadFromUploaded = uploadFromUploaded;
|
|
1632
|
+
exports.uploadFromUrl = uploadFromUrl;
|
|
1633
|
+
exports.uploadMultipart = uploadMultipart;
|