@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/README.md
CHANGED
|
@@ -397,6 +397,21 @@ 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
|
+
|
|
408
|
+
Metadata is additional, arbitrary data, associated with uploaded file.
|
|
409
|
+
|
|
410
|
+
Non-string values will be converted to `string`. `undefined` values will be ignored.
|
|
411
|
+
|
|
412
|
+
See [REST API reference][uc-docs-metadata] for details.
|
|
413
|
+
|
|
414
|
+
|
|
400
415
|
## Testing
|
|
401
416
|
|
|
402
417
|
```
|
|
@@ -458,3 +473,4 @@ request at [hello@uploadcare.com][uc-email-hello].
|
|
|
458
473
|
[badge-build]: https://github.com/uploadcare/uploadcare-upload-client/actions/workflows/checks.yml/badge.svg
|
|
459
474
|
[build-url]: https://github.com/uploadcare/uploadcare-upload-client/actions/workflows/checks.yml
|
|
460
475
|
[uc-docs-upload-api]: https://uploadcare.com/docs/api_reference/upload/?utm_source=github&utm_campaign=uploadcare-upload-client
|
|
476
|
+
[uc-docs-metadata]: https://uploadcare.com/api-refs/rest-api/v0.7.0/#tag/File-Metadata
|
package/dist/index.browser.cjs
CHANGED
|
@@ -176,31 +176,90 @@ function identity(obj) {
|
|
|
176
176
|
return obj;
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
+
var getFileOptions = function (_a) {
|
|
180
|
+
var name = _a.name;
|
|
181
|
+
return name ? [name] : [];
|
|
182
|
+
};
|
|
179
183
|
var transformFile = identity;
|
|
180
184
|
var getFormData = (function () { return new FormData(); });
|
|
181
185
|
|
|
182
|
-
|
|
183
|
-
|
|
186
|
+
/**
|
|
187
|
+
* FileData type guard.
|
|
188
|
+
*/
|
|
189
|
+
var isFileData = function (data) {
|
|
190
|
+
return (data !== undefined &&
|
|
191
|
+
((typeof Blob !== 'undefined' && data instanceof Blob) ||
|
|
192
|
+
(typeof File !== 'undefined' && data instanceof File) ||
|
|
193
|
+
(typeof Buffer !== 'undefined' && data instanceof Buffer)));
|
|
184
194
|
};
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
195
|
+
/**
|
|
196
|
+
* Uuid type guard.
|
|
197
|
+
*/
|
|
198
|
+
var isUuid = function (data) {
|
|
199
|
+
var UUID_REGEX = '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}';
|
|
200
|
+
var regExp = new RegExp(UUID_REGEX);
|
|
201
|
+
return !isFileData(data) && regExp.test(data);
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Url type guard.
|
|
205
|
+
*
|
|
206
|
+
* @param {NodeFile | BrowserFile | Url | Uuid} data
|
|
207
|
+
*/
|
|
208
|
+
var isUrl = function (data) {
|
|
209
|
+
var URL_REGEX = '^(?:\\w+:)?\\/\\/([^\\s\\.]+\\.\\S{2}|localhost[\\:?\\d]*)\\S*$';
|
|
210
|
+
var regExp = new RegExp(URL_REGEX);
|
|
211
|
+
return !isFileData(data) && regExp.test(data);
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
var isSimpleValue = function (value) {
|
|
215
|
+
return (typeof value === 'string' ||
|
|
216
|
+
typeof value === 'number' ||
|
|
217
|
+
typeof value === 'undefined');
|
|
218
|
+
};
|
|
219
|
+
var isObjectValue = function (value) {
|
|
220
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
221
|
+
};
|
|
222
|
+
var isFileValue = function (value) {
|
|
223
|
+
return !!value &&
|
|
224
|
+
typeof value === 'object' &&
|
|
225
|
+
'data' in value &&
|
|
226
|
+
isFileData(value.data);
|
|
227
|
+
};
|
|
228
|
+
function collectParams(params, inputKey, inputValue) {
|
|
229
|
+
if (isFileValue(inputValue)) {
|
|
230
|
+
var name_1 = inputValue.name, contentType = inputValue.contentType;
|
|
231
|
+
var file = transformFile(inputValue.data); // lgtm [js/superfluous-trailing-arguments]
|
|
232
|
+
var options = getFileOptions({ name: name_1, contentType: contentType });
|
|
233
|
+
params.push(__spreadArrays([inputKey, file], options));
|
|
234
|
+
}
|
|
235
|
+
else if (isObjectValue(inputValue)) {
|
|
236
|
+
for (var _i = 0, _a = Object.entries(inputValue); _i < _a.length; _i++) {
|
|
237
|
+
var _b = _a[_i], key = _b[0], value = _b[1];
|
|
238
|
+
if (typeof value !== 'undefined') {
|
|
239
|
+
params.push([inputKey + "[" + key + "]", String(value)]);
|
|
240
|
+
}
|
|
199
241
|
}
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
242
|
+
}
|
|
243
|
+
else if (isSimpleValue(inputValue) && inputValue) {
|
|
244
|
+
params.push([inputKey, inputValue.toString()]);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
function getFormDataParams(options) {
|
|
248
|
+
var params = [];
|
|
249
|
+
for (var _i = 0, _a = Object.entries(options); _i < _a.length; _i++) {
|
|
250
|
+
var _b = _a[_i], key = _b[0], value = _b[1];
|
|
251
|
+
collectParams(params, key, value);
|
|
252
|
+
}
|
|
253
|
+
return params;
|
|
254
|
+
}
|
|
255
|
+
function buildFormData(options) {
|
|
256
|
+
var formData = getFormData();
|
|
257
|
+
var paramsList = getFormDataParams(options);
|
|
258
|
+
for (var _i = 0, paramsList_1 = paramsList; _i < paramsList_1.length; _i++) {
|
|
259
|
+
var params = paramsList_1[_i];
|
|
260
|
+
var key = params[0], value = params[1], options_1 = params.slice(2);
|
|
261
|
+
// node form-data has another signature for append
|
|
262
|
+
formData.append.apply(formData, __spreadArrays([key, value], options_1));
|
|
204
263
|
}
|
|
205
264
|
return formData;
|
|
206
265
|
}
|
|
@@ -208,13 +267,26 @@ function buildFormData(body) {
|
|
|
208
267
|
var serializePair = function (key, value) {
|
|
209
268
|
return typeof value !== 'undefined' ? key + "=" + encodeURIComponent(value) : null;
|
|
210
269
|
};
|
|
270
|
+
// TODO: generalize value transforming logic and use it here and inside `buildFormData`
|
|
211
271
|
var createQuery = function (query) {
|
|
212
272
|
return Object.entries(query)
|
|
213
273
|
.reduce(function (params, _a) {
|
|
214
274
|
var key = _a[0], value = _a[1];
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
275
|
+
var param;
|
|
276
|
+
if (typeof value === 'object' && !Array.isArray(value)) {
|
|
277
|
+
param = Object.entries(value)
|
|
278
|
+
.filter(function (entry) { return typeof entry[1] !== 'undefined'; })
|
|
279
|
+
.map(function (entry) {
|
|
280
|
+
return serializePair(key + "[" + entry[0] + "]", String(entry[1]));
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
else if (Array.isArray(value)) {
|
|
284
|
+
param = value.map(function (val) { return serializePair(key + "[]", val); });
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
param = serializePair(key, value);
|
|
288
|
+
}
|
|
289
|
+
return params.concat(param);
|
|
218
290
|
}, [])
|
|
219
291
|
.filter(function (x) { return !!x; })
|
|
220
292
|
.join('&');
|
|
@@ -250,7 +322,7 @@ var defaultSettings = {
|
|
|
250
322
|
var defaultContentType = 'application/octet-stream';
|
|
251
323
|
var defaultFilename = 'original';
|
|
252
324
|
|
|
253
|
-
var version = '3.
|
|
325
|
+
var version = '3.1.1';
|
|
254
326
|
|
|
255
327
|
/**
|
|
256
328
|
* Returns User Agent based on version and settings.
|
|
@@ -361,12 +433,16 @@ function retryIfThrottled(fn, retryThrottledMaxTimes) {
|
|
|
361
433
|
});
|
|
362
434
|
}
|
|
363
435
|
|
|
436
|
+
function getStoreValue(store) {
|
|
437
|
+
return typeof store === 'undefined' ? 'auto' : store ? '1' : '0';
|
|
438
|
+
}
|
|
439
|
+
|
|
364
440
|
/**
|
|
365
441
|
* Performs file uploading request to Uploadcare Upload API.
|
|
366
442
|
* Can be canceled and has progress.
|
|
367
443
|
*/
|
|
368
444
|
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;
|
|
445
|
+
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;
|
|
370
446
|
return retryIfThrottled(function () {
|
|
371
447
|
var _a;
|
|
372
448
|
return request({
|
|
@@ -377,17 +453,19 @@ function base(file, _a) {
|
|
|
377
453
|
headers: {
|
|
378
454
|
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
379
455
|
},
|
|
380
|
-
data: buildFormData(
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
456
|
+
data: buildFormData({
|
|
457
|
+
file: {
|
|
458
|
+
data: file,
|
|
459
|
+
name: (_a = fileName !== null && fileName !== void 0 ? fileName : file.name) !== null && _a !== void 0 ? _a : defaultFilename,
|
|
460
|
+
contentType: contentType
|
|
461
|
+
},
|
|
462
|
+
UPLOADCARE_PUB_KEY: publicKey,
|
|
463
|
+
UPLOADCARE_STORE: getStoreValue(store),
|
|
464
|
+
signature: secureSignature,
|
|
465
|
+
expire: secureExpire,
|
|
466
|
+
source: source,
|
|
467
|
+
metadata: metadata
|
|
468
|
+
}),
|
|
391
469
|
signal: signal,
|
|
392
470
|
onProgress: onProgress
|
|
393
471
|
}).then(function (_a) {
|
|
@@ -412,7 +490,7 @@ var TypeEnum;
|
|
|
412
490
|
* Uploading files from URL.
|
|
413
491
|
*/
|
|
414
492
|
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;
|
|
493
|
+
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
494
|
return retryIfThrottled(function () {
|
|
417
495
|
return request({
|
|
418
496
|
method: 'POST',
|
|
@@ -423,13 +501,14 @@ function fromUrl(sourceUrl, _a) {
|
|
|
423
501
|
jsonerrors: 1,
|
|
424
502
|
pub_key: publicKey,
|
|
425
503
|
source_url: sourceUrl,
|
|
426
|
-
store:
|
|
504
|
+
store: getStoreValue(store),
|
|
427
505
|
filename: fileName,
|
|
428
506
|
check_URL_duplicates: checkForUrlDuplicates ? 1 : undefined,
|
|
429
507
|
save_URL_duplicates: saveUrlForRecurrentUploads ? 1 : undefined,
|
|
430
508
|
signature: secureSignature,
|
|
431
509
|
expire: secureExpire,
|
|
432
|
-
source: source
|
|
510
|
+
source: source,
|
|
511
|
+
metadata: metadata
|
|
433
512
|
}),
|
|
434
513
|
signal: signal
|
|
435
514
|
}).then(function (_a) {
|
|
@@ -591,7 +670,7 @@ function info(uuid, _a) {
|
|
|
591
670
|
* Start multipart uploading.
|
|
592
671
|
*/
|
|
593
672
|
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;
|
|
673
|
+
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
674
|
return retryIfThrottled(function () {
|
|
596
675
|
return request({
|
|
597
676
|
method: 'POST',
|
|
@@ -599,17 +678,18 @@ function multipartStart(size, _a) {
|
|
|
599
678
|
headers: {
|
|
600
679
|
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
601
680
|
},
|
|
602
|
-
data: buildFormData(
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
681
|
+
data: buildFormData({
|
|
682
|
+
filename: fileName !== null && fileName !== void 0 ? fileName : defaultFilename,
|
|
683
|
+
size: size,
|
|
684
|
+
content_type: contentType !== null && contentType !== void 0 ? contentType : defaultContentType,
|
|
685
|
+
part_size: multipartChunkSize,
|
|
686
|
+
UPLOADCARE_STORE: getStoreValue(store),
|
|
687
|
+
UPLOADCARE_PUB_KEY: publicKey,
|
|
688
|
+
signature: secureSignature,
|
|
689
|
+
expire: secureExpire,
|
|
690
|
+
source: source,
|
|
691
|
+
metadata: metadata
|
|
692
|
+
}),
|
|
613
693
|
signal: signal
|
|
614
694
|
}).then(function (_a) {
|
|
615
695
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
@@ -666,11 +746,11 @@ function multipartComplete(uuid, _a) {
|
|
|
666
746
|
headers: {
|
|
667
747
|
'X-UC-User-Agent': getUserAgent({ publicKey: publicKey, integration: integration, userAgent: userAgent })
|
|
668
748
|
},
|
|
669
|
-
data: buildFormData(
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
749
|
+
data: buildFormData({
|
|
750
|
+
uuid: uuid,
|
|
751
|
+
UPLOADCARE_PUB_KEY: publicKey,
|
|
752
|
+
source: source
|
|
753
|
+
}),
|
|
674
754
|
signal: signal
|
|
675
755
|
}).then(function (_a) {
|
|
676
756
|
var data = _a.data, headers = _a.headers, request = _a.request;
|
|
@@ -699,6 +779,8 @@ var UploadcareFile = /** @class */ (function () {
|
|
|
699
779
|
this.originalFilename = null;
|
|
700
780
|
this.imageInfo = null;
|
|
701
781
|
this.videoInfo = null;
|
|
782
|
+
this.contentInfo = null;
|
|
783
|
+
this.metadata = null;
|
|
702
784
|
var uuid = fileInfo.uuid, s3Bucket = fileInfo.s3Bucket;
|
|
703
785
|
var urlBase = s3Bucket
|
|
704
786
|
? "https://" + s3Bucket + ".s3.amazonaws.com/" + uuid + "/" + fileInfo.filename
|
|
@@ -718,6 +800,8 @@ var UploadcareFile = /** @class */ (function () {
|
|
|
718
800
|
this.originalFilename = fileInfo.originalFilename;
|
|
719
801
|
this.imageInfo = camelizeKeys(fileInfo.imageInfo);
|
|
720
802
|
this.videoInfo = camelizeKeys(fileInfo.videoInfo);
|
|
803
|
+
this.contentInfo = camelizeKeys(fileInfo.contentInfo);
|
|
804
|
+
this.metadata = fileInfo.metadata || null;
|
|
721
805
|
}
|
|
722
806
|
return UploadcareFile;
|
|
723
807
|
}());
|
|
@@ -777,10 +861,11 @@ function isReadyPoll(_a) {
|
|
|
777
861
|
}
|
|
778
862
|
|
|
779
863
|
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;
|
|
864
|
+
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;
|
|
781
865
|
return base(file, {
|
|
782
866
|
publicKey: publicKey,
|
|
783
867
|
fileName: fileName,
|
|
868
|
+
contentType: contentType,
|
|
784
869
|
baseURL: baseURL,
|
|
785
870
|
secureSignature: secureSignature,
|
|
786
871
|
secureExpire: secureExpire,
|
|
@@ -790,7 +875,8 @@ var uploadFromObject = function (file, _a) {
|
|
|
790
875
|
source: source,
|
|
791
876
|
integration: integration,
|
|
792
877
|
userAgent: userAgent,
|
|
793
|
-
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
878
|
+
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
879
|
+
metadata: metadata
|
|
794
880
|
})
|
|
795
881
|
.then(function (_a) {
|
|
796
882
|
var file = _a.file;
|
|
@@ -1108,7 +1194,7 @@ var pushStrategy = function (_a) {
|
|
|
1108
1194
|
});
|
|
1109
1195
|
};
|
|
1110
1196
|
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;
|
|
1197
|
+
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
1198
|
return Promise.resolve(preconnect(pusherKey))
|
|
1113
1199
|
.then(function () {
|
|
1114
1200
|
return fromUrl(sourceUrl, {
|
|
@@ -1124,7 +1210,8 @@ var uploadFromUrl = function (sourceUrl, _a) {
|
|
|
1124
1210
|
source: source,
|
|
1125
1211
|
integration: integration,
|
|
1126
1212
|
userAgent: userAgent,
|
|
1127
|
-
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1213
|
+
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1214
|
+
metadata: metadata
|
|
1128
1215
|
});
|
|
1129
1216
|
})
|
|
1130
1217
|
.catch(function (error) {
|
|
@@ -1206,34 +1293,6 @@ var uploadFromUploaded = function (uuid, _a) {
|
|
|
1206
1293
|
});
|
|
1207
1294
|
};
|
|
1208
1295
|
|
|
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
1296
|
/**
|
|
1238
1297
|
* Get file size.
|
|
1239
1298
|
*/
|
|
@@ -1313,7 +1372,7 @@ var uploadPartWithRetry = function (chunk, url, _a) {
|
|
|
1313
1372
|
});
|
|
1314
1373
|
};
|
|
1315
1374
|
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;
|
|
1375
|
+
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
1376
|
var size = fileSize || getFileSize(file);
|
|
1318
1377
|
var progressValues;
|
|
1319
1378
|
var createProgressHandler = function (totalChunks, chunkIdx) {
|
|
@@ -1348,7 +1407,8 @@ var uploadMultipart = function (file, _a) {
|
|
|
1348
1407
|
source: source,
|
|
1349
1408
|
integration: integration,
|
|
1350
1409
|
userAgent: userAgent,
|
|
1351
|
-
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes
|
|
1410
|
+
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1411
|
+
metadata: metadata
|
|
1352
1412
|
})
|
|
1353
1413
|
.then(function (_a) {
|
|
1354
1414
|
var uuid = _a.uuid, parts = _a.parts;
|
|
@@ -1402,10 +1462,10 @@ var uploadMultipart = function (file, _a) {
|
|
|
1402
1462
|
* Uploads file from provided data.
|
|
1403
1463
|
*/
|
|
1404
1464
|
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;
|
|
1465
|
+
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
1466
|
if (isFileData(data)) {
|
|
1407
1467
|
var fileSize = getFileSize(data);
|
|
1408
|
-
if (isMultipart(fileSize)) {
|
|
1468
|
+
if (isMultipart(fileSize, multipartMinFileSize)) {
|
|
1409
1469
|
return uploadMultipart(data, {
|
|
1410
1470
|
publicKey: publicKey,
|
|
1411
1471
|
contentType: contentType,
|
|
@@ -1423,12 +1483,14 @@ function uploadFile(data, _a) {
|
|
|
1423
1483
|
userAgent: userAgent,
|
|
1424
1484
|
maxConcurrentRequests: maxConcurrentRequests,
|
|
1425
1485
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1426
|
-
baseCDN: baseCDN
|
|
1486
|
+
baseCDN: baseCDN,
|
|
1487
|
+
metadata: metadata
|
|
1427
1488
|
});
|
|
1428
1489
|
}
|
|
1429
1490
|
return uploadFromObject(data, {
|
|
1430
1491
|
publicKey: publicKey,
|
|
1431
1492
|
fileName: fileName,
|
|
1493
|
+
contentType: contentType,
|
|
1432
1494
|
baseURL: baseURL,
|
|
1433
1495
|
secureSignature: secureSignature,
|
|
1434
1496
|
secureExpire: secureExpire,
|
|
@@ -1439,7 +1501,8 @@ function uploadFile(data, _a) {
|
|
|
1439
1501
|
integration: integration,
|
|
1440
1502
|
userAgent: userAgent,
|
|
1441
1503
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1442
|
-
baseCDN: baseCDN
|
|
1504
|
+
baseCDN: baseCDN,
|
|
1505
|
+
metadata: metadata
|
|
1443
1506
|
});
|
|
1444
1507
|
}
|
|
1445
1508
|
if (isUrl(data)) {
|
|
@@ -1459,7 +1522,8 @@ function uploadFile(data, _a) {
|
|
|
1459
1522
|
integration: integration,
|
|
1460
1523
|
userAgent: userAgent,
|
|
1461
1524
|
retryThrottledRequestMaxTimes: retryThrottledRequestMaxTimes,
|
|
1462
|
-
pusherKey: pusherKey
|
|
1525
|
+
pusherKey: pusherKey,
|
|
1526
|
+
metadata: metadata
|
|
1463
1527
|
});
|
|
1464
1528
|
}
|
|
1465
1529
|
if (isUuid(data)) {
|