@uploadcare/upload-client 6.18.3 → 6.19.0-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 +1 -2
- package/dist/cjs/index.browser.cjs +48 -46
- package/dist/cjs/index.browser.d.cts +14 -6
- package/dist/cjs/index.node.cjs +48 -46
- package/dist/cjs/index.node.d.cts +14 -6
- package/dist/cjs/index.react-native.cjs +48 -46
- package/dist/cjs/index.react-native.d.cts +14 -6
- package/dist/esm/index.browser.d.mts +14 -6
- package/dist/esm/index.browser.mjs +48 -46
- package/dist/esm/index.node.d.mts +14 -6
- package/dist/esm/index.node.mjs +48 -46
- package/dist/esm/index.react-native.d.mts +14 -6
- package/dist/esm/index.react-native.mjs +48 -46
- package/dist/index.d.ts +14 -6
- package/package.json +16 -10
|
@@ -73,6 +73,7 @@ export type ContentInfo = {
|
|
|
73
73
|
video?: VideoInfo;
|
|
74
74
|
};
|
|
75
75
|
export type Metadata = Record<string, string>;
|
|
76
|
+
export type Tags = string[];
|
|
76
77
|
export type StoreValue = "auto" | boolean;
|
|
77
78
|
export declare class CancelError extends UploadcareError {
|
|
78
79
|
isCancel: boolean;
|
|
@@ -125,12 +126,13 @@ export type FileInfo = {
|
|
|
125
126
|
mimeType: string;
|
|
126
127
|
isImage: boolean;
|
|
127
128
|
isStored: boolean;
|
|
128
|
-
isReady:
|
|
129
|
+
isReady: boolean;
|
|
129
130
|
imageInfo: ImageInfo | null;
|
|
130
131
|
videoInfo: VideoInfo | null;
|
|
131
132
|
contentInfo: ContentInfo | null;
|
|
132
133
|
s3Bucket?: string;
|
|
133
134
|
metadata?: Metadata;
|
|
135
|
+
tags?: Tags;
|
|
134
136
|
};
|
|
135
137
|
export type GroupFileInfo = FileInfo & {
|
|
136
138
|
defaultEffects: string;
|
|
@@ -175,12 +177,13 @@ export type BaseOptions = {
|
|
|
175
177
|
retryThrottledRequestMaxTimes?: number;
|
|
176
178
|
retryNetworkErrorMaxTimes?: number;
|
|
177
179
|
metadata?: Metadata;
|
|
180
|
+
tags?: Tags;
|
|
178
181
|
};
|
|
179
182
|
/**
|
|
180
183
|
* Performs file uploading request to Uploadcare Upload API. Can be canceled and
|
|
181
184
|
* has progress.
|
|
182
185
|
*/
|
|
183
|
-
export function base(file: SupportedFileInput, { publicKey, fileName, contentType, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, metadata }: BaseOptions): Promise<BaseResponse>;
|
|
186
|
+
export function base(file: SupportedFileInput, { publicKey, fileName, contentType, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, metadata, tags }: BaseOptions): Promise<BaseResponse>;
|
|
184
187
|
export declare enum TypeEnum {
|
|
185
188
|
Token = "token",
|
|
186
189
|
FileInfo = "file_info"
|
|
@@ -309,6 +312,7 @@ export type MultipartStartOptions = {
|
|
|
309
312
|
retryThrottledRequestMaxTimes?: number;
|
|
310
313
|
retryNetworkErrorMaxTimes?: number;
|
|
311
314
|
metadata?: Metadata;
|
|
315
|
+
tags?: Tags;
|
|
312
316
|
};
|
|
313
317
|
export type MultipartPart = string;
|
|
314
318
|
export type MultipartStartResponse = {
|
|
@@ -316,7 +320,7 @@ export type MultipartStartResponse = {
|
|
|
316
320
|
uuid: Uuid;
|
|
317
321
|
};
|
|
318
322
|
/** Start multipart uploading. */
|
|
319
|
-
export function multipartStart(size: number, { publicKey, contentType, fileName, multipartChunkSize, baseURL, secureSignature, secureExpire, store, signal, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, metadata }: MultipartStartOptions): Promise<MultipartStartResponse>;
|
|
323
|
+
export function multipartStart(size: number, { publicKey, contentType, fileName, multipartChunkSize, baseURL, secureSignature, secureExpire, store, signal, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, metadata, tags }: MultipartStartOptions): Promise<MultipartStartResponse>;
|
|
320
324
|
export type MultipartUploadOptions = {
|
|
321
325
|
publicKey?: string;
|
|
322
326
|
contentType?: string;
|
|
@@ -357,6 +361,7 @@ export declare class UploadcareFile {
|
|
|
357
361
|
readonly videoInfo: VideoInfo | null;
|
|
358
362
|
readonly contentInfo: ContentInfo | null;
|
|
359
363
|
readonly metadata: Metadata | null;
|
|
364
|
+
readonly tags: Tags | null;
|
|
360
365
|
readonly s3Bucket: string | null;
|
|
361
366
|
readonly defaultEffects: null | string;
|
|
362
367
|
constructor(fileInfo: FileInfo | GroupFileInfo, { baseCDN, fileName }?: {
|
|
@@ -387,9 +392,10 @@ export type FileFromOptions = {
|
|
|
387
392
|
saveUrlForRecurrentUploads?: boolean;
|
|
388
393
|
pusherKey?: string;
|
|
389
394
|
metadata?: Metadata;
|
|
395
|
+
tags?: Tags;
|
|
390
396
|
};
|
|
391
397
|
/** Uploads file from provided data. */
|
|
392
|
-
export declare function uploadFile(data: SupportedFileInput | Url | Uuid, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartMinFileSize, multipartChunkSize, maxConcurrentRequests, baseCDN, checkForUrlDuplicates, saveUrlForRecurrentUploads, pusherKey, metadata }: FileFromOptions): Promise<UploadcareFile>;
|
|
398
|
+
export declare function uploadFile(data: SupportedFileInput | Url | Uuid, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartMinFileSize, multipartChunkSize, maxConcurrentRequests, baseCDN, checkForUrlDuplicates, saveUrlForRecurrentUploads, pusherKey, metadata, tags }: FileFromOptions): Promise<UploadcareFile>;
|
|
393
399
|
export type DirectOptions = {
|
|
394
400
|
publicKey: string;
|
|
395
401
|
fileName?: string;
|
|
@@ -407,8 +413,9 @@ export type DirectOptions = {
|
|
|
407
413
|
retryNetworkErrorMaxTimes?: number;
|
|
408
414
|
baseCDN?: string;
|
|
409
415
|
metadata?: Metadata;
|
|
416
|
+
tags?: Tags;
|
|
410
417
|
};
|
|
411
|
-
export declare const uploadDirect: (file: SupportedFileInput, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, contentType, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, baseCDN, metadata }: DirectOptions) => Promise<UploadcareFile>;
|
|
418
|
+
export declare const uploadDirect: (file: SupportedFileInput, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, contentType, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, baseCDN, metadata, tags }: DirectOptions) => Promise<UploadcareFile>;
|
|
412
419
|
export type FromUploadedOptions = {
|
|
413
420
|
publicKey: string;
|
|
414
421
|
fileName?: string;
|
|
@@ -449,8 +456,9 @@ export type MultipartOptions = {
|
|
|
449
456
|
maxConcurrentRequests?: number;
|
|
450
457
|
baseCDN?: string;
|
|
451
458
|
metadata?: Metadata;
|
|
459
|
+
tags?: Tags;
|
|
452
460
|
};
|
|
453
|
-
export declare const uploadMultipart: (file: SupportedFileInput, { publicKey, fileName, fileSize, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartChunkSize, maxConcurrentRequests, baseCDN, metadata }: MultipartOptions) => Promise<UploadcareFile>;
|
|
461
|
+
export declare const uploadMultipart: (file: SupportedFileInput, { publicKey, fileName, fileSize, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartChunkSize, maxConcurrentRequests, baseCDN, metadata, tags }: MultipartOptions) => Promise<UploadcareFile>;
|
|
454
462
|
export declare class UploadcareGroup {
|
|
455
463
|
readonly uuid: GroupId;
|
|
456
464
|
readonly filesCount: string;
|
package/dist/esm/index.node.mjs
CHANGED
|
@@ -433,7 +433,7 @@ const getUrl = (base, path, query) => {
|
|
|
433
433
|
return url.toString();
|
|
434
434
|
};
|
|
435
435
|
|
|
436
|
-
var version = '6.18.
|
|
436
|
+
var version = '6.18.4';
|
|
437
437
|
|
|
438
438
|
const LIBRARY_NAME = 'UploadcareUploadClient';
|
|
439
439
|
const LIBRARY_VERSION = version;
|
|
@@ -508,7 +508,7 @@ function getStoreValue(store) {
|
|
|
508
508
|
* Performs file uploading request to Uploadcare Upload API. Can be canceled and
|
|
509
509
|
* has progress.
|
|
510
510
|
*/
|
|
511
|
-
function base(file, { publicKey, fileName, contentType, baseURL = defaultSettings.baseURL, secureSignature, secureExpire, store, signal, onProgress, source = 'local', integration, userAgent, retryThrottledRequestMaxTimes = defaultSettings.retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes = defaultSettings.retryNetworkErrorMaxTimes, metadata }) {
|
|
511
|
+
function base(file, { publicKey, fileName, contentType, baseURL = defaultSettings.baseURL, secureSignature, secureExpire, store, signal, onProgress, source = 'local', integration, userAgent, retryThrottledRequestMaxTimes = defaultSettings.retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes = defaultSettings.retryNetworkErrorMaxTimes, metadata, tags }) {
|
|
512
512
|
return retryIfFailed(() => request({
|
|
513
513
|
method: 'POST',
|
|
514
514
|
url: getUrl(baseURL, '/base/', {
|
|
@@ -528,7 +528,8 @@ function base(file, { publicKey, fileName, contentType, baseURL = defaultSetting
|
|
|
528
528
|
signature: secureSignature,
|
|
529
529
|
expire: secureExpire,
|
|
530
530
|
source: source,
|
|
531
|
-
metadata
|
|
531
|
+
metadata,
|
|
532
|
+
tags: tags && tags.join(',')
|
|
532
533
|
}),
|
|
533
534
|
signal,
|
|
534
535
|
onProgress
|
|
@@ -701,7 +702,7 @@ function info(uuid, { publicKey, baseURL = defaultSettings.baseURL, signal, sour
|
|
|
701
702
|
}
|
|
702
703
|
|
|
703
704
|
/** Start multipart uploading. */
|
|
704
|
-
function multipartStart(size, { publicKey, contentType, fileName, multipartChunkSize = defaultSettings.multipartChunkSize, baseURL = '', secureSignature, secureExpire, store, signal, source = 'local', integration, userAgent, retryThrottledRequestMaxTimes = defaultSettings.retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes = defaultSettings.retryNetworkErrorMaxTimes, metadata }) {
|
|
705
|
+
function multipartStart(size, { publicKey, contentType, fileName, multipartChunkSize = defaultSettings.multipartChunkSize, baseURL = '', secureSignature, secureExpire, store, signal, source = 'local', integration, userAgent, retryThrottledRequestMaxTimes = defaultSettings.retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes = defaultSettings.retryNetworkErrorMaxTimes, metadata, tags }) {
|
|
705
706
|
return retryIfFailed(() => request({
|
|
706
707
|
method: 'POST',
|
|
707
708
|
url: getUrl(baseURL, '/multipart/start/', { jsonerrors: 1 }),
|
|
@@ -718,7 +719,8 @@ function multipartStart(size, { publicKey, contentType, fileName, multipartChunk
|
|
|
718
719
|
signature: secureSignature,
|
|
719
720
|
expire: secureExpire,
|
|
720
721
|
source: source,
|
|
721
|
-
metadata
|
|
722
|
+
metadata,
|
|
723
|
+
tags: tags && tags.join(',')
|
|
722
724
|
}),
|
|
723
725
|
signal
|
|
724
726
|
}).then(({ data, headers, request }) => {
|
|
@@ -800,9 +802,9 @@ function isReadyPoll(uuid, { publicKey, baseURL, source, integration, userAgent,
|
|
|
800
802
|
retryNetworkErrorMaxTimes
|
|
801
803
|
}).then((response) => {
|
|
802
804
|
if (response.isReady) {
|
|
805
|
+
onProgress && onProgress({ isComputable: true, value: 1 });
|
|
803
806
|
return response;
|
|
804
807
|
}
|
|
805
|
-
onProgress && onProgress({ isComputable: true, value: 1 });
|
|
806
808
|
return false;
|
|
807
809
|
}),
|
|
808
810
|
signal
|
|
@@ -826,6 +828,7 @@ class UploadcareFile {
|
|
|
826
828
|
videoInfo;
|
|
827
829
|
contentInfo;
|
|
828
830
|
metadata;
|
|
831
|
+
tags;
|
|
829
832
|
s3Bucket;
|
|
830
833
|
defaultEffects = null;
|
|
831
834
|
constructor(fileInfo, { baseCDN = defaultSettings.baseCDN, fileName } = {}) {
|
|
@@ -846,6 +849,7 @@ class UploadcareFile {
|
|
|
846
849
|
this.videoInfo = fileInfo.videoInfo;
|
|
847
850
|
this.contentInfo = fileInfo.contentInfo;
|
|
848
851
|
this.metadata = fileInfo.metadata || null;
|
|
852
|
+
this.tags = fileInfo.tags || null;
|
|
849
853
|
this.s3Bucket = s3Bucket || null;
|
|
850
854
|
this.s3Url = s3Url;
|
|
851
855
|
if (isGroupFileInfo(fileInfo)) {
|
|
@@ -854,7 +858,7 @@ class UploadcareFile {
|
|
|
854
858
|
}
|
|
855
859
|
}
|
|
856
860
|
|
|
857
|
-
const uploadDirect = (file, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, contentType, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, baseCDN, metadata }) => {
|
|
861
|
+
const uploadDirect = (file, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, contentType, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, baseCDN, metadata, tags }) => {
|
|
858
862
|
return base(file, {
|
|
859
863
|
publicKey,
|
|
860
864
|
fileName,
|
|
@@ -870,7 +874,8 @@ const uploadDirect = (file, { publicKey, fileName, baseURL, secureSignature, sec
|
|
|
870
874
|
userAgent,
|
|
871
875
|
retryThrottledRequestMaxTimes,
|
|
872
876
|
retryNetworkErrorMaxTimes,
|
|
873
|
-
metadata
|
|
877
|
+
metadata,
|
|
878
|
+
tags
|
|
874
879
|
})
|
|
875
880
|
.then(({ file }) => {
|
|
876
881
|
return isReadyPoll(file, {
|
|
@@ -889,26 +894,17 @@ const uploadDirect = (file, { publicKey, fileName, baseURL, secureSignature, sec
|
|
|
889
894
|
};
|
|
890
895
|
|
|
891
896
|
const uploadFromUploaded = (uuid, { publicKey, fileName, baseURL, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, baseCDN }) => {
|
|
892
|
-
return
|
|
897
|
+
return isReadyPoll(uuid, {
|
|
893
898
|
publicKey,
|
|
894
899
|
baseURL,
|
|
895
900
|
signal,
|
|
901
|
+
onProgress,
|
|
896
902
|
source,
|
|
897
903
|
integration,
|
|
898
904
|
userAgent,
|
|
899
905
|
retryThrottledRequestMaxTimes,
|
|
900
906
|
retryNetworkErrorMaxTimes
|
|
901
|
-
})
|
|
902
|
-
.then((fileInfo) => new UploadcareFile(fileInfo, { baseCDN, fileName }))
|
|
903
|
-
.then((result) => {
|
|
904
|
-
// hack for node ¯\_(ツ)_/¯
|
|
905
|
-
if (onProgress)
|
|
906
|
-
onProgress({
|
|
907
|
-
isComputable: true,
|
|
908
|
-
value: 1
|
|
909
|
-
});
|
|
910
|
-
return result;
|
|
911
|
-
});
|
|
907
|
+
}).then((fileInfo) => new UploadcareFile(fileInfo, { baseCDN, fileName }));
|
|
912
908
|
};
|
|
913
909
|
|
|
914
910
|
const race = (fns, { signal } = {}) => {
|
|
@@ -1236,15 +1232,20 @@ const uploadFromUrl = (sourceUrl, { publicKey, fileName, baseURL, baseCDN, check
|
|
|
1236
1232
|
throw result;
|
|
1237
1233
|
return result;
|
|
1238
1234
|
})
|
|
1239
|
-
.then((result) =>
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1235
|
+
.then((result) => {
|
|
1236
|
+
if (result.isReady) {
|
|
1237
|
+
return result;
|
|
1238
|
+
}
|
|
1239
|
+
return isReadyPoll(result.uuid, {
|
|
1240
|
+
publicKey,
|
|
1241
|
+
baseURL,
|
|
1242
|
+
integration,
|
|
1243
|
+
userAgent,
|
|
1244
|
+
retryThrottledRequestMaxTimes,
|
|
1245
|
+
onProgress,
|
|
1246
|
+
signal
|
|
1247
|
+
});
|
|
1248
|
+
})
|
|
1248
1249
|
.then((fileInfo) => new UploadcareFile(fileInfo, { baseCDN }));
|
|
1249
1250
|
|
|
1250
1251
|
const memo = new WeakMap();
|
|
@@ -1347,7 +1348,7 @@ const uploadPart = (chunk, url, { publicKey, contentType, onProgress, signal, in
|
|
|
1347
1348
|
retryThrottledRequestMaxTimes,
|
|
1348
1349
|
retryNetworkErrorMaxTimes
|
|
1349
1350
|
});
|
|
1350
|
-
const uploadMultipart = async (file, { publicKey, fileName, fileSize, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartChunkSize = defaultSettings.multipartChunkSize, maxConcurrentRequests = defaultSettings.maxConcurrentRequests, baseCDN, metadata }) => {
|
|
1351
|
+
const uploadMultipart = async (file, { publicKey, fileName, fileSize, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartChunkSize = defaultSettings.multipartChunkSize, maxConcurrentRequests = defaultSettings.maxConcurrentRequests, baseCDN, metadata, tags }) => {
|
|
1351
1352
|
const size = fileSize ?? (await getFileSize(file));
|
|
1352
1353
|
let progressValues;
|
|
1353
1354
|
const createProgressHandler = (totalChunks, chunkIdx) => {
|
|
@@ -1384,6 +1385,7 @@ const uploadMultipart = async (file, { publicKey, fileName, fileSize, baseURL, s
|
|
|
1384
1385
|
retryThrottledRequestMaxTimes,
|
|
1385
1386
|
retryNetworkErrorMaxTimes,
|
|
1386
1387
|
metadata,
|
|
1388
|
+
tags,
|
|
1387
1389
|
multipartChunkSize
|
|
1388
1390
|
})
|
|
1389
1391
|
.then(async ({ uuid, parts }) => {
|
|
@@ -1414,25 +1416,23 @@ const uploadMultipart = async (file, { publicKey, fileName, fileSize, baseURL, s
|
|
|
1414
1416
|
if (fileInfo.isReady) {
|
|
1415
1417
|
return fileInfo;
|
|
1416
1418
|
}
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
});
|
|
1429
|
-
}
|
|
1419
|
+
return isReadyPoll(fileInfo.uuid, {
|
|
1420
|
+
publicKey,
|
|
1421
|
+
baseURL,
|
|
1422
|
+
source,
|
|
1423
|
+
integration,
|
|
1424
|
+
userAgent,
|
|
1425
|
+
retryThrottledRequestMaxTimes,
|
|
1426
|
+
retryNetworkErrorMaxTimes,
|
|
1427
|
+
onProgress,
|
|
1428
|
+
signal
|
|
1429
|
+
});
|
|
1430
1430
|
})
|
|
1431
1431
|
.then((fileInfo) => new UploadcareFile(fileInfo, { baseCDN }));
|
|
1432
1432
|
};
|
|
1433
1433
|
|
|
1434
1434
|
/** Uploads file from provided data. */
|
|
1435
|
-
async function uploadFile(data, { publicKey, fileName, baseURL = defaultSettings.baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartMinFileSize, multipartChunkSize, maxConcurrentRequests, baseCDN = defaultSettings.baseCDN, checkForUrlDuplicates, saveUrlForRecurrentUploads, pusherKey, metadata }) {
|
|
1435
|
+
async function uploadFile(data, { publicKey, fileName, baseURL = defaultSettings.baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartMinFileSize, multipartChunkSize, maxConcurrentRequests, baseCDN = defaultSettings.baseCDN, checkForUrlDuplicates, saveUrlForRecurrentUploads, pusherKey, metadata, tags }) {
|
|
1436
1436
|
if (isFileData(data)) {
|
|
1437
1437
|
const fileSize = await getFileSize(data);
|
|
1438
1438
|
if (isMultipart(fileSize, multipartMinFileSize)) {
|
|
@@ -1455,7 +1455,8 @@ async function uploadFile(data, { publicKey, fileName, baseURL = defaultSettings
|
|
|
1455
1455
|
retryThrottledRequestMaxTimes,
|
|
1456
1456
|
retryNetworkErrorMaxTimes,
|
|
1457
1457
|
baseCDN,
|
|
1458
|
-
metadata
|
|
1458
|
+
metadata,
|
|
1459
|
+
tags
|
|
1459
1460
|
});
|
|
1460
1461
|
}
|
|
1461
1462
|
return uploadDirect(data, {
|
|
@@ -1474,7 +1475,8 @@ async function uploadFile(data, { publicKey, fileName, baseURL = defaultSettings
|
|
|
1474
1475
|
retryThrottledRequestMaxTimes,
|
|
1475
1476
|
retryNetworkErrorMaxTimes,
|
|
1476
1477
|
baseCDN,
|
|
1477
|
-
metadata
|
|
1478
|
+
metadata,
|
|
1479
|
+
tags
|
|
1478
1480
|
});
|
|
1479
1481
|
}
|
|
1480
1482
|
if (isUrl(data)) {
|
|
@@ -73,6 +73,7 @@ export type ContentInfo = {
|
|
|
73
73
|
video?: VideoInfo;
|
|
74
74
|
};
|
|
75
75
|
export type Metadata = Record<string, string>;
|
|
76
|
+
export type Tags = string[];
|
|
76
77
|
export type StoreValue = "auto" | boolean;
|
|
77
78
|
export declare class CancelError extends UploadcareError {
|
|
78
79
|
isCancel: boolean;
|
|
@@ -125,12 +126,13 @@ export type FileInfo = {
|
|
|
125
126
|
mimeType: string;
|
|
126
127
|
isImage: boolean;
|
|
127
128
|
isStored: boolean;
|
|
128
|
-
isReady:
|
|
129
|
+
isReady: boolean;
|
|
129
130
|
imageInfo: ImageInfo | null;
|
|
130
131
|
videoInfo: VideoInfo | null;
|
|
131
132
|
contentInfo: ContentInfo | null;
|
|
132
133
|
s3Bucket?: string;
|
|
133
134
|
metadata?: Metadata;
|
|
135
|
+
tags?: Tags;
|
|
134
136
|
};
|
|
135
137
|
export type GroupFileInfo = FileInfo & {
|
|
136
138
|
defaultEffects: string;
|
|
@@ -175,12 +177,13 @@ export type BaseOptions = {
|
|
|
175
177
|
retryThrottledRequestMaxTimes?: number;
|
|
176
178
|
retryNetworkErrorMaxTimes?: number;
|
|
177
179
|
metadata?: Metadata;
|
|
180
|
+
tags?: Tags;
|
|
178
181
|
};
|
|
179
182
|
/**
|
|
180
183
|
* Performs file uploading request to Uploadcare Upload API. Can be canceled and
|
|
181
184
|
* has progress.
|
|
182
185
|
*/
|
|
183
|
-
export function base(file: SupportedFileInput, { publicKey, fileName, contentType, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, metadata }: BaseOptions): Promise<BaseResponse>;
|
|
186
|
+
export function base(file: SupportedFileInput, { publicKey, fileName, contentType, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, metadata, tags }: BaseOptions): Promise<BaseResponse>;
|
|
184
187
|
export declare enum TypeEnum {
|
|
185
188
|
Token = "token",
|
|
186
189
|
FileInfo = "file_info"
|
|
@@ -309,6 +312,7 @@ export type MultipartStartOptions = {
|
|
|
309
312
|
retryThrottledRequestMaxTimes?: number;
|
|
310
313
|
retryNetworkErrorMaxTimes?: number;
|
|
311
314
|
metadata?: Metadata;
|
|
315
|
+
tags?: Tags;
|
|
312
316
|
};
|
|
313
317
|
export type MultipartPart = string;
|
|
314
318
|
export type MultipartStartResponse = {
|
|
@@ -316,7 +320,7 @@ export type MultipartStartResponse = {
|
|
|
316
320
|
uuid: Uuid;
|
|
317
321
|
};
|
|
318
322
|
/** Start multipart uploading. */
|
|
319
|
-
export function multipartStart(size: number, { publicKey, contentType, fileName, multipartChunkSize, baseURL, secureSignature, secureExpire, store, signal, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, metadata }: MultipartStartOptions): Promise<MultipartStartResponse>;
|
|
323
|
+
export function multipartStart(size: number, { publicKey, contentType, fileName, multipartChunkSize, baseURL, secureSignature, secureExpire, store, signal, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, metadata, tags }: MultipartStartOptions): Promise<MultipartStartResponse>;
|
|
320
324
|
export type MultipartUploadOptions = {
|
|
321
325
|
publicKey?: string;
|
|
322
326
|
contentType?: string;
|
|
@@ -357,6 +361,7 @@ export declare class UploadcareFile {
|
|
|
357
361
|
readonly videoInfo: VideoInfo | null;
|
|
358
362
|
readonly contentInfo: ContentInfo | null;
|
|
359
363
|
readonly metadata: Metadata | null;
|
|
364
|
+
readonly tags: Tags | null;
|
|
360
365
|
readonly s3Bucket: string | null;
|
|
361
366
|
readonly defaultEffects: null | string;
|
|
362
367
|
constructor(fileInfo: FileInfo | GroupFileInfo, { baseCDN, fileName }?: {
|
|
@@ -387,9 +392,10 @@ export type FileFromOptions = {
|
|
|
387
392
|
saveUrlForRecurrentUploads?: boolean;
|
|
388
393
|
pusherKey?: string;
|
|
389
394
|
metadata?: Metadata;
|
|
395
|
+
tags?: Tags;
|
|
390
396
|
};
|
|
391
397
|
/** Uploads file from provided data. */
|
|
392
|
-
export declare function uploadFile(data: SupportedFileInput | Url | Uuid, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartMinFileSize, multipartChunkSize, maxConcurrentRequests, baseCDN, checkForUrlDuplicates, saveUrlForRecurrentUploads, pusherKey, metadata }: FileFromOptions): Promise<UploadcareFile>;
|
|
398
|
+
export declare function uploadFile(data: SupportedFileInput | Url | Uuid, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartMinFileSize, multipartChunkSize, maxConcurrentRequests, baseCDN, checkForUrlDuplicates, saveUrlForRecurrentUploads, pusherKey, metadata, tags }: FileFromOptions): Promise<UploadcareFile>;
|
|
393
399
|
export type DirectOptions = {
|
|
394
400
|
publicKey: string;
|
|
395
401
|
fileName?: string;
|
|
@@ -407,8 +413,9 @@ export type DirectOptions = {
|
|
|
407
413
|
retryNetworkErrorMaxTimes?: number;
|
|
408
414
|
baseCDN?: string;
|
|
409
415
|
metadata?: Metadata;
|
|
416
|
+
tags?: Tags;
|
|
410
417
|
};
|
|
411
|
-
export declare const uploadDirect: (file: SupportedFileInput, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, contentType, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, baseCDN, metadata }: DirectOptions) => Promise<UploadcareFile>;
|
|
418
|
+
export declare const uploadDirect: (file: SupportedFileInput, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, contentType, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, baseCDN, metadata, tags }: DirectOptions) => Promise<UploadcareFile>;
|
|
412
419
|
export type FromUploadedOptions = {
|
|
413
420
|
publicKey: string;
|
|
414
421
|
fileName?: string;
|
|
@@ -449,8 +456,9 @@ export type MultipartOptions = {
|
|
|
449
456
|
maxConcurrentRequests?: number;
|
|
450
457
|
baseCDN?: string;
|
|
451
458
|
metadata?: Metadata;
|
|
459
|
+
tags?: Tags;
|
|
452
460
|
};
|
|
453
|
-
export declare const uploadMultipart: (file: SupportedFileInput, { publicKey, fileName, fileSize, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartChunkSize, maxConcurrentRequests, baseCDN, metadata }: MultipartOptions) => Promise<UploadcareFile>;
|
|
461
|
+
export declare const uploadMultipart: (file: SupportedFileInput, { publicKey, fileName, fileSize, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartChunkSize, maxConcurrentRequests, baseCDN, metadata, tags }: MultipartOptions) => Promise<UploadcareFile>;
|
|
454
462
|
export declare class UploadcareGroup {
|
|
455
463
|
readonly uuid: GroupId;
|
|
456
464
|
readonly filesCount: string;
|
|
@@ -411,7 +411,7 @@ const getUrl = (base, path, query) => {
|
|
|
411
411
|
return url.toString();
|
|
412
412
|
};
|
|
413
413
|
|
|
414
|
-
var version = '6.18.
|
|
414
|
+
var version = '6.18.4';
|
|
415
415
|
|
|
416
416
|
const LIBRARY_NAME = 'UploadcareUploadClient';
|
|
417
417
|
const LIBRARY_VERSION = version;
|
|
@@ -486,7 +486,7 @@ function getStoreValue(store) {
|
|
|
486
486
|
* Performs file uploading request to Uploadcare Upload API. Can be canceled and
|
|
487
487
|
* has progress.
|
|
488
488
|
*/
|
|
489
|
-
function base(file, { publicKey, fileName, contentType, baseURL = defaultSettings.baseURL, secureSignature, secureExpire, store, signal, onProgress, source = 'local', integration, userAgent, retryThrottledRequestMaxTimes = defaultSettings.retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes = defaultSettings.retryNetworkErrorMaxTimes, metadata }) {
|
|
489
|
+
function base(file, { publicKey, fileName, contentType, baseURL = defaultSettings.baseURL, secureSignature, secureExpire, store, signal, onProgress, source = 'local', integration, userAgent, retryThrottledRequestMaxTimes = defaultSettings.retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes = defaultSettings.retryNetworkErrorMaxTimes, metadata, tags }) {
|
|
490
490
|
return retryIfFailed(() => request({
|
|
491
491
|
method: 'POST',
|
|
492
492
|
url: getUrl(baseURL, '/base/', {
|
|
@@ -506,7 +506,8 @@ function base(file, { publicKey, fileName, contentType, baseURL = defaultSetting
|
|
|
506
506
|
signature: secureSignature,
|
|
507
507
|
expire: secureExpire,
|
|
508
508
|
source: source,
|
|
509
|
-
metadata
|
|
509
|
+
metadata,
|
|
510
|
+
tags: tags && tags.join(',')
|
|
510
511
|
}),
|
|
511
512
|
signal,
|
|
512
513
|
onProgress
|
|
@@ -679,7 +680,7 @@ function info(uuid, { publicKey, baseURL = defaultSettings.baseURL, signal, sour
|
|
|
679
680
|
}
|
|
680
681
|
|
|
681
682
|
/** Start multipart uploading. */
|
|
682
|
-
function multipartStart(size, { publicKey, contentType, fileName, multipartChunkSize = defaultSettings.multipartChunkSize, baseURL = '', secureSignature, secureExpire, store, signal, source = 'local', integration, userAgent, retryThrottledRequestMaxTimes = defaultSettings.retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes = defaultSettings.retryNetworkErrorMaxTimes, metadata }) {
|
|
683
|
+
function multipartStart(size, { publicKey, contentType, fileName, multipartChunkSize = defaultSettings.multipartChunkSize, baseURL = '', secureSignature, secureExpire, store, signal, source = 'local', integration, userAgent, retryThrottledRequestMaxTimes = defaultSettings.retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes = defaultSettings.retryNetworkErrorMaxTimes, metadata, tags }) {
|
|
683
684
|
return retryIfFailed(() => request({
|
|
684
685
|
method: 'POST',
|
|
685
686
|
url: getUrl(baseURL, '/multipart/start/', { jsonerrors: 1 }),
|
|
@@ -696,7 +697,8 @@ function multipartStart(size, { publicKey, contentType, fileName, multipartChunk
|
|
|
696
697
|
signature: secureSignature,
|
|
697
698
|
expire: secureExpire,
|
|
698
699
|
source: source,
|
|
699
|
-
metadata
|
|
700
|
+
metadata,
|
|
701
|
+
tags: tags && tags.join(',')
|
|
700
702
|
}),
|
|
701
703
|
signal
|
|
702
704
|
}).then(({ data, headers, request }) => {
|
|
@@ -778,9 +780,9 @@ function isReadyPoll(uuid, { publicKey, baseURL, source, integration, userAgent,
|
|
|
778
780
|
retryNetworkErrorMaxTimes
|
|
779
781
|
}).then((response) => {
|
|
780
782
|
if (response.isReady) {
|
|
783
|
+
onProgress && onProgress({ isComputable: true, value: 1 });
|
|
781
784
|
return response;
|
|
782
785
|
}
|
|
783
|
-
onProgress && onProgress({ isComputable: true, value: 1 });
|
|
784
786
|
return false;
|
|
785
787
|
}),
|
|
786
788
|
signal
|
|
@@ -804,6 +806,7 @@ class UploadcareFile {
|
|
|
804
806
|
videoInfo;
|
|
805
807
|
contentInfo;
|
|
806
808
|
metadata;
|
|
809
|
+
tags;
|
|
807
810
|
s3Bucket;
|
|
808
811
|
defaultEffects = null;
|
|
809
812
|
constructor(fileInfo, { baseCDN = defaultSettings.baseCDN, fileName } = {}) {
|
|
@@ -824,6 +827,7 @@ class UploadcareFile {
|
|
|
824
827
|
this.videoInfo = fileInfo.videoInfo;
|
|
825
828
|
this.contentInfo = fileInfo.contentInfo;
|
|
826
829
|
this.metadata = fileInfo.metadata || null;
|
|
830
|
+
this.tags = fileInfo.tags || null;
|
|
827
831
|
this.s3Bucket = s3Bucket || null;
|
|
828
832
|
this.s3Url = s3Url;
|
|
829
833
|
if (isGroupFileInfo(fileInfo)) {
|
|
@@ -832,7 +836,7 @@ class UploadcareFile {
|
|
|
832
836
|
}
|
|
833
837
|
}
|
|
834
838
|
|
|
835
|
-
const uploadDirect = (file, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, contentType, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, baseCDN, metadata }) => {
|
|
839
|
+
const uploadDirect = (file, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, contentType, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, baseCDN, metadata, tags }) => {
|
|
836
840
|
return base(file, {
|
|
837
841
|
publicKey,
|
|
838
842
|
fileName,
|
|
@@ -848,7 +852,8 @@ const uploadDirect = (file, { publicKey, fileName, baseURL, secureSignature, sec
|
|
|
848
852
|
userAgent,
|
|
849
853
|
retryThrottledRequestMaxTimes,
|
|
850
854
|
retryNetworkErrorMaxTimes,
|
|
851
|
-
metadata
|
|
855
|
+
metadata,
|
|
856
|
+
tags
|
|
852
857
|
})
|
|
853
858
|
.then(({ file }) => {
|
|
854
859
|
return isReadyPoll(file, {
|
|
@@ -867,26 +872,17 @@ const uploadDirect = (file, { publicKey, fileName, baseURL, secureSignature, sec
|
|
|
867
872
|
};
|
|
868
873
|
|
|
869
874
|
const uploadFromUploaded = (uuid, { publicKey, fileName, baseURL, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, baseCDN }) => {
|
|
870
|
-
return
|
|
875
|
+
return isReadyPoll(uuid, {
|
|
871
876
|
publicKey,
|
|
872
877
|
baseURL,
|
|
873
878
|
signal,
|
|
879
|
+
onProgress,
|
|
874
880
|
source,
|
|
875
881
|
integration,
|
|
876
882
|
userAgent,
|
|
877
883
|
retryThrottledRequestMaxTimes,
|
|
878
884
|
retryNetworkErrorMaxTimes
|
|
879
|
-
})
|
|
880
|
-
.then((fileInfo) => new UploadcareFile(fileInfo, { baseCDN, fileName }))
|
|
881
|
-
.then((result) => {
|
|
882
|
-
// hack for node ¯\_(ツ)_/¯
|
|
883
|
-
if (onProgress)
|
|
884
|
-
onProgress({
|
|
885
|
-
isComputable: true,
|
|
886
|
-
value: 1
|
|
887
|
-
});
|
|
888
|
-
return result;
|
|
889
|
-
});
|
|
885
|
+
}).then((fileInfo) => new UploadcareFile(fileInfo, { baseCDN, fileName }));
|
|
890
886
|
};
|
|
891
887
|
|
|
892
888
|
const race = (fns, { signal } = {}) => {
|
|
@@ -1216,15 +1212,20 @@ const uploadFromUrl = (sourceUrl, { publicKey, fileName, baseURL, baseCDN, check
|
|
|
1216
1212
|
throw result;
|
|
1217
1213
|
return result;
|
|
1218
1214
|
})
|
|
1219
|
-
.then((result) =>
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1215
|
+
.then((result) => {
|
|
1216
|
+
if (result.isReady) {
|
|
1217
|
+
return result;
|
|
1218
|
+
}
|
|
1219
|
+
return isReadyPoll(result.uuid, {
|
|
1220
|
+
publicKey,
|
|
1221
|
+
baseURL,
|
|
1222
|
+
integration,
|
|
1223
|
+
userAgent,
|
|
1224
|
+
retryThrottledRequestMaxTimes,
|
|
1225
|
+
onProgress,
|
|
1226
|
+
signal
|
|
1227
|
+
});
|
|
1228
|
+
})
|
|
1228
1229
|
.then((fileInfo) => new UploadcareFile(fileInfo, { baseCDN }));
|
|
1229
1230
|
|
|
1230
1231
|
const memo = new WeakMap();
|
|
@@ -1344,7 +1345,7 @@ const uploadPart = (chunk, url, { publicKey, contentType, onProgress, signal, in
|
|
|
1344
1345
|
retryThrottledRequestMaxTimes,
|
|
1345
1346
|
retryNetworkErrorMaxTimes
|
|
1346
1347
|
});
|
|
1347
|
-
const uploadMultipart = async (file, { publicKey, fileName, fileSize, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartChunkSize = defaultSettings.multipartChunkSize, maxConcurrentRequests = defaultSettings.maxConcurrentRequests, baseCDN, metadata }) => {
|
|
1348
|
+
const uploadMultipart = async (file, { publicKey, fileName, fileSize, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartChunkSize = defaultSettings.multipartChunkSize, maxConcurrentRequests = defaultSettings.maxConcurrentRequests, baseCDN, metadata, tags }) => {
|
|
1348
1349
|
const size = fileSize ?? (await getFileSize(file));
|
|
1349
1350
|
let progressValues;
|
|
1350
1351
|
const createProgressHandler = (totalChunks, chunkIdx) => {
|
|
@@ -1381,6 +1382,7 @@ const uploadMultipart = async (file, { publicKey, fileName, fileSize, baseURL, s
|
|
|
1381
1382
|
retryThrottledRequestMaxTimes,
|
|
1382
1383
|
retryNetworkErrorMaxTimes,
|
|
1383
1384
|
metadata,
|
|
1385
|
+
tags,
|
|
1384
1386
|
multipartChunkSize
|
|
1385
1387
|
})
|
|
1386
1388
|
.then(async ({ uuid, parts }) => {
|
|
@@ -1411,25 +1413,23 @@ const uploadMultipart = async (file, { publicKey, fileName, fileSize, baseURL, s
|
|
|
1411
1413
|
if (fileInfo.isReady) {
|
|
1412
1414
|
return fileInfo;
|
|
1413
1415
|
}
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
});
|
|
1426
|
-
}
|
|
1416
|
+
return isReadyPoll(fileInfo.uuid, {
|
|
1417
|
+
publicKey,
|
|
1418
|
+
baseURL,
|
|
1419
|
+
source,
|
|
1420
|
+
integration,
|
|
1421
|
+
userAgent,
|
|
1422
|
+
retryThrottledRequestMaxTimes,
|
|
1423
|
+
retryNetworkErrorMaxTimes,
|
|
1424
|
+
onProgress,
|
|
1425
|
+
signal
|
|
1426
|
+
});
|
|
1427
1427
|
})
|
|
1428
1428
|
.then((fileInfo) => new UploadcareFile(fileInfo, { baseCDN }));
|
|
1429
1429
|
};
|
|
1430
1430
|
|
|
1431
1431
|
/** Uploads file from provided data. */
|
|
1432
|
-
async function uploadFile(data, { publicKey, fileName, baseURL = defaultSettings.baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartMinFileSize, multipartChunkSize, maxConcurrentRequests, baseCDN = defaultSettings.baseCDN, checkForUrlDuplicates, saveUrlForRecurrentUploads, pusherKey, metadata }) {
|
|
1432
|
+
async function uploadFile(data, { publicKey, fileName, baseURL = defaultSettings.baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartMinFileSize, multipartChunkSize, maxConcurrentRequests, baseCDN = defaultSettings.baseCDN, checkForUrlDuplicates, saveUrlForRecurrentUploads, pusherKey, metadata, tags }) {
|
|
1433
1433
|
if (isFileData(data)) {
|
|
1434
1434
|
const fileSize = await getFileSize(data);
|
|
1435
1435
|
if (isMultipart(fileSize, multipartMinFileSize)) {
|
|
@@ -1452,7 +1452,8 @@ async function uploadFile(data, { publicKey, fileName, baseURL = defaultSettings
|
|
|
1452
1452
|
retryThrottledRequestMaxTimes,
|
|
1453
1453
|
retryNetworkErrorMaxTimes,
|
|
1454
1454
|
baseCDN,
|
|
1455
|
-
metadata
|
|
1455
|
+
metadata,
|
|
1456
|
+
tags
|
|
1456
1457
|
});
|
|
1457
1458
|
}
|
|
1458
1459
|
return uploadDirect(data, {
|
|
@@ -1471,7 +1472,8 @@ async function uploadFile(data, { publicKey, fileName, baseURL = defaultSettings
|
|
|
1471
1472
|
retryThrottledRequestMaxTimes,
|
|
1472
1473
|
retryNetworkErrorMaxTimes,
|
|
1473
1474
|
baseCDN,
|
|
1474
|
-
metadata
|
|
1475
|
+
metadata,
|
|
1476
|
+
tags
|
|
1475
1477
|
});
|
|
1476
1478
|
}
|
|
1477
1479
|
if (isUrl(data)) {
|