@uploadcare/upload-client 6.4.1 → 6.5.0-alpha.2

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.
@@ -0,0 +1,501 @@
1
+ // Generated by dts-bundle-generator v6.12.0
2
+
3
+ import NodeFormData from 'form-data';
4
+
5
+ export type CustomUserAgentOptions = {
6
+ publicKey: string;
7
+ libraryName: string;
8
+ libraryVersion: string;
9
+ languageName: string;
10
+ integration?: string;
11
+ };
12
+ export type CustomUserAgentFn = (options: CustomUserAgentOptions) => string;
13
+ export type CustomUserAgent = string | CustomUserAgentFn;
14
+ export type GetUserAgentOptions = {
15
+ libraryName: string;
16
+ libraryVersion: string;
17
+ publicKey?: string;
18
+ integration?: string;
19
+ userAgent?: CustomUserAgent | null;
20
+ };
21
+ export declare function getUserAgent({ libraryName, libraryVersion, userAgent, publicKey, integration }: GetUserAgentOptions): string;
22
+ export declare class UploadcareNetworkError extends Error {
23
+ originalProgressEvent: ProgressEvent;
24
+ constructor(progressEvent: ProgressEvent);
25
+ }
26
+ export type GeoLocation = {
27
+ latitude: number;
28
+ longitude: number;
29
+ };
30
+ export type ImageInfo = {
31
+ height: number;
32
+ width: number;
33
+ geoLocation: GeoLocation | null;
34
+ datetimeOriginal: string;
35
+ format: string;
36
+ colorMode: string;
37
+ dpi: {
38
+ "0": number;
39
+ "1": number;
40
+ } | null;
41
+ orientation: number | null;
42
+ sequence: boolean | null;
43
+ };
44
+ export type AudioInfo = {
45
+ bitrate: number | null;
46
+ codec: string | null;
47
+ sampleRate: number | null;
48
+ channels: string | null;
49
+ };
50
+ export type VideoInfo = {
51
+ duration: number;
52
+ format: string;
53
+ bitrate: number;
54
+ audio: AudioInfo | null;
55
+ video: {
56
+ height: number;
57
+ width: number;
58
+ frameRate: number;
59
+ bitrate: number;
60
+ codec: string;
61
+ };
62
+ };
63
+ export type MimeInfo = {
64
+ mime: string;
65
+ type: string;
66
+ subtype: string;
67
+ };
68
+ export type ContentInfo = {
69
+ mime?: MimeInfo;
70
+ image?: ImageInfo;
71
+ video?: VideoInfo;
72
+ };
73
+ export type Metadata = Record<string, string>;
74
+ export type StoreValue = "auto" | boolean;
75
+ export interface DefaultSettings {
76
+ baseCDN: string;
77
+ baseURL: string;
78
+ maxContentLength: number;
79
+ retryThrottledRequestMaxTimes: number;
80
+ retryNetworkErrorMaxTimes: number;
81
+ multipartMinFileSize: number;
82
+ multipartChunkSize: number;
83
+ multipartMinLastPartSize: number;
84
+ maxConcurrentRequests: number;
85
+ pollingTimeoutMilliseconds: number;
86
+ pusherKey: string;
87
+ }
88
+ export interface Settings extends Partial<DefaultSettings> {
89
+ publicKey: string;
90
+ fileName?: string;
91
+ contentType?: string;
92
+ store?: StoreValue;
93
+ secureSignature?: string;
94
+ secureExpire?: string;
95
+ integration?: string;
96
+ userAgent?: CustomUserAgent;
97
+ checkForUrlDuplicates?: boolean;
98
+ saveUrlForRecurrentUploads?: boolean;
99
+ source?: string;
100
+ jsonpCallback?: string;
101
+ }
102
+ export type BrowserFile = Blob | File;
103
+ export type NodeFile = Buffer;
104
+ export type ReactNativeAsset = {
105
+ type: string;
106
+ uri: string;
107
+ name?: string;
108
+ };
109
+ export type SupportedFileInput = BrowserFile | NodeFile | ReactNativeAsset;
110
+ export type Sliceable = BrowserFile | NodeFile;
111
+ export type FileInfo = {
112
+ size: number;
113
+ done: number;
114
+ total: number;
115
+ uuid: Uuid;
116
+ fileId: Uuid;
117
+ originalFilename: string;
118
+ filename: string;
119
+ mimeType: string;
120
+ isImage: boolean;
121
+ isStored: boolean;
122
+ isReady: string;
123
+ imageInfo: ImageInfo | null;
124
+ videoInfo: VideoInfo | null;
125
+ contentInfo: ContentInfo | null;
126
+ s3Bucket?: string;
127
+ metadata?: Metadata;
128
+ };
129
+ export type GroupInfo = {
130
+ datetimeCreated: string;
131
+ datetimeStored: string | null;
132
+ filesCount: string;
133
+ cdnUrl: string;
134
+ files: FileInfo[];
135
+ url: string;
136
+ id: GroupId;
137
+ };
138
+ export type Token = string;
139
+ export type Uuid = string;
140
+ export type GroupId = string;
141
+ export type Url = string;
142
+ export type ComputableProgressInfo = {
143
+ isComputable: true;
144
+ value: number;
145
+ };
146
+ export type UnknownProgressInfo = {
147
+ isComputable: false;
148
+ };
149
+ export type ProgressCallback<T = ComputableProgressInfo | UnknownProgressInfo> = (arg: T) => void;
150
+ export type BaseResponse = {
151
+ file: Uuid;
152
+ };
153
+ export type BaseOptions = {
154
+ publicKey: string;
155
+ fileName?: string;
156
+ baseURL?: string;
157
+ secureSignature?: string;
158
+ secureExpire?: string;
159
+ store?: StoreValue;
160
+ contentType?: string;
161
+ signal?: AbortSignal;
162
+ onProgress?: ProgressCallback;
163
+ source?: string;
164
+ integration?: string;
165
+ userAgent?: CustomUserAgent;
166
+ retryThrottledRequestMaxTimes?: number;
167
+ retryNetworkErrorMaxTimes?: number;
168
+ metadata?: Metadata;
169
+ };
170
+ /**
171
+ * Performs file uploading request to Uploadcare Upload API. Can be canceled and
172
+ * has progress.
173
+ */
174
+ export function base(file: SupportedFileInput, { publicKey, fileName, contentType, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, metadata }: BaseOptions): Promise<BaseResponse>;
175
+ export declare enum TypeEnum {
176
+ Token = "token",
177
+ FileInfo = "file_info"
178
+ }
179
+ export type TokenResponse = {
180
+ type: TypeEnum.Token;
181
+ token: string;
182
+ };
183
+ export type FileInfoResponse = {
184
+ type: TypeEnum.FileInfo;
185
+ } & FileInfo;
186
+ export type FromUrlSuccessResponse = FileInfoResponse | TokenResponse;
187
+ export type FromUrlResponse = FromUrlSuccessResponse;
188
+ export type FromUrlOptions = {
189
+ publicKey: string;
190
+ baseURL?: string;
191
+ store?: StoreValue;
192
+ fileName?: string;
193
+ checkForUrlDuplicates?: boolean;
194
+ saveUrlForRecurrentUploads?: boolean;
195
+ secureSignature?: string;
196
+ secureExpire?: string;
197
+ signal?: AbortSignal;
198
+ source?: string;
199
+ integration?: string;
200
+ userAgent?: CustomUserAgent;
201
+ retryThrottledRequestMaxTimes?: number;
202
+ retryNetworkErrorMaxTimes?: number;
203
+ metadata?: Metadata;
204
+ };
205
+ /** Uploading files from URL. */
206
+ export function fromUrl(sourceUrl: Url, { publicKey, baseURL, store, fileName, checkForUrlDuplicates, saveUrlForRecurrentUploads, secureSignature, secureExpire, source, signal, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, metadata }: FromUrlOptions): Promise<FromUrlSuccessResponse>;
207
+ export declare enum Status {
208
+ Unknown = "unknown",
209
+ Waiting = "waiting",
210
+ Progress = "progress",
211
+ Error = "error",
212
+ Success = "success"
213
+ }
214
+ export type StatusUnknownResponse = {
215
+ status: Status.Unknown;
216
+ };
217
+ export type StatusWaitingResponse = {
218
+ status: Status.Waiting;
219
+ };
220
+ export type StatusProgressResponse = {
221
+ status: Status.Progress;
222
+ size: number;
223
+ done: number;
224
+ total: number | "unknown";
225
+ };
226
+ export type StatusErrorResponse = {
227
+ status: Status.Error;
228
+ error: string;
229
+ errorCode: string;
230
+ };
231
+ export type StatusSuccessResponse = {
232
+ status: Status.Success;
233
+ } & FileInfo;
234
+ export type FromUrlStatusResponse = StatusUnknownResponse | StatusWaitingResponse | StatusProgressResponse | StatusErrorResponse | StatusSuccessResponse;
235
+ export type FromUrlStatusOptions = {
236
+ publicKey?: string;
237
+ baseURL?: string;
238
+ signal?: AbortSignal;
239
+ integration?: string;
240
+ userAgent?: CustomUserAgent;
241
+ retryThrottledRequestMaxTimes?: number;
242
+ retryNetworkErrorMaxTimes?: number;
243
+ };
244
+ /** Checking upload status and working with file tokens. */
245
+ export function fromUrlStatus(token: Token, { publicKey, baseURL, signal, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes }?: FromUrlStatusOptions): Promise<FromUrlStatusResponse>;
246
+ export type GroupOptions = {
247
+ publicKey: string;
248
+ baseURL?: string;
249
+ jsonpCallback?: string;
250
+ secureSignature?: string;
251
+ secureExpire?: string;
252
+ signal?: AbortSignal;
253
+ source?: string;
254
+ integration?: string;
255
+ userAgent?: CustomUserAgent;
256
+ retryThrottledRequestMaxTimes?: number;
257
+ retryNetworkErrorMaxTimes?: number;
258
+ };
259
+ /** Create files group. */
260
+ export function group(uuids: Uuid[], { publicKey, baseURL, jsonpCallback, secureSignature, secureExpire, signal, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes }: GroupOptions): Promise<GroupInfo>;
261
+ export type GroupInfoOptions = {
262
+ publicKey: string;
263
+ baseURL?: string;
264
+ signal?: AbortSignal;
265
+ source?: string;
266
+ integration?: string;
267
+ userAgent?: CustomUserAgent;
268
+ retryThrottledRequestMaxTimes?: number;
269
+ retryNetworkErrorMaxTimes?: number;
270
+ };
271
+ /** Get info about group. */
272
+ export function groupInfo(id: GroupId, { publicKey, baseURL, signal, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes }: GroupInfoOptions): Promise<GroupInfo>;
273
+ export type InfoOptions = {
274
+ publicKey: string;
275
+ baseURL?: string;
276
+ signal?: AbortSignal;
277
+ source?: string;
278
+ integration?: string;
279
+ userAgent?: CustomUserAgent;
280
+ retryThrottledRequestMaxTimes?: number;
281
+ retryNetworkErrorMaxTimes?: number;
282
+ };
283
+ /** Returns a JSON dictionary holding file info. */
284
+ export function info(uuid: Uuid, { publicKey, baseURL, signal, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes }: InfoOptions): Promise<FileInfo>;
285
+ export type MultipartStartOptions = {
286
+ publicKey: string;
287
+ contentType?: string;
288
+ fileName?: string;
289
+ baseURL?: string;
290
+ secureSignature?: string;
291
+ secureExpire?: string;
292
+ store?: StoreValue;
293
+ multipartChunkSize?: number;
294
+ signal?: AbortSignal;
295
+ source?: string;
296
+ integration?: string;
297
+ userAgent?: CustomUserAgent;
298
+ retryThrottledRequestMaxTimes?: number;
299
+ retryNetworkErrorMaxTimes?: number;
300
+ metadata?: Metadata;
301
+ };
302
+ export type MultipartPart = string;
303
+ export type MultipartStartResponse = {
304
+ parts: MultipartPart[];
305
+ uuid: Uuid;
306
+ };
307
+ /** Start multipart uploading. */
308
+ export function multipartStart(size: number, { publicKey, contentType, fileName, multipartChunkSize, baseURL, secureSignature, secureExpire, store, signal, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, metadata }: MultipartStartOptions): Promise<MultipartStartResponse>;
309
+ export type MultipartUploadOptions = {
310
+ publicKey?: string;
311
+ contentType?: string;
312
+ signal?: AbortSignal;
313
+ onProgress?: ProgressCallback<ComputableProgressInfo>;
314
+ integration?: string;
315
+ retryThrottledRequestMaxTimes?: number;
316
+ retryNetworkErrorMaxTimes?: number;
317
+ };
318
+ export type MultipartUploadResponse = {
319
+ code?: number;
320
+ };
321
+ /** Complete multipart uploading. */
322
+ export function multipartUpload(part: SupportedFileInput, url: MultipartPart, { contentType, signal, onProgress, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes }: MultipartUploadOptions): Promise<MultipartUploadResponse>;
323
+ export type MultipartCompleteOptions = {
324
+ publicKey: string;
325
+ baseURL?: string;
326
+ signal?: AbortSignal;
327
+ source?: string;
328
+ integration?: string;
329
+ userAgent?: CustomUserAgent;
330
+ retryThrottledRequestMaxTimes?: number;
331
+ retryNetworkErrorMaxTimes?: number;
332
+ };
333
+ /** Complete multipart uploading. */
334
+ export function multipartComplete(uuid: Uuid, { publicKey, baseURL, source, signal, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes }: MultipartCompleteOptions): Promise<FileInfo>;
335
+ export declare class UploadcareFile {
336
+ readonly uuid: Uuid;
337
+ readonly name: null | string;
338
+ readonly size: null | number;
339
+ readonly isStored: null | boolean;
340
+ readonly isImage: null | boolean;
341
+ readonly mimeType: null | string;
342
+ readonly cdnUrl: null | string;
343
+ readonly s3Url: null | string;
344
+ readonly originalFilename: null | string;
345
+ readonly imageInfo: null | ImageInfo;
346
+ readonly videoInfo: null | VideoInfo;
347
+ readonly contentInfo: null | ContentInfo;
348
+ readonly metadata: null | Metadata;
349
+ readonly s3Bucket: null | string;
350
+ constructor(fileInfo: FileInfo, { baseCDN, fileName }?: {
351
+ baseCDN?: string;
352
+ fileName?: string;
353
+ });
354
+ }
355
+ export type FileFromOptions = {
356
+ publicKey: string;
357
+ fileName?: string;
358
+ baseURL?: string;
359
+ secureSignature?: string;
360
+ secureExpire?: string;
361
+ store?: StoreValue;
362
+ signal?: AbortSignal;
363
+ onProgress?: ProgressCallback;
364
+ source?: string;
365
+ integration?: string;
366
+ userAgent?: CustomUserAgent;
367
+ retryThrottledRequestMaxTimes?: number;
368
+ retryNetworkErrorMaxTimes?: number;
369
+ contentType?: string;
370
+ multipartMinFileSize?: number;
371
+ multipartChunkSize?: number;
372
+ maxConcurrentRequests?: number;
373
+ baseCDN?: string;
374
+ checkForUrlDuplicates?: boolean;
375
+ saveUrlForRecurrentUploads?: boolean;
376
+ pusherKey?: string;
377
+ metadata?: Metadata;
378
+ };
379
+ /** Uploads file from provided data. */
380
+ 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>;
381
+ export type DirectOptions = {
382
+ publicKey: string;
383
+ fileName?: string;
384
+ baseURL?: string;
385
+ secureSignature?: string;
386
+ secureExpire?: string;
387
+ store?: StoreValue;
388
+ contentType?: string;
389
+ signal?: AbortSignal;
390
+ onProgress?: ProgressCallback;
391
+ source?: string;
392
+ integration?: string;
393
+ userAgent?: CustomUserAgent;
394
+ retryThrottledRequestMaxTimes?: number;
395
+ retryNetworkErrorMaxTimes?: number;
396
+ baseCDN?: string;
397
+ metadata?: Metadata;
398
+ };
399
+ 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>;
400
+ export type FromUploadedOptions = {
401
+ publicKey: string;
402
+ fileName?: string;
403
+ baseURL?: string;
404
+ signal?: AbortSignal;
405
+ onProgress?: ProgressCallback;
406
+ source?: string;
407
+ integration?: string;
408
+ userAgent?: CustomUserAgent;
409
+ retryThrottledRequestMaxTimes?: number;
410
+ retryNetworkErrorMaxTimes?: number;
411
+ baseCDN?: string;
412
+ };
413
+ export declare const uploadFromUploaded: (uuid: Uuid, { publicKey, fileName, baseURL, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, baseCDN }: FromUploadedOptions) => Promise<UploadcareFile>;
414
+ export type UploadFromUrlOptions = {
415
+ baseCDN?: string;
416
+ onProgress?: ProgressCallback;
417
+ pusherKey?: string;
418
+ } & FromUrlOptions;
419
+ export declare const uploadFromUrl: (sourceUrl: string, { publicKey, fileName, baseURL, baseCDN, checkForUrlDuplicates, saveUrlForRecurrentUploads, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, pusherKey, metadata }: UploadFromUrlOptions) => Promise<UploadcareFile>;
420
+ export type MultipartOptions = {
421
+ publicKey: string;
422
+ contentType?: string;
423
+ multipartChunkSize?: number;
424
+ fileName?: string;
425
+ fileSize?: number;
426
+ baseURL?: string;
427
+ secureSignature?: string;
428
+ secureExpire?: string;
429
+ store?: StoreValue;
430
+ signal?: AbortSignal;
431
+ onProgress?: ProgressCallback<ComputableProgressInfo>;
432
+ source?: string;
433
+ integration?: string;
434
+ userAgent?: CustomUserAgent;
435
+ retryThrottledRequestMaxTimes?: number;
436
+ retryNetworkErrorMaxTimes?: number;
437
+ maxConcurrentRequests?: number;
438
+ baseCDN?: string;
439
+ metadata?: Metadata;
440
+ };
441
+ 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>;
442
+ export declare class UploadcareGroup {
443
+ readonly uuid: GroupId;
444
+ readonly filesCount: string;
445
+ readonly totalSize: number;
446
+ readonly isStored: boolean;
447
+ readonly isImage: boolean;
448
+ readonly cdnUrl: string;
449
+ readonly files: UploadcareFile[];
450
+ readonly createdAt: string;
451
+ readonly storedAt: string | null;
452
+ constructor(groupInfo: GroupInfo, files: UploadcareFile[]);
453
+ }
454
+ export type GroupFromOptions = {
455
+ jsonpCallback?: string;
456
+ };
457
+ export declare function uploadFileGroup(data: SupportedFileInput[] | Url[] | Uuid[], { publicKey, fileName, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, retryNetworkErrorMaxTimes, contentType, multipartChunkSize, baseCDN, checkForUrlDuplicates, saveUrlForRecurrentUploads, jsonpCallback }: FileFromOptions & GroupFromOptions): Promise<UploadcareGroup>;
458
+ export declare class UploadClient {
459
+ private settings;
460
+ constructor(settings: Settings);
461
+ updateSettings(newSettings: Settings): void;
462
+ getSettings(): Settings;
463
+ base(file: SupportedFileInput, options?: Partial<BaseOptions>): Promise<BaseResponse>;
464
+ info(uuid: Uuid, options?: Partial<InfoOptions>): Promise<FileInfo>;
465
+ fromUrl(sourceUrl: Url, options?: Partial<FromUrlOptions>): Promise<FromUrlResponse>;
466
+ fromUrlStatus(token: Token, options?: Partial<FromUrlStatusOptions>): Promise<FromUrlStatusResponse>;
467
+ group(uuids: Uuid[], options?: Partial<GroupOptions>): Promise<GroupInfo>;
468
+ groupInfo(id: GroupId, options?: Partial<GroupInfoOptions>): Promise<GroupInfo>;
469
+ multipartStart(size: number, options?: Partial<MultipartStartOptions>): Promise<MultipartStartResponse>;
470
+ multipartUpload(part: Sliceable, url: MultipartPart, options?: Partial<MultipartUploadOptions>): Promise<MultipartUploadResponse>;
471
+ multipartComplete(uuid: Uuid, options?: Partial<MultipartCompleteOptions>): Promise<FileInfo>;
472
+ uploadFile(data: SupportedFileInput | Url | Uuid, options?: Partial<FileFromOptions>): Promise<UploadcareFile>;
473
+ uploadFileGroup(data: SupportedFileInput[] | Url[] | Uuid[], options?: Partial<FileFromOptions & GroupFromOptions>): Promise<UploadcareGroup>;
474
+ }
475
+ export type Headers = {
476
+ [key: string]: string | string[] | undefined;
477
+ };
478
+ export type ErrorRequestInfo = {
479
+ method?: string;
480
+ url: string;
481
+ query?: string;
482
+ data?: NodeFormData | FormData | SupportedFileInput;
483
+ headers?: Headers;
484
+ };
485
+ export type ErrorResponseInfo = {
486
+ error?: {
487
+ statusCode: number;
488
+ content: string;
489
+ errorCode: string;
490
+ };
491
+ };
492
+ export declare class UploadClientError extends Error {
493
+ isCancel?: boolean;
494
+ readonly code?: string;
495
+ readonly request?: ErrorRequestInfo;
496
+ readonly response?: ErrorResponseInfo;
497
+ readonly headers?: Headers;
498
+ constructor(message: string, code?: string, request?: ErrorRequestInfo, response?: ErrorResponseInfo, headers?: Headers);
499
+ }
500
+
501
+ export {};
@@ -1,7 +1,7 @@
1
- import http from 'http';
2
- import https from 'https';
3
- import { Transform, Readable } from 'stream';
4
- import { parse } from 'url';
1
+ import http from 'node:http';
2
+ import https from 'node:https';
3
+ import { Transform, Readable } from 'node:stream';
4
+ import { parse } from 'node:url';
5
5
  import NodeFormData from 'form-data';
