@uploadcare/upload-client 3.1.1 → 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.
@@ -176,6 +176,10 @@ 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
 
@@ -223,9 +227,10 @@ var isFileValue = function (value) {
223
227
  };
224
228
  function collectParams(params, inputKey, inputValue) {
225
229
  if (isFileValue(inputValue)) {
226
- var name_1 = inputValue.name;
230
+ var name_1 = inputValue.name, contentType = inputValue.contentType;
227
231
  var file = transformFile(inputValue.data); // lgtm [js/superfluous-trailing-arguments]
228
- params.push(name_1 ? [inputKey, file, name_1] : [inputKey, file]);
232
+ var options = getFileOptions({ name: name_1, contentType: contentType });
233
+ params.push(__spreadArrays([inputKey, file], options));
229
234
  }
230
235
  else if (isObjectValue(inputValue)) {
231
236
  for (var _i = 0, _a = Object.entries(inputValue); _i < _a.length; _i++) {
@@ -249,10 +254,12 @@ function getFormDataParams(options) {
249
254
  }
250
255
  function buildFormData(options) {
251
256
  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);
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));
256
263
  }
257
264
  return formData;
258
265
  }
@@ -435,7 +442,7 @@ function getStoreValue(store) {
435
442
  * Can be canceled and has progress.
436
443
  */
437
444
  function base(file, _a) {
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;
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;
439
446
  return retryIfThrottled(function () {
440
447
  var _a;
441
448
  return request({
@@ -449,7 +456,8 @@ function base(file, _a) {
449
456
  data: buildFormData({
450
457
  file: {
451
458
  data: file,
452
- name: (_a = fileName !== null && fileName !== void 0 ? fileName : file.name) !== null && _a !== void 0 ? _a : defaultFilename
459
+ name: (_a = fileName !== null && fileName !== void 0 ? fileName : file.name) !== null && _a !== void 0 ? _a : defaultFilename,
460
+ contentType: contentType
453
461
  },
454
462
  UPLOADCARE_PUB_KEY: publicKey,
455
463
  UPLOADCARE_STORE: getStoreValue(store),
@@ -853,10 +861,11 @@ function isReadyPoll(_a) {
853
861
  }
854
862
 
855
863
  var uploadFromObject = function (file, _a) {
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;
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;
857
865
  return base(file, {
858
866
  publicKey: publicKey,
859
867
  fileName: fileName,
868
+ contentType: contentType,
860
869
  baseURL: baseURL,
861
870
  secureSignature: secureSignature,
862
871
  secureExpire: secureExpire,
@@ -1481,6 +1490,7 @@ function uploadFile(data, _a) {
1481
1490
  return uploadFromObject(data, {
1482
1491
  publicKey: publicKey,
1483
1492
  fileName: fileName,
1493
+ contentType: contentType,
1484
1494
  baseURL: baseURL,
1485
1495
  secureSignature: secureSignature,
1486
1496
  secureExpire: secureExpire,
@@ -117,6 +117,7 @@ function identity(obj) {
117
117
  return obj;
118
118
  }
119
119
 
120
+ const getFileOptions = ({ name }) => name ? [name] : [];
120
121
  const transformFile = identity;
121
122
  var getFormData = () => new FormData();
122
123
 
@@ -162,9 +163,10 @@ const isFileValue = (value) => !!value &&
162
163
  isFileData(value.data);
163
164
  function collectParams(params, inputKey, inputValue) {
164
165
  if (isFileValue(inputValue)) {
165
- const name = inputValue.name;
166
+ const { name, contentType } = inputValue;
166
167
  const file = transformFile(inputValue.data); // lgtm [js/superfluous-trailing-arguments]
167
- params.push(name ? [inputKey, file, name] : [inputKey, file]);
168
+ const options = getFileOptions({ name, contentType });
169
+ params.push([inputKey, file, ...options]);
168
170
  }
169
171
  else if (isObjectValue(inputValue)) {
170
172
  for (const [key, value] of Object.entries(inputValue)) {
@@ -186,9 +188,11 @@ function getFormDataParams(options) {
186
188
  }
187
189
  function buildFormData(options) {
188
190
  const formData = getFormData();
189
- const params = getFormDataParams(options);
190
- for (const param of params) {
191
- formData.append(...param);
191
+ const paramsList = getFormDataParams(options);
192
+ for (const params of paramsList) {
193
+ const [key, value, ...options] = params;
194
+ // node form-data has another signature for append
195
+ formData.append(key, value, ...options);
192
196
  }
193
197
  return formData;
194
198
  }
@@ -350,7 +354,7 @@ function getStoreValue(store) {
350
354
  * Performs file uploading request to Uploadcare Upload API.
351
355
  * Can be canceled and has progress.
352
356
  */
353
- function base(file, { publicKey, fileName, baseURL = defaultSettings.baseURL, secureSignature, secureExpire, store, signal, onProgress, source = 'local', integration, userAgent, retryThrottledRequestMaxTimes = defaultSettings.retryThrottledRequestMaxTimes, metadata }) {
357
+ function base(file, { publicKey, fileName, contentType, baseURL = defaultSettings.baseURL, secureSignature, secureExpire, store, signal, onProgress, source = 'local', integration, userAgent, retryThrottledRequestMaxTimes = defaultSettings.retryThrottledRequestMaxTimes, metadata }) {
354
358
  return retryIfThrottled(() => {
355
359
  var _a;
356
360
  return request({
@@ -364,7 +368,8 @@ function base(file, { publicKey, fileName, baseURL = defaultSettings.baseURL, se
364
368
  data: buildFormData({
365
369
  file: {
366
370
  data: file,
367
- name: (_a = fileName !== null && fileName !== void 0 ? fileName : file.name) !== null && _a !== void 0 ? _a : defaultFilename
371
+ name: (_a = fileName !== null && fileName !== void 0 ? fileName : file.name) !== null && _a !== void 0 ? _a : defaultFilename,
372
+ contentType
368
373
  },
369
374
  UPLOADCARE_PUB_KEY: publicKey,
370
375
  UPLOADCARE_STORE: getStoreValue(store),
@@ -726,10 +731,11 @@ function isReadyPoll({ file, publicKey, baseURL, source, integration, userAgent,
726
731
  });
727
732
  }
728
733
 
729
- const uploadFromObject = (file, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, baseCDN, metadata }) => {
734
+ const uploadFromObject = (file, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, contentType, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, baseCDN, metadata }) => {
730
735
  return base(file, {
731
736
  publicKey,
732
737
  fileName,
738
+ contentType,
733
739
  baseURL,
734
740
  secureSignature,
735
741
  secureExpire,
@@ -1307,6 +1313,7 @@ function uploadFile(data, { publicKey, fileName, baseURL = defaultSettings.baseU
1307
1313
  return uploadFromObject(data, {
1308
1314
  publicKey,
1309
1315
  fileName,
1316
+ contentType,
1310
1317
  baseURL,
1311
1318
  secureSignature,
1312
1319
  secureExpire,
package/dist/index.cjs CHANGED
@@ -215,6 +215,15 @@ function identity(obj) {
215
215
  return obj;
216
216
  }
217
217
 
218
+ var getFileOptions = function (_a) {
219
+ var name = _a.name, contentType = _a.contentType;
220
+ return [
221
+ {
222
+ filename: name,
223
+ contentType: contentType
224
+ }
225
+ ];
226
+ };
218
227
  var transformFile = identity;
219
228
  var getFormData = (function () { return new NodeFormData__default["default"](); });
220
229
 
@@ -262,9 +271,10 @@ var isFileValue = function (value) {
262
271
  };
263
272
  function collectParams(params, inputKey, inputValue) {
264
273
  if (isFileValue(inputValue)) {
265
- var name_1 = inputValue.name;
274
+ var name_1 = inputValue.name, contentType = inputValue.contentType;
266
275
  var file = transformFile(inputValue.data); // lgtm [js/superfluous-trailing-arguments]
267
- params.push(name_1 ? [inputKey, file, name_1] : [inputKey, file]);
276
+ var options = getFileOptions({ name: name_1, contentType: contentType });
277
+ params.push(__spreadArrays([inputKey, file], options));
268
278
  }
269
279
  else if (isObjectValue(inputValue)) {
270
280
  for (var _i = 0, _a = Object.entries(inputValue); _i < _a.length; _i++) {
@@ -288,10 +298,12 @@ function getFormDataParams(options) {
288
298
  }
289
299
  function buildFormData(options) {
290
300
  var formData = getFormData();
291
- var params = getFormDataParams(options);
292
- for (var _i = 0, params_1 = params; _i < params_1.length; _i++) {
293
- var param = params_1[_i];
294
- formData.append.apply(formData, param);
301
+ var paramsList = getFormDataParams(options);
302
+ for (var _i = 0, paramsList_1 = paramsList; _i < paramsList_1.length; _i++) {
303
+ var params = paramsList_1[_i];
304
+ var key = params[0], value = params[1], options_1 = params.slice(2);
305
+ // node form-data has another signature for append
306
+ formData.append.apply(formData, __spreadArrays([key, value], options_1));
295
307
  }
296
308
  return formData;
297
309
  }
@@ -474,7 +486,7 @@ function getStoreValue(store) {
474
486
  * Can be canceled and has progress.
475
487
  */
476
488
  function base(file, _a) {
477
- var publicKey = _a.publicKey, fileName = _a.fileName, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, onProgress = _a.onProgress, _c = _a.source, source = _c === void 0 ? 'local' : _c, integration = _a.integration, userAgent = _a.userAgent, _d = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _d === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _d, metadata = _a.metadata;
489
+ var publicKey = _a.publicKey, fileName = _a.fileName, contentType = _a.contentType, _b = _a.baseURL, baseURL = _b === void 0 ? defaultSettings.baseURL : _b, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, onProgress = _a.onProgress, _c = _a.source, source = _c === void 0 ? 'local' : _c, integration = _a.integration, userAgent = _a.userAgent, _d = _a.retryThrottledRequestMaxTimes, retryThrottledRequestMaxTimes = _d === void 0 ? defaultSettings.retryThrottledRequestMaxTimes : _d, metadata = _a.metadata;
478
490
  return retryIfThrottled(function () {
479
491
  var _a;
480
492
  return request({
@@ -488,7 +500,8 @@ function base(file, _a) {
488
500
  data: buildFormData({
489
501
  file: {
490
502
  data: file,
491
- name: (_a = fileName !== null && fileName !== void 0 ? fileName : file.name) !== null && _a !== void 0 ? _a : defaultFilename
503
+ name: (_a = fileName !== null && fileName !== void 0 ? fileName : file.name) !== null && _a !== void 0 ? _a : defaultFilename,
504
+ contentType: contentType
492
505
  },
493
506
  UPLOADCARE_PUB_KEY: publicKey,
494
507
  UPLOADCARE_STORE: getStoreValue(store),
@@ -892,10 +905,11 @@ function isReadyPoll(_a) {
892
905
  }
893
906
 
894
907
  var uploadFromObject = function (file, _a) {
895
- var publicKey = _a.publicKey, fileName = _a.fileName, baseURL = _a.baseURL, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, signal = _a.signal, onProgress = _a.onProgress, source = _a.source, integration = _a.integration, userAgent = _a.userAgent, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, baseCDN = _a.baseCDN, metadata = _a.metadata;
908
+ var publicKey = _a.publicKey, fileName = _a.fileName, baseURL = _a.baseURL, secureSignature = _a.secureSignature, secureExpire = _a.secureExpire, store = _a.store, contentType = _a.contentType, signal = _a.signal, onProgress = _a.onProgress, source = _a.source, integration = _a.integration, userAgent = _a.userAgent, retryThrottledRequestMaxTimes = _a.retryThrottledRequestMaxTimes, baseCDN = _a.baseCDN, metadata = _a.metadata;
896
909
  return base(file, {
897
910
  publicKey: publicKey,
898
911
  fileName: fileName,
912
+ contentType: contentType,
899
913
  baseURL: baseURL,
900
914
  secureSignature: secureSignature,
901
915
  secureExpire: secureExpire,
@@ -1510,6 +1524,7 @@ function uploadFile(data, _a) {
1510
1524
  return uploadFromObject(data, {
1511
1525
  publicKey: publicKey,
1512
1526
  fileName: fileName,
1527
+ contentType: contentType,
1513
1528
  baseURL: baseURL,
1514
1529
  secureSignature: secureSignature,
1515
1530
  secureExpire: secureExpire,
package/dist/index.js CHANGED
@@ -144,6 +144,12 @@ function identity(obj) {
144
144
  return obj;
145
145
  }
146
146
 
147
+ const getFileOptions = ({ name, contentType }) => [
148
+ {
149
+ filename: name,
150
+ contentType
151
+ }
152
+ ];
147
153
  const transformFile = identity;
148
154
  var getFormData = () => new NodeFormData();
149
155
 
@@ -189,9 +195,10 @@ const isFileValue = (value) => !!value &&
189
195
  isFileData(value.data);
190
196
  function collectParams(params, inputKey, inputValue) {
191
197
  if (isFileValue(inputValue)) {
192
- const name = inputValue.name;
198
+ const { name, contentType } = inputValue;
193
199
  const file = transformFile(inputValue.data); // lgtm [js/superfluous-trailing-arguments]
194
- params.push(name ? [inputKey, file, name] : [inputKey, file]);
200
+ const options = getFileOptions({ name, contentType });
201
+ params.push([inputKey, file, ...options]);
195
202
  }
196
203
  else if (isObjectValue(inputValue)) {
197
204
  for (const [key, value] of Object.entries(inputValue)) {
@@ -213,9 +220,11 @@ function getFormDataParams(options) {
213
220
  }
214
221
  function buildFormData(options) {
215
222
  const formData = getFormData();
216
- const params = getFormDataParams(options);
217
- for (const param of params) {
218
- formData.append(...param);
223
+ const paramsList = getFormDataParams(options);
224
+ for (const params of paramsList) {
225
+ const [key, value, ...options] = params;
226
+ // node form-data has another signature for append
227
+ formData.append(key, value, ...options);
219
228
  }
220
229
  return formData;
221
230
  }
@@ -377,7 +386,7 @@ function getStoreValue(store) {
377
386
  * Performs file uploading request to Uploadcare Upload API.
378
387
  * Can be canceled and has progress.
379
388
  */
380
- function base(file, { publicKey, fileName, baseURL = defaultSettings.baseURL, secureSignature, secureExpire, store, signal, onProgress, source = 'local', integration, userAgent, retryThrottledRequestMaxTimes = defaultSettings.retryThrottledRequestMaxTimes, metadata }) {
389
+ function base(file, { publicKey, fileName, contentType, baseURL = defaultSettings.baseURL, secureSignature, secureExpire, store, signal, onProgress, source = 'local', integration, userAgent, retryThrottledRequestMaxTimes = defaultSettings.retryThrottledRequestMaxTimes, metadata }) {
381
390
  return retryIfThrottled(() => {
382
391
  var _a;
383
392
  return request({
@@ -391,7 +400,8 @@ function base(file, { publicKey, fileName, baseURL = defaultSettings.baseURL, se
391
400
  data: buildFormData({
392
401
  file: {
393
402
  data: file,
394
- name: (_a = fileName !== null && fileName !== void 0 ? fileName : file.name) !== null && _a !== void 0 ? _a : defaultFilename
403
+ name: (_a = fileName !== null && fileName !== void 0 ? fileName : file.name) !== null && _a !== void 0 ? _a : defaultFilename,
404
+ contentType
395
405
  },
396
406
  UPLOADCARE_PUB_KEY: publicKey,
397
407
  UPLOADCARE_STORE: getStoreValue(store),
@@ -753,10 +763,11 @@ function isReadyPoll({ file, publicKey, baseURL, source, integration, userAgent,
753
763
  });
754
764
  }
755
765
 
756
- const uploadFromObject = (file, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, baseCDN, metadata }) => {
766
+ const uploadFromObject = (file, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, contentType, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, baseCDN, metadata }) => {
757
767
  return base(file, {
758
768
  publicKey,
759
769
  fileName,
770
+ contentType,
760
771
  baseURL,
761
772
  secureSignature,
762
773
  secureExpire,
@@ -1324,6 +1335,7 @@ function uploadFile(data, { publicKey, fileName, baseURL = defaultSettings.baseU
1324
1335
  return uploadFromObject(data, {
1325
1336
  publicKey,
1326
1337
  fileName,
1338
+ contentType,
1327
1339
  baseURL,
1328
1340
  secureSignature,
1329
1341
  secureExpire,
package/dist/types.d.ts CHANGED
@@ -152,6 +152,7 @@ export declare type BaseOptions = {
152
152
  secureSignature?: string;
153
153
  secureExpire?: string;
154
154
  store?: boolean;
155
+ contentType?: string;
155
156
  signal?: AbortSignal;
156
157
  onProgress?: ProgressCallback;
157
158
  source?: string;
@@ -160,7 +161,7 @@ export declare type BaseOptions = {
160
161
  retryThrottledRequestMaxTimes?: number;
161
162
  metadata?: Metadata;
162
163
  };
163
- declare function base(file: NodeFile | BrowserFile, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, metadata }: BaseOptions): Promise<BaseResponse>;
164
+ declare function base(file: NodeFile | BrowserFile, { publicKey, fileName, contentType, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, metadata }: BaseOptions): Promise<BaseResponse>;
164
165
  declare enum TypeEnum {
165
166
  Token = "token",
166
167
  FileInfo = "file_info"
@@ -332,6 +333,7 @@ export declare type FromObjectOptions = {
332
333
  secureSignature?: string;
333
334
  secureExpire?: string;
334
335
  store?: boolean;
336
+ contentType?: string;
335
337
  signal?: AbortSignal;
336
338
  onProgress?: ProgressCallback;
337
339
  source?: string;
@@ -341,7 +343,7 @@ export declare type FromObjectOptions = {
341
343
  baseCDN?: string;
342
344
  metadata?: Metadata;
343
345
  };
344
- declare const uploadFromObject: (file: NodeFile | BrowserFile, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, baseCDN, metadata }: FromObjectOptions) => Promise<UploadcareFile>;
346
+ declare const uploadFromObject: (file: NodeFile | BrowserFile, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, contentType, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, baseCDN, metadata }: FromObjectOptions) => Promise<UploadcareFile>;
345
347
  export declare type UploadFromUrlOptions = {
346
348
  baseCDN?: string;
347
349
  onProgress?: ProgressCallback;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uploadcare/upload-client",
3
- "version": "3.1.1",
3
+ "version": "3.1.2-alpha.0",
4
4
  "description": "Library for work with Uploadcare Upload API",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",