@uploadcare/upload-client 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/dist/index.browser.cjs +149 -95
- package/dist/index.browser.js +145 -90
- package/dist/index.cjs +149 -95
- package/dist/index.js +145 -90
- package/dist/types.d.ts +33 -8
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -397,6 +397,20 @@ This setting is needed for correct multipart uploads.
|
|
|
397
397
|
|
|
398
398
|
Defaults to `application/octet-stream`.
|
|
399
399
|
|
|
400
|
+
### `metadata: Metadata`
|
|
401
|
+
|
|
402
|
+
```typescript
|
|
403
|
+
type Metadata = {
|
|
404
|
+
[key: string]: string
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
Metadata is additional, arbitrary data, associated with uploaded file.
|
|
408
|
+
|
|
409
|
+
Non-string values will be converted to `string`. `undefined` values will be ignored.
|
|
410
|
+
|
|
411
|
+
See [https://uploadcare.com/api-refs/rest-api/v0.7.0/#tag/File-Metadata][REST API reference] for details.
|
|
412
|
+
|
|
413
|
+
|
|
400
414
|
## Testing
|
|
401
415
|
|
|
402
416
|
```
|
package/dist/index.browser.cjs
CHANGED
|
@@ -179,28 +179,80 @@ function identity(obj) {
|
|
|
179
179
|
var transformFile = identity;
|
|
180
180
|
var getFormData = (function () { return new FormData(); });
|
|
181
181
|
|
|
182
|
-
|
|
183
|
-
|
|
182
|
+
/**
|
|
183
|
+
* FileData type guard.
|
|
184
|
+
*/
|
|
185
|
+
var isFileData = function (data) {
|
|
186
|
+
return (data !== undefined &&
|
|
187
|
+
((typeof Blob !== 'undefined' && data instanceof Blob) ||
|
|
188
|
+
(typeof File !== 'undefined' && data instanceof File) ||
|
|
189
|
+
(typeof Buffer !== 'undefined' && data instanceof Buffer)));
|
|
184
190
|
};
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
191
|
+
/**
|
|
192
|
+
* Uuid type guard.
|
|
193
|
+
*/
|
|
194
|
+
var isUuid = function (data) {
|
|
195
|
+
var UUID_REGEX = '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}';
|
|
196
|
+
var regExp = new RegExp(UUID_REGEX);
|
|
197
|
+
return !isFileData(data) && regExp.test(data);
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* Url type guard.
|
|
201
|
+
*
|
|
202
|
+
* @param {NodeFile | BrowserFile | Url | Uuid} data
|
|
203
|
+
*/
|
|
204
|
+
var isUrl = function (data) {
|
|
205
|
+
var URL_REGEX = '^(?:\\w+:)?\\/\\/([^\\s\\.]+\\.\\S{2}|localhost[\\:?\\d]*)\\S*$';
|
|
206
|
+
var regExp = new RegExp(URL_REGEX);
|
|
207
|
+
return !isFileData(data) && regExp.test(data);
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
var isSimpleValue = function (value) {
|
|
211
|
+
return (typeof value === 'string' ||
|
|
212
|
+
typeof value === 'number' ||
|
|
213
|
+
typeof value === 'undefined');
|
|
214
|
+
};
|
|
215
|
+
var isObjectValue = function (value) {
|
|
216
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
217
|
+
};
|
|
218
|
+
var isFileValue = function (value) {
|
|
219
|
+
return !!value &&
|
|
220
|
+
typeof value === 'object' &&
|
|
221
|
+
'data' in value &&
|
|
222
|
+
isFileData(value.data);
|
|
223
|
+
};
|
|
224
|
+
function collectParams(params, inputKey, inputValue) {
|
|
225
|
+
if (isFileValue(inputValue)) {
|
|
226
|
+
var name_1 = inputValue.name;
|
|
227
|
+
var file = transformFile(inputValue.data); // lgtm [js/superfluous-trailing-arguments]
|
|
228
|
+
params.push(name_1 ? [inputKey, file, name_1] : [inputKey, file]);
|
|
229
|
+
}
|
|
230
|
+
else if (isObjectValue(inputValue)) {
|
|
231
|
+
for (var _i = 0, _a = Object.entries(inputValue); _i < _a.length; _i++) {
|
|
232
|
+
var _b = _a[_i], key = _b[0], value = _b[1];
|
|
233
|
+
if (typeof value !== 'undefined') {
|
|
234
|
+
params.push([inputKey + "[" + key + "]", String(value)]);
|
|
235
|
+
}
|
|
199
236
|
}
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
237
|
+
}
|
|
238
|
+
else if (isSimpleValue(inputValue) && inputValue) {
|
|
239
|
+
params.push([inputKey, inputValue.toString()]);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
function getFormDataParams(options) {
|
|
243
|
+
var params = [];
|
|
244
|
+
for (var _i = 0, _a = Object.entries(options); _i < _a.length; _i++) {
|
|
245
|
+
var _b = _a[_i], key = _b[0], value = _b[1];
|
|
246
|
+
collectParams(params, key, value);
|
|
247
|
+
}
|
|
248
|
+
return params;
|
|
249
|
+
}
|
|
250
|
+
function buildFormData(options) {
|
|
251
|
+
var formData = getFormData();
|
|
252
|
+
var params = getFormDataParams(options);
|
|
253
|
+
for (var _i = 0, params_1 = params; _i < params_1.length; _i++) {
|
|
254
|
+
var param = params_1[_i];
|
|
255
|
+
formData.append.apply(formData, param);
|
|
204
256
|
}
|
|
205
257
|
return formData;
|
|
206
258
|
}
|
|
@@ -208,13 +260,26 @@ function buildFormData(body) {
|
|
|
208
260
|
var serializePair = function (key, value) {
|
|
209
261
|
return typeof value !== 'undefined' ? key + "=" + encodeURIComponent(value) : null;
|
|
210
262
|
};
|
|
263
|
+
// TODO: generalize value transforming logic and use it here and inside `buildFormData`
|
|
211
264
|
var createQuery = function (query) {
|
|
212
265
|
return Object.entries(query)
|
|
213
266
|
.reduce(function (params, _a) {
|
|
214
267
|
var key = _a[0], value = _a[1];
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
268
|
+
var param;
|
|
269
|
+
if (typeof value === 'object' && !Array.isArray(value)) {
|
|
270
|
+
param = Object.entries(value)
|
|
271
|
+
.filter(function (entry) { return typeof entry[1] !== 'undefined'; })
|
|
272
|
+
.map(function (entry) {
|
|
273
|
+
return serializePair(key + "[" + entry[0] + "]", String(entry[1]));
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
else if (Array.isArray(value)) {
|
|
277
|
+
param = value.map(function (val) { return serializePair(key + "[]", val); });
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
param = serializePair(key, value);
|
|
281
|
+
}
|
|
282
|
+
return params.concat(param);
|
|
218
283
|
}, [])
|
|
219
284
|
.filter(function (x) { return !!x; })
|
|
220
285
|
.join('&');
|
|
@@ -250,7 +315,7 @@ var defaultSettings = {
|
|
|
250
315
|
var defaultContentType = 'application/octet-stream';
|
|
251
316
|
var defaultFilename = 'original';
|
|
252
317
|
|
|
253
|
-
var version = '3.
|
|
318
|
+
var version = '3.1.0';
|
|
254
319
|
|
|
255
320
|
/**
|
|
256
321
|
* Returns User Agent based on version and settings.
|
|
@@ -361,12 +426,16 @@ function retryIfThrottled(fn, retryThrottledMaxTimes) {
|
|
|
361
426
|
});
|
|
362
427
|
}
|
|
363
428
|
|
|
429
|
+
function getStoreValue(store) {
|
|
430
|
+
return typeof store === 'undefined' ? 'auto' : store ? '1' : '0';
|
|
431
|
+
}
|
|
432
|
+
|
|
364
433
|
/**
|
|
365
434
|
* Performs file uploading request to Uploadcare Upload API.
|
|
366
435
|
* Can be canceled and has progress.
|
|
367
436
|
*/
|
|
368
437
|
function base(file, _a) {
|
|
369
|
-
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;
|
|
438
|
+
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;
|
|
370
439
|
return retryIfThrottled(function () {
|
|
371
440
|
var _a;
|
|
372
441
|
return request({
|
|
@@ -377,17 +446,18 @@ function base(file, _a) {
|
|
|
377
446
|
headers: {
|
|
378
447
|
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
379
448
|
},
|
|
380
|
-
data: buildFormData(
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
449
|
+
data: buildFormData({
|
|
450
|
+
file: {
|
|
451
|
+
data: file,
|
|
452
|
+
name: (_a = fileName !== null && fileName !== void 0 ? fileName : file.name) !== null && _a !== void 0 ? _a : defaultFilename
|
|
453
|
+
},
|
|
454
|
+
UPLOADCARE_PUB_KEY: publicKey,
|
|
455
|
+
UPLOADCARE_STORE: getStoreValue(store),
|
|
456
|
+
signature: secureSignature,
|
|
457
|
+
expire: secureExpire,
|
|
458
|
+
source: source,
|
|
459
|
+
metadata: metadata
|
|
460
|
+
}),
|
|
391
461
|
signal: signal,
|
|
392
462
|
onProgress: onProgress
|
|
393
463
|
}).then(function (_a) {
|
|
@@ -412,7 +482,7 @@ var TypeEnum;
|
|
|
412
482
|
* Uploading files from URL.
|
|
413
483
|
*/
|
|
414
484
|
function fromUrl(sourceUrl, _a) {
|
|
415
|
-
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;
|
|
485
|
+
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;
|
|
416
486
|
return retryIfThrottled(function () {
|
|
417
487
|
return request({
|
|
418
488
|
method: 'POST',
|
|
@@ -423,13 +493,14 @@ function fromUrl(sourceUrl, _a) {
|
|
|
423
493
|
jsonerrors: 1,
|
|
424
494
|
pub_key: publicKey,
|
|
425
495
|
source_url: sourceUrl,
|
|
426
|
-
store:
|
|
496
|
+
store: getStoreValue(store),
|
|
427
497
|
filename: fileName,
|
|
428
498
|
check_URL_duplicates: checkForUrlDuplicates ? 1 : undefined,
|
|
429
499
|
save_URL_duplicates: saveUrlForRecurrentUploads ? 1 : undefined,
|
|
430
500
|
signature: secureSignature,
|
|
431
501
|
expire: secureExpire,
|
|
432
|
-
source: source
|
|
502
|
+
source: source,
|
|
503
|
+
metadata: metadata
|
|
433
504
|
}),
|
|
434
505
|
signal: signal
|
|
435
506
|
}).then(function (_a) {
|
|
@@ -591,7 +662,7 @@ function info(uuid, _a) {
|
|
|
591
662
|
* Start multipart uploading.
|
|
592
663
|
*/
|
|
593
664
|
function multipartStart(size, _a) {
|
|
594
|
-
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;
|
|
665
|
+
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;
|
|
595
666
|
return retryIfThrottled(function () {
|
|
596
667
|
return request({
|
|
597
668
|
method: 'POST',
|
|
@@ -599,17 +670,18 @@ function multipartStart(size, _a) {
|
|
|
599
670
|
headers: {
|
|
600
671
|
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
601
672
|
},
|
|
602
|
-
data: buildFormData(
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
673
|
+
data: buildFormData({
|
|
674
|
+
filename: fileName !== null && fileName !== void 0 ? fileName : defaultFilename,
|
|
675
|
+
size: size,
|
|
676
|
+
content_type: contentType !== null && contentType !== void 0 ? contentType : defaultContentType,
|
|
677
|
+
part_size: multipartChunkSize,
|
|
678
|
+
UPLOADCARE_STORE: getStoreValue(store),
|
|
679
|
+
UPLOADCARE_PUB_KEY: publicKey,
|
|
680
|
+
signature: secureSignature,
|
|
681
|
+
expire: secureExpire,
|
|
682
|
+
source: source,
|
|
683
|
+
metadata: metadata
|
|
684
|
+
}),
|
|
613
685
|
signal: signal
|
|
614
686
|
}).then(function (_a) {
|
|
615
687
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
@@ -666,11 +738,11 @@ function multipartComplete(uuid, _a) {
|
|
|
666
738
|
headers: {
|
|
667
739
|
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
668
740
|
},
|
|
669
|
-
data: buildFormData(
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
741
|
+
data: buildFormData({
|
|
742
|
+
uuid: uuid,
|
|
743
|
+
UPLOADCARE_PUB_KEY: publicKey,
|
|
744
|
+
source: source
|
|
745
|
+
}),
|
|
674
746
|
signal: signal
|
|
675
747
|
}).then(function (_a) {
|
|
676
748
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
@@ -699,6 +771,8 @@ var UploadcareFile = /** @class */ (function () {
|
|
|
699
771
|
this.originalFilename = null;
|
|
700
772
|
this.imageInfo = null;
|
|
701
773
|
this.videoInfo = null;
|
|
774
|
+
this.contentInfo = null;
|
|
775
|
+
this.metadata = null;
|
|
702
776
|
var uuid = fileInfo.uuid, s3Bucket = fileInfo.s3Bucket;
|
|
703
777
|
var urlBase = s3Bucket
|
|
704
778
|
? "https://" + s3Bucket + ".s3.amazonaws.com/" + uuid + "/" + fileInfo.filename
|
|
@@ -718,6 +792,8 @@ var UploadcareFile = /** @class */ (function () {
|
|
|
718
792
|
this.originalFilename = fileInfo.originalFilename;
|
|
719
793
|
this.imageInfo = camelizeKeys(fileInfo.imageInfo);
|
|
720
794
|
this.videoInfo = camelizeKeys(fileInfo.videoInfo);
|
|
795
|
+
this.contentInfo = camelizeKeys(fileInfo.contentInfo);
|
|
796
|
+
this.metadata = fileInfo.metadata || null;
|
|
721
797
|
}
|
|
722
798
|
return UploadcareFile;
|
|
723
799
|
}());
|
|
@@ -777,7 +853,7 @@ function isReadyPoll(_a) {
|
|
|
777
853
|
}
|
|
778
854
|
|
|
779
855
|
var uploadFromObject = function (file, _a) {
|
|
780
|
-
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;
|
|
856
|
+
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;
|
|
781
857
|
return base(file, {
|
|
782
858
|
publicKey: publicKey,
|
|
783
859
|
fileName: fileName,
|
|
@@ -790,7 +866,8 @@ var uploadFromObject = function (file, _a) {
|
|
|
790
866
|
source: source,
|
|
791
867
|
integration: integration,
|
|
792
868
|
userAgent: userAgent,
|
|
793
|
-
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
869
|
+
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
870
|
+
metadata: metadata
|
|
794
871
|
})
|
|
795
872
|
.then(function (_a) {
|
|
796
873
|
var file = _a.file;
|
|
@@ -1108,7 +1185,7 @@ var pushStrategy = function (_a) {
|
|
|
1108
1185
|
});
|
|
1109
1186
|
};
|
|
1110
1187
|
var uploadFromUrl = function (sourceUrl, _a) {
|
|
1111
|
-
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;
|
|
1188
|
+
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;
|
|
1112
1189
|
return Promise.resolve(preconnect(pusherKey))
|
|
1113
1190
|
.then(function () {
|
|
1114
1191
|
return fromUrl(sourceUrl, {
|
|
@@ -1124,7 +1201,8 @@ var uploadFromUrl = function (sourceUrl, _a) {
|
|
|
1124
1201
|
source: source,
|
|
1125
1202
|
integration: integration,
|
|
1126
1203
|
userAgent: userAgent,
|
|
1127
|
-
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1204
|
+
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1205
|
+
metadata: metadata
|
|
1128
1206
|
});
|
|
1129
1207
|
})
|
|
1130
1208
|
.catch(function (error) {
|
|
@@ -1206,34 +1284,6 @@ var uploadFromUploaded = function (uuid, _a) {
|
|
|
1206
1284
|
});
|
|
1207
1285
|
};
|
|
1208
1286
|
|
|
1209
|
-
/**
|
|
1210
|
-
* FileData type guard.
|
|
1211
|
-
*/
|
|
1212
|
-
var isFileData = function (data) {
|
|
1213
|
-
return (data !== undefined &&
|
|
1214
|
-
((typeof Blob !== 'undefined' && data instanceof Blob) ||
|
|
1215
|
-
(typeof File !== 'undefined' && data instanceof File) ||
|
|
1216
|
-
(typeof Buffer !== 'undefined' && data instanceof Buffer)));
|
|
1217
|
-
};
|
|
1218
|
-
/**
|
|
1219
|
-
* Uuid type guard.
|
|
1220
|
-
*/
|
|
1221
|
-
var isUuid = function (data) {
|
|
1222
|
-
var UUID_REGEX = '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}';
|
|
1223
|
-
var regExp = new RegExp(UUID_REGEX);
|
|
1224
|
-
return !isFileData(data) && regExp.test(data);
|
|
1225
|
-
};
|
|
1226
|
-
/**
|
|
1227
|
-
* Url type guard.
|
|
1228
|
-
*
|
|
1229
|
-
* @param {NodeFile | BrowserFile | Url | Uuid} data
|
|
1230
|
-
*/
|
|
1231
|
-
var isUrl = function (data) {
|
|
1232
|
-
var URL_REGEX = '^(?:\\w+:)?\\/\\/([^\\s\\.]+\\.\\S{2}|localhost[\\:?\\d]*)\\S*$';
|
|
1233
|
-
var regExp = new RegExp(URL_REGEX);
|
|
1234
|
-
return !isFileData(data) && regExp.test(data);
|
|
1235
|
-
};
|
|
1236
|
-
|
|
1237
1287
|
/**
|
|
1238
1288
|
* Get file size.
|
|
1239
1289
|
*/
|
|
@@ -1313,7 +1363,7 @@ var uploadPartWithRetry = function (chunk, url, _a) {
|
|
|
1313
1363
|
});
|
|
1314
1364
|
};
|
|
1315
1365
|
var uploadMultipart = function (file, _a) {
|
|
1316
|
-
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;
|
|
1366
|
+
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;
|
|
1317
1367
|
var size = fileSize || getFileSize(file);
|
|
1318
1368
|
var progressValues;
|
|
1319
1369
|
var createProgressHandler = function (totalChunks, chunkIdx) {
|
|
@@ -1348,7 +1398,8 @@ var uploadMultipart = function (file, _a) {
|
|
|
1348
1398
|
source: source,
|
|
1349
1399
|
integration: integration,
|
|
1350
1400
|
userAgent: userAgent,
|
|
1351
|
-
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1401
|
+
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1402
|
+
metadata: metadata
|
|
1352
1403
|
})
|
|
1353
1404
|
.then(function (_a) {
|
|
1354
1405
|
var uuid = _a.uuid, parts = _a.parts;
|
|
@@ -1402,10 +1453,10 @@ var uploadMultipart = function (file, _a) {
|
|
|
1402
1453
|
* Uploads file from provided data.
|
|
1403
1454
|
*/
|
|
1404
1455
|
function uploadFile(data, _a) {
|
|
1405
|
-
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;
|
|
1456
|
+
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;
|
|
1406
1457
|
if (isFileData(data)) {
|
|
1407
1458
|
var fileSize = getFileSize(data);
|
|
1408
|
-
if (isMultipart(fileSize)) {
|
|
1459
|
+
if (isMultipart(fileSize, multipartMinFileSize)) {
|
|
1409
1460
|
return uploadMultipart(data, {
|
|
1410
1461
|
publicKey: publicKey,
|
|
1411
1462
|
contentType: contentType,
|
|
@@ -1423,7 +1474,8 @@ function uploadFile(data, _a) {
|
|
|
1423
1474
|
userAgent: userAgent,
|
|
1424
1475
|
maxConcurrentRequests: maxConcurrentRequests,
|
|
1425
1476
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1426
|
-
baseCDN: baseCDN
|
|
1477
|
+
baseCDN: baseCDN,
|
|
1478
|
+
metadata: metadata
|
|
1427
1479
|
});
|
|
1428
1480
|
}
|
|
1429
1481
|
return uploadFromObject(data, {
|
|
@@ -1439,7 +1491,8 @@ function uploadFile(data, _a) {
|
|
|
1439
1491
|
integration: integration,
|
|
1440
1492
|
userAgent: userAgent,
|
|
1441
1493
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1442
|
-
baseCDN: baseCDN
|
|
1494
|
+
baseCDN: baseCDN,
|
|
1495
|
+
metadata: metadata
|
|
1443
1496
|
});
|
|
1444
1497
|
}
|
|
1445
1498
|
if (isUrl(data)) {
|
|
@@ -1459,7 +1512,8 @@ function uploadFile(data, _a) {
|
|
|
1459
1512
|
integration: integration,
|
|
1460
1513
|
userAgent: userAgent,
|
|
1461
1514
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1462
|
-
pusherKey: pusherKey
|
|
1515
|
+
pusherKey: pusherKey,
|
|
1516
|
+
metadata: metadata
|
|
1463
1517
|
});
|
|
1464
1518
|
}
|
|
1465
1519
|
if (isUuid(data)) {
|