6
6
  import WebSocket from 'ws';
7
7
 
@@ -97,6 +97,7 @@ function retrier(fn, options = defaultOptions) {
97
97
  }
98
98
 
99
99
  class UploadcareNetworkError extends Error {
100
+ originalProgressEvent;
100
101
  constructor(progressEvent) {
101
102
  super();
102
103
  this.name = 'UploadcareNetworkError';
@@ -118,9 +119,9 @@ const onCancel = (signal, callback) => {
118
119
  };
119
120
 
120
121
  class CancelError extends Error {
122
+ isCancel = true;
121
123
  constructor(message = 'Request canceled') {
122
124
  super(message);
123
- this.isCancel = true;
124
125
  Object.setPrototypeOf(this, CancelError.prototype);
125
126
  }
126
127
  }
@@ -188,6 +189,9 @@ const defaultFilename = 'original';
188
189
  // track of the number of bytes which have been piped through it and will
189
190
  // invoke the `onprogress` function whenever new number are available.
190
191
  class ProgressEmitter extends Transform {
192
+ _onprogress;
193
+ _position;
194
+ size;
191
195
  constructor(onProgress, size) {
192
196
  super();
193
197
  this._onprogress = onProgress;
@@ -341,7 +345,7 @@ const isFileValue = (value) => !!value &&
341
345
  function collectParams(params, inputKey, inputValue) {
342
346
  if (isFileValue(inputValue)) {
343
347
  const { name, contentType } = inputValue;
344
- const file = transformFile(inputValue.data, name, contentType);
348
+ const file = transformFile(inputValue.data, name, contentType ?? defaultContentType);
345
349
  const options = getFileOptions({ name, contentType });
346
350
  params.push([inputKey, file, ...options]);
347
351
  }
@@ -375,6 +379,11 @@ function buildFormData(options) {
375
379
  }
376
380
 
377
381
  class UploadClientError extends Error {
382
+ isCancel;
383
+ code;
384
+ request;
385
+ response;
386
+ headers;
378
387
  constructor(message, code, request, response, headers) {
379
388
  super();
380
389
  this.name = 'UploadClientError';
@@ -793,20 +802,21 @@ function isReadyPoll({ file, publicKey, baseURL, source, integration, userAgent,
793
802
  }
794
803
 
795
804
  class UploadcareFile {
805
+ uuid;
806
+ name = null;
807
+ size = null;
808
+ isStored = null;
809
+ isImage = null;
810
+ mimeType = null;
811
+ cdnUrl = null;
812
+ s3Url = null;
813
+ originalFilename = null;
814
+ imageInfo = null;
815
+ videoInfo = null;
816
+ contentInfo = null;
817
+ metadata = null;
818
+ s3Bucket = null;
796
819
  constructor(fileInfo, { baseCDN = defaultSettings.baseCDN, fileName } = {}) {
797
- this.name = null;
798
- this.size = null;
799
- this.isStored = null;
800
- this.isImage = null;
801
- this.mimeType = null;
802
- this.cdnUrl = null;
803
- this.s3Url = null;
804
- this.originalFilename = null;
805
- this.imageInfo = null;
806
- this.videoInfo = null;
807
- this.contentInfo = null;
808
- this.metadata = null;
809
- this.s3Bucket = null;
810
820
  const { uuid, s3Bucket } = fileInfo;
811
821
  const cdnUrl = getUrl(baseCDN, `${uuid}/`);
812
822
  const s3Url = s3Bucket
@@ -921,9 +931,7 @@ const race = (fns, { signal } = {}) => {
921
931
  };
922
932
 
923
933
  class Events {
924
- constructor() {
925
- this.events = Object.create({});
926
- }
934
+ events = Object.create({});
927
935
  emit(event, data) {
928
936
  this.events[event]?.forEach((fn) => fn(data));
929
937
  }
@@ -951,13 +959,15 @@ const response = (type, data) => {
951
959
  return { status: Status.Error, ...data };
952
960
  };
953
961
  class Pusher {
962
+ key;
963
+ disconnectTime;
964
+ ws = undefined;
965
+ queue = [];
966
+ isConnected = false;
967
+ subscribers = 0;
968
+ emmitter = new Events();
969
+ disconnectTimeoutId = null;
954
970
  constructor(pusherKey, disconnectTime = 30000) {
955
- this.ws = undefined;
956
- this.queue = [];
957
- this.isConnected = false;
958
- this.subscribers = 0;
959
- this.emmitter = new Events();
960
- this.disconnectTimeoutId = null;
961
971
  this.key = pusherKey;
962
972
  this.disconnectTime = disconnectTime;
963
973
  }
@@ -1345,7 +1355,7 @@ const uploadMultipart = async (file, { publicKey, fileName, fileSize, baseURL, s
1345
1355
  });
1346
1356
  };
1347
1357
  };
1348
- contentType || (contentType = getContentType(file));
1358
+ contentType ||= getContentType(file);
1349
1359
  return multipartStart(size, {
1350
1360
  publicKey,
1351
1361
  contentType,
@@ -1495,8 +1505,16 @@ async function uploadFile(data, { publicKey, fileName, baseURL = defaultSettings
1495
1505
  }
1496
1506
 
1497
1507
  class UploadcareGroup {
1508
+ uuid;
1509
+ filesCount;
1510
+ totalSize;
1511
+ isStored;
1512
+ isImage;
1513
+ cdnUrl;
1514
+ files;
1515
+ createdAt;
1516
+ storedAt = null;
1498
1517
  constructor(groupInfo, files) {
1499
- this.storedAt = null;
1500
1518
  this.uuid = groupInfo.id;
1501
1519
  this.filesCount = groupInfo.filesCount;
1502
1520
  this.totalSize = Object.values(groupInfo.files).reduce((acc, file) => acc + file.size, 0);
@@ -1609,6 +1627,7 @@ const populateOptionsWithSettings = (options, settings) => ({
1609
1627
  ...options
1610
1628
  });
1611
1629
  class UploadClient {
1630
+ settings;
1612
1631
  constructor(settings) {
1613
1632
  this.settings = Object.assign({}, defaultSettings, settings);
1614
1633
  }