@uploadcare/upload-client 3.0.0 → 3.1.2-alpha.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 +16 -0
- package/dist/index.browser.cjs +159 -95
- package/dist/index.browser.js +152 -90
- package/dist/index.cjs +164 -95
- package/dist/index.js +157 -90
- package/dist/types.d.ts +35 -8
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -215,31 +215,95 @@ function identity(obj) {
|
|
|
215
215
|
return obj;
|
|
216
216
|
}
|
|
217
217
|
|
|
218
|
+
var getFileOptions = function (_a) {
|
|
219
|
+
var name = _a.name, contentType = _a.contentType;
|
|
220
|
+
return [
|
|
221
|
+
{
|
|
222
|
+
filename: name,
|
|
223
|
+
contentType: contentType
|
|
224
|
+
}
|
|
225
|
+
];
|
|
226
|
+
};
|
|
218
227
|
var transformFile = identity;
|
|
219
228
|
var getFormData = (function () { return new NodeFormData__default["default"](); });
|
|
220
229
|
|
|
221
|
-
|
|
222
|
-
|
|
230
|
+
/**
|
|
231
|
+
* FileData type guard.
|
|
232
|
+
*/
|
|
233
|
+
var isFileData = function (data) {
|
|
234
|
+
return (data !== undefined &&
|
|
235
|
+
((typeof Blob !== 'undefined' && data instanceof Blob) ||
|
|
236
|
+
(typeof File !== 'undefined' && data instanceof File) ||
|
|
237
|
+
(typeof Buffer !== 'undefined' && data instanceof Buffer)));
|
|
223
238
|
};
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
239
|
+
/**
|
|
240
|
+
* Uuid type guard.
|
|
241
|
+
*/
|
|
242
|
+
var isUuid = function (data) {
|
|
243
|
+
var UUID_REGEX = '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}';
|
|
244
|
+
var regExp = new RegExp(UUID_REGEX);
|
|
245
|
+
return !isFileData(data) && regExp.test(data);
|
|
246
|
+
};
|
|
247
|
+
/**
|
|
248
|
+
* Url type guard.
|
|
249
|
+
*
|
|
250
|
+
* @param {NodeFile | BrowserFile | Url | Uuid} data
|
|
251
|
+
*/
|
|
252
|
+
var isUrl = function (data) {
|
|
253
|
+
var URL_REGEX = '^(?:\\w+:)?\\/\\/([^\\s\\.]+\\.\\S{2}|localhost[\\:?\\d]*)\\S*$';
|
|
254
|
+
var regExp = new RegExp(URL_REGEX);
|
|
255
|
+
return !isFileData(data) && regExp.test(data);
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
var isSimpleValue = function (value) {
|
|
259
|
+
return (typeof value === 'string' ||
|
|
260
|
+
typeof value === 'number' ||
|
|
261
|
+
typeof value === 'undefined');
|
|
262
|
+
};
|
|
263
|
+
var isObjectValue = function (value) {
|
|
264
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
265
|
+
};
|
|
266
|
+
var isFileValue = function (value) {
|
|
267
|
+
return !!value &&
|
|
268
|
+
typeof value === 'object' &&
|
|
269
|
+
'data' in value &&
|
|
270
|
+
isFileData(value.data);
|
|
271
|
+
};
|
|
272
|
+
function collectParams(params, inputKey, inputValue) {
|
|
273
|
+
if (isFileValue(inputValue)) {
|
|
274
|
+
var name_1 = inputValue.name, contentType = inputValue.contentType;
|
|
275
|
+
var file = transformFile(inputValue.data); // lgtm [js/superfluous-trailing-arguments]
|
|
276
|
+
var options = getFileOptions({ name: name_1, contentType: contentType });
|
|
277
|
+
params.push(__spreadArrays([inputKey, file], options));
|
|
278
|
+
}
|
|
279
|
+
else if (isObjectValue(inputValue)) {
|
|
280
|
+
for (var _i = 0, _a = Object.entries(inputValue); _i < _a.length; _i++) {
|
|
281
|
+
var _b = _a[_i], key = _b[0], value = _b[1];
|
|
282
|
+
if (typeof value !== 'undefined') {
|
|
283
|
+
params.push([inputKey + "[" + key + "]", String(value)]);
|
|
284
|
+
}
|
|
238
285
|
}
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
286
|
+
}
|
|
287
|
+
else if (isSimpleValue(inputValue) && inputValue) {
|
|
288
|
+
params.push([inputKey, inputValue.toString()]);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
function getFormDataParams(options) {
|
|
292
|
+
var params = [];
|
|
293
|
+
for (var _i = 0, _a = Object.entries(options); _i < _a.length; _i++) {
|
|
294
|
+
var _b = _a[_i], key = _b[0], value = _b[1];
|
|
295
|
+
collectParams(params, key, value);
|
|
296
|
+
}
|
|
297
|
+
return params;
|
|
298
|
+
}
|
|
299
|
+
function buildFormData(options) {
|
|
300
|
+
var formData = getFormData();
|
|
301
|
+
var paramsList = getFormDataParams(options);
|
|
302
|
+
for (var _i = 0, paramsList_1 = paramsList; _i < paramsList_1.length; _i++) {
|
|
303
|
+
var params = paramsList_1[_i];
|
|
304
|
+
var key = params[0], value = params[1], options_1 = params.slice(2);
|
|
305
|
+
// node form-data has another signature for append
|
|
306
|
+
formData.append.apply(formData, __spreadArrays([key, value], options_1));
|
|
243
307
|
}
|
|
244
308
|
return formData;
|
|
245
309
|
}
|
|
@@ -247,13 +311,26 @@ function buildFormData(body) {
|
|
|
247
311
|
var serializePair = function (key, value) {
|
|
248
312
|
return typeof value !== 'undefined' ? key + "=" + encodeURIComponent(value) : null;
|
|
249
313
|
};
|
|
314
|
+
// TODO: generalize value transforming logic and use it here and inside `buildFormData`
|
|
250
315
|
var createQuery = function (query) {
|
|
251
316
|
return Object.entries(query)
|
|
252
317
|
.reduce(function (params, _a) {
|
|
253
318
|
var key = _a[0], value = _a[1];
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
319
|
+
var param;
|
|
320
|
+
if (typeof value === 'object' && !Array.isArray(value)) {
|
|
321
|
+
param = Object.entries(value)
|
|
322
|
+
.filter(function (entry) { return typeof entry[1] !== 'undefined'; })
|
|
323
|
+
.map(function (entry) {
|
|
324
|
+
return serializePair(key + "[" + entry[0] + "]", String(entry[1]));
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
else if (Array.isArray(value)) {
|
|
328
|
+
param = value.map(function (val) { return serializePair(key + "[]", val); });
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
param = serializePair(key, value);
|
|
332
|
+
}
|
|
333
|
+
return params.concat(param);
|
|
257
334
|
}, [])
|
|
258
335
|
.filter(function (x) { return !!x; })
|
|
259
336
|
.join('&');
|
|
@@ -289,7 +366,7 @@ var defaultSettings = {
|
|
|
289
366
|
var defaultContentType = 'application/octet-stream';
|
|
290
367
|
var defaultFilename = 'original';
|
|
291
368
|
|
|
292
|
-
var version = '3.
|
|
369
|
+
var version = '3.1.1';
|
|
293
370
|
|
|
294
371
|
/**
|
|
295
372
|
* Returns User Agent based on version and settings.
|
|
@@ -400,12 +477,16 @@ function retryIfThrottled(fn, retryThrottledMaxTimes) {
|
|
|
400
477
|
});
|
|
401
478
|
}
|
|
402
479
|
|
|
480
|
+
function getStoreValue(store) {
|
|
481
|
+
return typeof store === 'undefined' ? 'auto' : store ? '1' : '0';
|
|
482
|
+
}
|
|
483
|
+
|
|
403
484
|
/**
|
|
404
485
|
* Performs file uploading request to Uploadcare Upload API.
|
|
405
486
|
* Can be canceled and has progress.
|
|
406
487
|
*/
|
|
407
488
|
function base(file, _a) {
|
|
408
|
-
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;
|
|
489
|
+
var publicKey = _a.publicKey, fileName = _a.fileName, contentType = _a.contentType, _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, metadata = _a.metadata;
|
|
409
490
|
return retryIfThrottled(function () {
|
|
410
491
|
var _a;
|
|
411
492
|
return request({
|
|
@@ -416,17 +497,19 @@ function base(file, _a) {
|
|
|
416
497
|
headers: {
|
|
417
498
|
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
418
499
|
},
|
|
419
|
-
data: buildFormData(
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
500
|
+
data: buildFormData({
|
|
501
|
+
file: {
|
|
502
|
+
data: file,
|
|
503
|
+
name: (_a = fileName !== null && fileName !== void 0 ? fileName : file.name) !== null && _a !== void 0 ? _a : defaultFilename,
|
|
504
|
+
contentType: contentType
|
|
505
|
+
},
|
|
506
|
+
UPLOADCARE_PUB_KEY: publicKey,
|
|
507
|
+
UPLOADCARE_STORE: getStoreValue(store),
|
|
508
|
+
signature: secureSignature,
|
|
509
|
+
expire: secureExpire,
|
|
510
|
+
source: source,
|
|
511
|
+
metadata: metadata
|
|
512
|
+
}),
|
|
430
513
|
signal: signal,
|
|
431
514
|
onProgress: onProgress
|
|
432
515
|
}).then(function (_a) {
|
|
@@ -451,7 +534,7 @@ var TypeEnum;
|
|
|
451
534
|
* Uploading files from URL.
|
|
452
535
|
*/
|
|
453
536
|
function fromUrl(sourceUrl, _a) {
|
|
454
|
-
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;
|
|
537
|
+
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, metadata = _a.metadata;
|
|
455
538
|
return retryIfThrottled(function () {
|
|
456
539
|
return request({
|
|
457
540
|
method: 'POST',
|
|
@@ -462,13 +545,14 @@ function fromUrl(sourceUrl, _a) {
|
|
|
462
545
|
jsonerrors: 1,
|
|
463
546
|
pub_key: publicKey,
|
|
464
547
|
source_url: sourceUrl,
|
|
465
|
-
store:
|
|
548
|
+
store: getStoreValue(store),
|
|
466
549
|
filename: fileName,
|
|
467
550
|
check_URL_duplicates: checkForUrlDuplicates ? 1 : undefined,
|
|
468
551
|
save_URL_duplicates: saveUrlForRecurrentUploads ? 1 : undefined,
|
|
469
552
|
signature: secureSignature,
|
|
470
553
|
expire: secureExpire,
|
|
471
|
-
source: source
|
|
554
|
+
source: source,
|
|
555
|
+
metadata: metadata
|
|
472
556
|
}),
|
|
473
557
|
signal: signal
|
|
474
558
|
}).then(function (_a) {
|
|
@@ -630,7 +714,7 @@ function info(uuid, _a) {
|
|
|
630
714
|
* Start multipart uploading.
|
|
631
715
|
*/
|
|
632
716
|
function multipartStart(size, _a) {
|
|
633
|
-
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;
|
|
717
|
+
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, metadata = _a.metadata;
|
|
634
718
|
return retryIfThrottled(function () {
|
|
635
719
|
return request({
|
|
636
720
|
method: 'POST',
|
|
@@ -638,17 +722,18 @@ function multipartStart(size, _a) {
|
|
|
638
722
|
headers: {
|
|
639
723
|
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
640
724
|
},
|
|
641
|
-
data: buildFormData(
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
725
|
+
data: buildFormData({
|
|
726
|
+
filename: fileName !== null && fileName !== void 0 ? fileName : defaultFilename,
|
|
727
|
+
size: size,
|
|
728
|
+
content_type: contentType !== null && contentType !== void 0 ? contentType : defaultContentType,
|
|
729
|
+
part_size: multipartChunkSize,
|
|
730
|
+
UPLOADCARE_STORE: getStoreValue(store),
|
|
731
|
+
UPLOADCARE_PUB_KEY: publicKey,
|
|
732
|
+
signature: secureSignature,
|
|
733
|
+
expire: secureExpire,
|
|
734
|
+
source: source,
|
|
735
|
+
metadata: metadata
|
|
736
|
+
}),
|
|
652
737
|
signal: signal
|
|
653
738
|
}).then(function (_a) {
|
|
654
739
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
@@ -705,11 +790,11 @@ function multipartComplete(uuid, _a) {
|
|
|
705
790
|
headers: {
|
|
706
791
|
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
707
792
|
},
|
|
708
|
-
data: buildFormData(
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
793
|
+
data: buildFormData({
|
|
794
|
+
uuid: uuid,
|
|
795
|
+
UPLOADCARE_PUB_KEY: publicKey,
|
|
796
|
+
source: source
|
|
797
|
+
}),
|
|
713
798
|
signal: signal
|
|
714
799
|
}).then(function (_a) {
|
|
715
800
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
@@ -738,6 +823,8 @@ var UploadcareFile = /** @class */ (function () {
|
|
|
738
823
|
this.originalFilename = null;
|
|
739
824
|
this.imageInfo = null;
|
|
740
825
|
this.videoInfo = null;
|
|
826
|
+
this.contentInfo = null;
|
|
827
|
+
this.metadata = null;
|
|
741
828
|
var uuid = fileInfo.uuid, s3Bucket = fileInfo.s3Bucket;
|
|
742
829
|
var urlBase = s3Bucket
|
|
743
830
|
? "https://" + s3Bucket + ".s3.amazonaws.com/" + uuid + "/" + fileInfo.filename
|
|
@@ -757,6 +844,8 @@ var UploadcareFile = /** @class */ (function () {
|
|
|
757
844
|
this.originalFilename = fileInfo.originalFilename;
|
|
758
845
|
this.imageInfo = camelizeKeys(fileInfo.imageInfo);
|
|
759
846
|
this.videoInfo = camelizeKeys(fileInfo.videoInfo);
|
|
847
|
+
this.contentInfo = camelizeKeys(fileInfo.contentInfo);
|
|
848
|
+
this.metadata = fileInfo.metadata || null;
|
|
760
849
|
}
|
|
761
850
|
return UploadcareFile;
|
|
762
851
|
}());
|
|
@@ -816,10 +905,11 @@ function isReadyPoll(_a) {
|
|
|
816
905
|
}
|
|
817
906
|
|
|
818
907
|
var uploadFromObject = function (file, _a) {
|
|
819
|
-
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;
|
|
908
|
+
var publicKey = _a.publicKey, fileName = _a.fileName, baseURL = _a.baseURL, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, contentType = _a.contentType, signal = _a.signal, onProgress = _a.onProgress, source = _a.source, integration = _a.integration, userAgent = _a.userAgent, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, baseCDN = _a.baseCDN, metadata = _a.metadata;
|
|
820
909
|
return base(file, {
|
|
821
910
|
publicKey: publicKey,
|
|
822
911
|
fileName: fileName,
|
|
912
|
+
contentType: contentType,
|
|
823
913
|
baseURL: baseURL,
|
|
824
914
|
secureSignature: secureSignature,
|
|
825
915
|
secureExpire: secureExpire,
|
|
@@ -829,7 +919,8 @@ var uploadFromObject = function (file, _a) {
|
|
|
829
919
|
source: source,
|
|
830
920
|
integration: integration,
|
|
831
921
|
userAgent: userAgent,
|
|
832
|
-
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
922
|
+
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
923
|
+
metadata: metadata
|
|
833
924
|
})
|
|
834
925
|
.then(function (_a) {
|
|
835
926
|
var file = _a.file;
|
|
@@ -1137,7 +1228,7 @@ var pushStrategy = function (_a) {
|
|
|
1137
1228
|
});
|
|
1138
1229
|
};
|
|
1139
1230
|
var uploadFromUrl = function (sourceUrl, _a) {
|
|
1140
|
-
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;
|
|
1231
|
+
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, metadata = _a.metadata;
|
|
1141
1232
|
return Promise.resolve(preconnect(pusherKey))
|
|
1142
1233
|
.then(function () {
|
|
1143
1234
|
return fromUrl(sourceUrl, {
|
|
@@ -1153,7 +1244,8 @@ var uploadFromUrl = function (sourceUrl, _a) {
|
|
|
1153
1244
|
source: source,
|
|
1154
1245
|
integration: integration,
|
|
1155
1246
|
userAgent: userAgent,
|
|
1156
|
-
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1247
|
+
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1248
|
+
metadata: metadata
|
|
1157
1249
|
});
|
|
1158
1250
|
})
|
|
1159
1251
|
.catch(function (error) {
|
|
@@ -1235,34 +1327,6 @@ var uploadFromUploaded = function (uuid, _a) {
|
|
|
1235
1327
|
});
|
|
1236
1328
|
};
|
|
1237
1329
|
|
|
1238
|
-
/**
|
|
1239
|
-
* FileData type guard.
|
|
1240
|
-
*/
|
|
1241
|
-
var isFileData = function (data) {
|
|
1242
|
-
return (data !== undefined &&
|
|
1243
|
-
((typeof Blob !== 'undefined' && data instanceof Blob) ||
|
|
1244
|
-
(typeof File !== 'undefined' && data instanceof File) ||
|
|
1245
|
-
(typeof Buffer !== 'undefined' && data instanceof Buffer)));
|
|
1246
|
-
};
|
|
1247
|
-
/**
|
|
1248
|
-
* Uuid type guard.
|
|
1249
|
-
*/
|
|
1250
|
-
var isUuid = function (data) {
|
|
1251
|
-
var UUID_REGEX = '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}';
|
|
1252
|
-
var regExp = new RegExp(UUID_REGEX);
|
|
1253
|
-
return !isFileData(data) && regExp.test(data);
|
|
1254
|
-
};
|
|
1255
|
-
/**
|
|
1256
|
-
* Url type guard.
|
|
1257
|
-
*
|
|
1258
|
-
* @param {NodeFile | BrowserFile | Url | Uuid} data
|
|
1259
|
-
*/
|
|
1260
|
-
var isUrl = function (data) {
|
|
1261
|
-
var URL_REGEX = '^(?:\\w+:)?\\/\\/([^\\s\\.]+\\.\\S{2}|localhost[\\:?\\d]*)\\S*$';
|
|
1262
|
-
var regExp = new RegExp(URL_REGEX);
|
|
1263
|
-
return !isFileData(data) && regExp.test(data);
|
|
1264
|
-
};
|
|
1265
|
-
|
|
1266
1330
|
/**
|
|
1267
1331
|
* Get file size.
|
|
1268
1332
|
*/
|
|
@@ -1342,7 +1406,7 @@ var uploadPartWithRetry = function (chunk, url, _a) {
|
|
|
1342
1406
|
});
|
|
1343
1407
|
};
|
|
1344
1408
|
var uploadMultipart = function (file, _a) {
|
|
1345
|
-
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;
|
|
1409
|
+
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, metadata = _a.metadata;
|
|
1346
1410
|
var size = fileSize || getFileSize(file);
|
|
1347
1411
|
var progressValues;
|
|
1348
1412
|
var createProgressHandler = function (totalChunks, chunkIdx) {
|
|
@@ -1377,7 +1441,8 @@ var uploadMultipart = function (file, _a) {
|
|
|
1377
1441
|
source: source,
|
|
1378
1442
|
integration: integration,
|
|
1379
1443
|
userAgent: userAgent,
|
|
1380
|
-
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1444
|
+
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1445
|
+
metadata: metadata
|
|
1381
1446
|
})
|
|
1382
1447
|
.then(function (_a) {
|
|
1383
1448
|
var uuid = _a.uuid, parts = _a.parts;
|
|
@@ -1431,10 +1496,10 @@ var uploadMultipart = function (file, _a) {
|
|
|
1431
1496
|
* Uploads file from provided data.
|
|
1432
1497
|
*/
|
|
1433
1498
|
function uploadFile(data, _a) {
|
|
1434
|
-
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;
|
|
1499
|
+
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, multipartMinFileSize = _a.multipartMinFileSize, 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, metadata = _a.metadata;
|
|
1435
1500
|
if (isFileData(data)) {
|
|
1436
1501
|
var fileSize = getFileSize(data);
|
|
1437
|
-
if (isMultipart(fileSize)) {
|
|
1502
|
+
if (isMultipart(fileSize, multipartMinFileSize)) {
|
|
1438
1503
|
return uploadMultipart(data, {
|
|
1439
1504
|
publicKey: publicKey,
|
|
1440
1505
|
contentType: contentType,
|
|
@@ -1452,12 +1517,14 @@ function uploadFile(data, _a) {
|
|
|
1452
1517
|
userAgent: userAgent,
|
|
1453
1518
|
maxConcurrentRequests: maxConcurrentRequests,
|
|
1454
1519
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1455
|
-
baseCDN: baseCDN
|
|
1520
|
+
baseCDN: baseCDN,
|
|
1521
|
+
metadata: metadata
|
|
1456
1522
|
});
|
|
1457
1523
|
}
|
|
1458
1524
|
return uploadFromObject(data, {
|
|
1459
1525
|
publicKey: publicKey,
|
|
1460
1526
|
fileName: fileName,
|
|
1527
|
+
contentType: contentType,
|
|
1461
1528
|
baseURL: baseURL,
|
|
1462
1529
|
secureSignature: secureSignature,
|
|
1463
1530
|
secureExpire: secureExpire,
|
|
@@ -1468,7 +1535,8 @@ function uploadFile(data, _a) {
|
|
|
1468
1535
|
integration: integration,
|
|
1469
1536
|
userAgent: userAgent,
|
|
1470
1537
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1471
|
-
baseCDN: baseCDN
|
|
1538
|
+
baseCDN: baseCDN,
|
|
1539
|
+
metadata: metadata
|
|
1472
1540
|
});
|
|
1473
1541
|
}
|
|
1474
1542
|
if (isUrl(data)) {
|
|
@@ -1488,7 +1556,8 @@ function uploadFile(data, _a) {
|
|
|
1488
1556
|
integration: integration,
|
|
1489
1557
|
userAgent: userAgent,
|
|
1490
1558
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1491
|
-
pusherKey: pusherKey
|
|
1559
|
+
pusherKey: pusherKey,
|
|
1560
|
+
metadata: metadata
|
|
1492
1561
|
});
|
|
1493
1562
|
}
|
|
1494
1563
|
if (isUuid(data)) {
|