@uploadcare/upload-client 3.0.0-alpha.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -218,28 +218,80 @@ function identity(obj) {
218
218
  var transformFile = identity;
219
219
  var getFormData = (function () { return new NodeFormData__default["default"](); });
220
220
 
221
- var isFileTuple = function (tuple) {
222
- return tuple[0] === 'file';
221
+ /**
222
+ * FileData type guard.
223
+ */
224
+ var isFileData = function (data) {
225
+ return (data !== undefined &&
226
+ ((typeof Blob !== 'undefined' && data instanceof Blob) ||
227
+ (typeof File !== 'undefined' && data instanceof File) ||
228
+ (typeof Buffer !== 'undefined' && data instanceof Buffer)));
223
229
  };
224
- function buildFormData(body) {
225
- var formData = getFormData();
226
- var _loop_1 = function (tuple) {
227
- if (Array.isArray(tuple[1])) {
228
- // refactor this
229
- tuple[1].forEach(function (val) { return val && formData.append(tuple[0] + '[]', "" + val); });
230
- }
231
- else if (isFileTuple(tuple)) {
232
- var name_1 = tuple[2];
233
- var file = transformFile(tuple[1]); // lgtm[js/superfluous-trailing-arguments]
234
- formData.append(tuple[0], file, name_1);
235
- }
236
- else if (tuple[1] != null) {
237
- formData.append(tuple[0], "" + tuple[1]);
230
+ /**
231
+ * Uuid type guard.
232
+ */
233
+ var isUuid = function (data) {
234
+ var UUID_REGEX = '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}';
235
+ var regExp = new RegExp(UUID_REGEX);
236
+ return !isFileData(data) && regExp.test(data);
237
+ };
238
+ /**
239
+ * Url type guard.
240
+ *
241
+ * @param {NodeFile | BrowserFile | Url | Uuid} data
242
+ */
243
+ var isUrl = function (data) {
244
+ var URL_REGEX = '^(?:\\w+:)?\\/\\/([^\\s\\.]+\\.\\S{2}|localhost[\\:?\\d]*)\\S*$';
245
+ var regExp = new RegExp(URL_REGEX);
246
+ return !isFileData(data) && regExp.test(data);
247
+ };
248
+
249
+ var isSimpleValue = function (value) {
250
+ return (typeof value === 'string' ||
251
+ typeof value === 'number' ||
252
+ typeof value === 'undefined');
253
+ };
254
+ var isObjectValue = function (value) {
255
+ return !!value && typeof value === 'object' && !Array.isArray(value);
256
+ };
257
+ var isFileValue = function (value) {
258
+ return !!value &&
259
+ typeof value === 'object' &&
260
+ 'data' in value &&
261
+ isFileData(value.data);
262
+ };
263
+ function collectParams(params, inputKey, inputValue) {
264
+ if (isFileValue(inputValue)) {
265
+ var name_1 = inputValue.name;
266
+ var file = transformFile(inputValue.data); // lgtm [js/superfluous-trailing-arguments]
267
+ params.push(name_1 ? [inputKey, file, name_1] : [inputKey, file]);
268
+ }
269
+ else if (isObjectValue(inputValue)) {
270
+ for (var _i = 0, _a = Object.entries(inputValue); _i < _a.length; _i++) {
271
+ var _b = _a[_i], key = _b[0], value = _b[1];
272
+ if (typeof value !== 'undefined') {
273
+ params.push([inputKey + "[" + key + "]", String(value)]);
274
+ }
238
275
  }
239
- };
240
- for (var _i = 0, body_1 = body; _i < body_1.length; _i++) {
241
- var tuple = body_1[_i];
242
- _loop_1(tuple);
276
+ }
277
+ else if (isSimpleValue(inputValue) && inputValue) {
278
+ params.push([inputKey, inputValue.toString()]);
279
+ }
280
+ }
281
+ function getFormDataParams(options) {
282
+ var params = [];
283
+ for (var _i = 0, _a = Object.entries(options); _i < _a.length; _i++) {
284
+ var _b = _a[_i], key = _b[0], value = _b[1];
285
+ collectParams(params, key, value);
286
+ }
287
+ return params;
288
+ }
289
+ function buildFormData(options) {
290
+ var formData = getFormData();
291
+ var params = getFormDataParams(options);
292
+ for (var _i = 0, params_1 = params; _i < params_1.length; _i++) {
293
+ var param = params_1[_i];
294
+ formData.append.apply(formData, param);
243
295
  }
244
296
  return formData;
245
297
  }
@@ -247,13 +299,26 @@ function buildFormData(body) {
247
299
  var serializePair = function (key, value) {
248
300
  return typeof value !== 'undefined' ? key + "=" + encodeURIComponent(value) : null;
249
301
  };
302
+ // TODO: generalize value transforming logic and use it here and inside `buildFormData`
250
303
  var createQuery = function (query) {
251
304
  return Object.entries(query)
252
305
  .reduce(function (params, _a) {
253
306
  var key = _a[0], value = _a[1];
254
- return params.concat(Array.isArray(value)
255
- ? value.map(function (value) { return serializePair(key + "[]", value); })
256
- : serializePair(key, value));
307
+ var param;
308
+ if (typeof value === 'object' && !Array.isArray(value)) {
309
+ param = Object.entries(value)
310
+ .filter(function (entry) { return typeof entry[1] !== 'undefined'; })
311
+ .map(function (entry) {
312
+ return serializePair(key + "[" + entry[0] + "]", String(entry[1]));
313
+ });
314
+ }
315
+ else if (Array.isArray(value)) {
316
+ param = value.map(function (val) { return serializePair(key + "[]", val); });
317
+ }
318
+ else {
319
+ param = serializePair(key, value);
320
+ }
321
+ return params.concat(param);
257
322
  }, [])
258
323
  .filter(function (x) { return !!x; })
259
324
  .join('&');
@@ -289,7 +354,7 @@ var defaultSettings = {
289
354
  var defaultContentType = 'application/octet-stream';
290
355
  var defaultFilename = 'original';
291
356
 
292
- var version = '3.0.0-alpha.0';
357
+ var version = '3.1.1';
293
358
 
294
359
  /**
295
360
  * Returns User Agent based on version and settings.
@@ -400,12 +465,16 @@ function retryIfThrottled(fn, retryThrottledMaxTimes) {
400
465
  });
401
466
  }
402
467
 
468
+ function getStoreValue(store) {
469
+ return typeof store === 'undefined' ? 'auto' : store ? '1' : '0';
470
+ }
471
+
403
472
  /**
404
473
  * Performs file uploading request to Uploadcare Upload API.
405
474
  * Can be canceled and has progress.
406
475
  */
407
476
  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;
477
+ 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, metadata = _a.metadata;
409
478
  return retryIfThrottled(function () {
410
479
  var _a;
411
480
  return request({
@@ -416,17 +485,18 @@ function base(file, _a) {
416
485
  headers: {
417
486
  'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
418
487
  },
419
- data: buildFormData([
420
- ['file', file, (_a = fileName !== null && fileName !== void 0 ? fileName : file.name) !== null && _a !== void 0 ? _a : defaultFilename],
421
- ['UPLOADCARE_PUB_KEY', publicKey],
422
- [
423
- 'UPLOADCARE_STORE',
424
- typeof store === 'undefined' ? 'auto' : store ? 1 : 0
425
- ],
426
- ['signature', secureSignature],
427
- ['expire', secureExpire],
428
- ['source', source]
429
- ]),
488
+ data: buildFormData({
489
+ file: {
490
+ data: file,
491
+ name: (_a = fileName !== null && fileName !== void 0 ? fileName : file.name) !== null && _a !== void 0 ? _a : defaultFilename
492
+ },
493
+ UPLOADCARE_PUB_KEY: publicKey,
494
+ UPLOADCARE_STORE: getStoreValue(store),
495
+ signature: secureSignature,
496
+ expire: secureExpire,
497
+ source: source,
498
+ metadata: metadata
499
+ }),
430
500
  signal: signal,
431
501
  onProgress: onProgress
432
502
  }).then(function (_a) {
@@ -451,7 +521,7 @@ var TypeEnum;
451
521
  * Uploading files from URL.
452
522
  */
453
523
  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;
524
+ 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
525
  return retryIfThrottled(function () {
456
526
  return request({
457
527
  method: 'POST',
@@ -462,13 +532,14 @@ function fromUrl(sourceUrl, _a) {
462
532
  jsonerrors: 1,
463
533
  pub_key: publicKey,
464
534
  source_url: sourceUrl,
465
- store: typeof store === 'undefined' ? 'auto' : store ? 1 : undefined,
535
+ store: getStoreValue(store),
466
536
  filename: fileName,
467
537
  check_URL_duplicates: checkForUrlDuplicates ? 1 : undefined,
468
538
  save_URL_duplicates: saveUrlForRecurrentUploads ? 1 : undefined,
469
539
  signature: secureSignature,
470
540
  expire: secureExpire,
471
- source: source
541
+ source: source,
542
+ metadata: metadata
472
543
  }),
473
544
  signal: signal
474
545
  }).then(function (_a) {
@@ -630,7 +701,7 @@ function info(uuid, _a) {
630
701
  * Start multipart uploading.
631
702
  */
632
703
  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;
704
+ 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
705
  return retryIfThrottled(function () {
635
706
  return request({
636
707
  method: 'POST',
@@ -638,17 +709,18 @@ function multipartStart(size, _a) {
638
709
  headers: {
639
710
  'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
640
711
  },
641
- data: buildFormData([
642
- ['filename', fileName !== null && fileName !== void 0 ? fileName : defaultFilename],
643
- ['size', size],
644
- ['content_type', contentType !== null && contentType !== void 0 ? contentType : defaultContentType],
645
- ['part_size', multipartChunkSize],
646
- ['UPLOADCARE_STORE', store ? '' : 'auto'],
647
- ['UPLOADCARE_PUB_KEY', publicKey],
648
- ['signature', secureSignature],
649
- ['expire', secureExpire],
650
- ['source', source]
651
- ]),
712
+ data: buildFormData({
713
+ filename: fileName !== null && fileName !== void 0 ? fileName : defaultFilename,
714
+ size: size,
715
+ content_type: contentType !== null && contentType !== void 0 ? contentType : defaultContentType,
716
+ part_size: multipartChunkSize,
717
+ UPLOADCARE_STORE: getStoreValue(store),
718
+ UPLOADCARE_PUB_KEY: publicKey,
719
+ signature: secureSignature,
720
+ expire: secureExpire,
721
+ source: source,
722
+ metadata: metadata
723
+ }),
652
724
  signal: signal
653
725
  }).then(function (_a) {
654
726
  var data = _a.data, headers = _a.headers, request = _a.request;
@@ -705,11 +777,11 @@ function multipartComplete(uuid, _a) {
705
777
  headers: {
706
778
  'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
707
779
  },
708
- data: buildFormData([
709
- ['uuid', uuid],
710
- ['UPLOADCARE_PUB_KEY', publicKey],
711
- ['source', source]
712
- ]),
780
+ data: buildFormData({
781
+ uuid: uuid,
782
+ UPLOADCARE_PUB_KEY: publicKey,
783
+ source: source
784
+ }),
713
785
  signal: signal
714
786
  }).then(function (_a) {
715
787
  var data = _a.data, headers = _a.headers, request = _a.request;
@@ -738,6 +810,8 @@ var UploadcareFile = /** @class */ (function () {
738
810
  this.originalFilename = null;
739
811
  this.imageInfo = null;
740
812
  this.videoInfo = null;
813
+ this.contentInfo = null;
814
+ this.metadata = null;
741
815
  var uuid = fileInfo.uuid, s3Bucket = fileInfo.s3Bucket;
742
816
  var urlBase = s3Bucket
743
817
  ? "https://" + s3Bucket + ".s3.amazonaws.com/" + uuid + "/" + fileInfo.filename
@@ -757,6 +831,8 @@ var UploadcareFile = /** @class */ (function () {
757
831
  this.originalFilename = fileInfo.originalFilename;
758
832
  this.imageInfo = camelizeKeys(fileInfo.imageInfo);
759
833
  this.videoInfo = camelizeKeys(fileInfo.videoInfo);
834
+ this.contentInfo = camelizeKeys(fileInfo.contentInfo);
835
+ this.metadata = fileInfo.metadata || null;
760
836
  }
761
837
  return UploadcareFile;
762
838
  }());
@@ -816,7 +892,7 @@ function isReadyPoll(_a) {
816
892
  }
817
893
 
818
894
  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;
895
+ 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, metadata = _a.metadata;
820
896
  return base(file, {
821
897
  publicKey: publicKey,
822
898
  fileName: fileName,
@@ -829,7 +905,8 @@ var uploadFromObject = function (file, _a) {
829
905
  source: source,
830
906
  integration: integration,
831
907
  userAgent: userAgent,
832
- retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
908
+ retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
909
+ metadata: metadata
833
910
  })
834
911
  .then(function (_a) {
835
912
  var file = _a.file;
@@ -1137,7 +1214,7 @@ var pushStrategy = function (_a) {
1137
1214
  });
1138
1215
  };
1139
1216
  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;
1217
+ 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
1218
  return Promise.resolve(preconnect(pusherKey))
1142
1219
  .then(function () {
1143
1220
  return fromUrl(sourceUrl, {
@@ -1153,7 +1230,8 @@ var uploadFromUrl = function (sourceUrl, _a) {
1153
1230
  source: source,
1154
1231
  integration: integration,
1155
1232
  userAgent: userAgent,
1156
- retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
1233
+ retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
1234
+ metadata: metadata
1157
1235
  });
1158
1236
  })
1159
1237
  .catch(function (error) {
@@ -1235,34 +1313,6 @@ var uploadFromUploaded = function (uuid, _a) {
1235
1313
  });
1236
1314
  };
1237
1315
 
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
1316
  /**
1267
1317
  * Get file size.
1268
1318
  */
@@ -1342,7 +1392,7 @@ var uploadPartWithRetry = function (chunk, url, _a) {
1342
1392
  });
1343
1393
  };
1344
1394
  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;
1395
+ 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
1396
  var size = fileSize || getFileSize(file);
1347
1397
  var progressValues;
1348
1398
  var createProgressHandler = function (totalChunks, chunkIdx) {
@@ -1377,7 +1427,8 @@ var uploadMultipart = function (file, _a) {
1377
1427
  source: source,
1378
1428
  integration: integration,
1379
1429
  userAgent: userAgent,
1380
- retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
1430
+ retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
1431
+ metadata: metadata
1381
1432
  })
1382
1433
  .then(function (_a) {
1383
1434
  var uuid = _a.uuid, parts = _a.parts;
@@ -1431,10 +1482,10 @@ var uploadMultipart = function (file, _a) {
1431
1482
  * Uploads file from provided data.
1432
1483
  */
1433
1484
  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;
1485
+ 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
1486
  if (isFileData(data)) {
1436
1487
  var fileSize = getFileSize(data);
1437
- if (isMultipart(fileSize)) {
1488
+ if (isMultipart(fileSize, multipartMinFileSize)) {
1438
1489
  return uploadMultipart(data, {
1439
1490
  publicKey: publicKey,
1440
1491
  contentType: contentType,
@@ -1452,7 +1503,8 @@ function uploadFile(data, _a) {
1452
1503
  userAgent: userAgent,
1453
1504
  maxConcurrentRequests: maxConcurrentRequests,
1454
1505
  retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
1455
- baseCDN: baseCDN
1506
+ baseCDN: baseCDN,
1507
+ metadata: metadata
1456
1508
  });
1457
1509
  }
1458
1510
  return uploadFromObject(data, {
@@ -1468,7 +1520,8 @@ function uploadFile(data, _a) {
1468
1520
  integration: integration,
1469
1521
  userAgent: userAgent,
1470
1522
  retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
1471
- baseCDN: baseCDN
1523
+ baseCDN: baseCDN,
1524
+ metadata: metadata
1472
1525
  });
1473
1526
  }
1474
1527
  if (isUrl(data)) {
@@ -1488,7 +1541,8 @@ function uploadFile(data, _a) {
1488
1541
  integration: integration,
1489
1542
  userAgent: userAgent,
1490
1543
  retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
1491
- pusherKey: pusherKey
1544
+ pusherKey: pusherKey,
1545
+ metadata: metadata
1492
1546
  });
1493
1547
  }
1494
1548
  if (isUuid(data)) {