@uploadcare/upload-client 2.0.0-alpha.6 → 2.0.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/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Generated by dts-bundle-generator v5.3.0
1
+ // Generated by dts-bundle-generator v5.4.0
2
2
 
3
3
  /// <reference types="node" />
4
4
 
@@ -71,42 +71,6 @@ export declare type Url = string;
71
71
  export declare type ProgressCallback = (arg: {
72
72
  value: number;
73
73
  }) => void;
74
- declare class UploadcareFile {
75
- readonly uuid: Uuid;
76
- readonly name: null | string;
77
- readonly size: null | number;
78
- readonly isStored: null | boolean;
79
- readonly isImage: null | boolean;
80
- readonly cdnUrl: null | string;
81
- readonly cdnUrlModifiers: null | string;
82
- readonly originalUrl: null | string;
83
- readonly originalFilename: null | string;
84
- readonly imageInfo: null | ImageInfo;
85
- readonly videoInfo: null | VideoInfo;
86
- constructor(fileInfo: FileInfo, { baseCDN, defaultEffects, fileName }: {
87
- baseCDN?: string;
88
- defaultEffects?: string;
89
- fileName?: string;
90
- });
91
- }
92
- declare class UploadcareGroup {
93
- readonly uuid: GroupId;
94
- readonly filesCount: string;
95
- readonly totalSize: number;
96
- readonly isStored: boolean;
97
- readonly isImage: boolean;
98
- readonly cdnUrl: string;
99
- readonly files: UploadcareFile[];
100
- readonly createdAt: string;
101
- readonly storedAt: string | null;
102
- constructor(groupInfo: GroupInfo, files: UploadcareFile[]);
103
- }
104
- /**
105
- * Make all properties in T optional
106
- */
107
- export declare type Partial<T> = {
108
- [P in keyof T]?: T[P];
109
- };
110
74
  export interface DefaultSettings {
111
75
  baseCDN: string;
112
76
  baseURL: string;
@@ -122,15 +86,27 @@ export interface DefaultSettings {
122
86
  }
123
87
  export interface Settings extends Partial<DefaultSettings> {
124
88
  publicKey: string;
89
+ fileName?: string;
90
+ contentType?: string;
125
91
  store?: boolean;
126
92
  secureSignature?: string;
127
93
  secureExpire?: string;
128
94
  integration?: string;
95
+ userAgent?: CustomUserAgent;
129
96
  checkForUrlDuplicates?: boolean;
130
97
  saveUrlForRecurrentUploads?: boolean;
131
98
  source?: string;
132
99
  jsonpCallback?: string;
133
100
  }
101
+ export declare type CustomUserAgentOptions = {
102
+ publicKey: string;
103
+ libraryName: string;
104
+ libraryVersion: string;
105
+ languageName: string;
106
+ integration?: string;
107
+ };
108
+ export declare type CustomUserAgentFn = (options: CustomUserAgentOptions) => string;
109
+ export declare type CustomUserAgent = string | CustomUserAgentFn;
134
110
  export declare type BrowserFile = Blob | File;
135
111
  export declare type NodeFile = Buffer;
136
112
  export declare type BaseResponse = {
@@ -147,28 +123,10 @@ export declare type BaseOptions = {
147
123
  onProgress?: ProgressCallback;
148
124
  source?: string;
149
125
  integration?: string;
126
+ userAgent?: CustomUserAgent;
150
127
  retryThrottledRequestMaxTimes?: number;
151
128
  };
152
- /**
153
- * Performs file uploading request to Uploadcare Upload API.
154
- * Can be canceled and has progress.
155
- */
156
- export declare function base(file: NodeFile | BrowserFile, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, retryThrottledRequestMaxTimes }: BaseOptions): Promise<BaseResponse>;
157
- export declare type InfoOptions = {
158
- publicKey: string;
159
- baseURL?: string;
160
- signal?: AbortSignal;
161
- onProgress?: ({ value: number }: {
162
- value: any;
163
- }) => void;
164
- source?: string;
165
- integration?: string;
166
- retryThrottledRequestMaxTimes?: number;
167
- };
168
- /**
169
- * Returns a JSON dictionary holding file info.
170
- */
171
- export declare function info(uuid: Uuid, { publicKey, baseURL, signal, source, integration, retryThrottledRequestMaxTimes }: InfoOptions): Promise<FileInfo>;
129
+ declare function base(file: NodeFile | BrowserFile, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes }: BaseOptions): Promise<BaseResponse>;
172
130
  declare enum TypeEnum {
173
131
  Token = "token",
174
132
  FileInfo = "file_info"
@@ -194,12 +152,10 @@ export declare type FromUrlOptions = {
194
152
  signal?: AbortSignal;
195
153
  source?: string;
196
154
  integration?: string;
155
+ userAgent?: CustomUserAgent;
197
156
  retryThrottledRequestMaxTimes?: number;
198
157
  };
199
- /**
200
- * Uploading files from URL.
201
- */
202
- export declare function fromUrl(sourceUrl: Url, { publicKey, baseURL, store, fileName, checkForUrlDuplicates, saveUrlForRecurrentUploads, secureSignature, secureExpire, source, signal, integration, retryThrottledRequestMaxTimes }: FromUrlOptions): Promise<FromUrlSuccessResponse>;
158
+ declare function fromUrl(sourceUrl: Url, { publicKey, baseURL, store, fileName, checkForUrlDuplicates, saveUrlForRecurrentUploads, secureSignature, secureExpire, source, signal, integration, userAgent, retryThrottledRequestMaxTimes }: FromUrlOptions): Promise<FromUrlSuccessResponse>;
203
159
  declare enum Status {
204
160
  Unknown = "unknown",
205
161
  Waiting = "waiting",
@@ -222,6 +178,7 @@ export declare type StatusProgressResponse = {
222
178
  export declare type StatusErrorResponse = {
223
179
  status: Status.Error;
224
180
  error: string;
181
+ errorCode: string;
225
182
  };
226
183
  export declare type StatusSuccessResponse = {
227
184
  status: Status.Success;
@@ -232,12 +189,10 @@ export declare type FromUrlStatusOptions = {
232
189
  baseURL?: string;
233
190
  signal?: AbortSignal;
234
191
  integration?: string;
192
+ userAgent?: CustomUserAgent;
235
193
  retryThrottledRequestMaxTimes?: number;
236
194
  };
237
- /**
238
- * Checking upload status and working with file tokens.
239
- */
240
- export declare function fromUrlStatus(token: Token, { publicKey, baseURL, signal, integration, retryThrottledRequestMaxTimes }?: FromUrlStatusOptions): Promise<FromUrlStatusResponse>;
195
+ declare function fromUrlStatus(token: Token, { publicKey, baseURL, signal, integration, userAgent, retryThrottledRequestMaxTimes }?: FromUrlStatusOptions): Promise<FromUrlStatusResponse>;
241
196
  export declare type GroupOptions = {
242
197
  publicKey: string;
243
198
  baseURL?: string;
@@ -247,24 +202,30 @@ export declare type GroupOptions = {
247
202
  signal?: AbortSignal;
248
203
  source?: string;
249
204
  integration?: string;
205
+ userAgent?: CustomUserAgent;
250
206
  retryThrottledRequestMaxTimes?: number;
251
207
  };
252
- /**
253
- * Create files group.
254
- */
255
- export declare function group(uuids: Uuid[], { publicKey, baseURL, jsonpCallback, secureSignature, secureExpire, signal, source, integration, retryThrottledRequestMaxTimes }: GroupOptions): Promise<GroupInfo>;
208
+ declare function group(uuids: Uuid[], { publicKey, baseURL, jsonpCallback, secureSignature, secureExpire, signal, source, integration, userAgent, retryThrottledRequestMaxTimes }: GroupOptions): Promise<GroupInfo>;
256
209
  export declare type GroupInfoOptions = {
257
210
  publicKey: string;
258
211
  baseURL?: string;
259
212
  signal?: AbortSignal;
260
213
  source?: string;
261
214
  integration?: string;
215
+ userAgent?: CustomUserAgent;
262
216
  retryThrottledRequestMaxTimes?: number;
263
217
  };
264
- /**
265
- * Get info about group.
266
- */
267
- export declare function groupInfo(id: GroupId, { publicKey, baseURL, signal, source, integration, retryThrottledRequestMaxTimes }: GroupInfoOptions): Promise<GroupInfo>;
218
+ declare function groupInfo(id: GroupId, { publicKey, baseURL, signal, source, integration, userAgent, retryThrottledRequestMaxTimes }: GroupInfoOptions): Promise<GroupInfo>;
219
+ export declare type InfoOptions = {
220
+ publicKey: string;
221
+ baseURL?: string;
222
+ signal?: AbortSignal;
223
+ source?: string;
224
+ integration?: string;
225
+ userAgent?: CustomUserAgent;
226
+ retryThrottledRequestMaxTimes?: number;
227
+ };
228
+ declare function info(uuid: Uuid, { publicKey, baseURL, signal, source, integration, userAgent, retryThrottledRequestMaxTimes }: InfoOptions): Promise<FileInfo>;
268
229
  export declare type MultipartStartOptions = {
269
230
  publicKey: string;
270
231
  contentType?: string;
@@ -277,6 +238,7 @@ export declare type MultipartStartOptions = {
277
238
  signal?: AbortSignal;
278
239
  source?: string;
279
240
  integration?: string;
241
+ userAgent?: CustomUserAgent;
280
242
  retryThrottledRequestMaxTimes?: number;
281
243
  };
282
244
  export declare type MultipartPart = string;
@@ -284,36 +246,103 @@ export declare type MultipartStartResponse = {
284
246
  parts: MultipartPart[];
285
247
  uuid: Uuid;
286
248
  };
287
- /**
288
- * Start multipart uploading.
289
- */
290
- export declare function multipartStart(size: number, { publicKey, contentType, fileName, multipartChunkSize, baseURL, secureSignature, secureExpire, store, signal, source, integration, retryThrottledRequestMaxTimes }: MultipartStartOptions): Promise<MultipartStartResponse>;
249
+ declare function multipartStart(size: number, { publicKey, contentType, fileName, multipartChunkSize, baseURL, secureSignature, secureExpire, store, signal, source, integration, userAgent, retryThrottledRequestMaxTimes }: MultipartStartOptions): Promise<MultipartStartResponse>;
250
+ export declare type MultipartUploadOptions = {
251
+ publicKey?: string;
252
+ signal?: AbortSignal;
253
+ onProgress?: ProgressCallback;
254
+ integration?: string;
255
+ retryThrottledRequestMaxTimes?: number;
256
+ };
257
+ export declare type MultipartUploadResponse = {
258
+ code?: number;
259
+ };
260
+ declare function multipartUpload(part: NodeFile | BrowserFile, url: MultipartPart, { signal, onProgress }: MultipartUploadOptions): Promise<MultipartUploadResponse>;
291
261
  export declare type MultipartCompleteOptions = {
292
262
  publicKey: string;
293
263
  baseURL?: string;
294
264
  signal?: AbortSignal;
295
265
  source?: string;
296
266
  integration?: string;
267
+ userAgent?: CustomUserAgent;
297
268
  retryThrottledRequestMaxTimes?: number;
298
269
  };
299
- /**
300
- * Complete multipart uploading.
301
- */
302
- export declare function multipartComplete(uuid: Uuid, { publicKey, baseURL, source, signal, integration, retryThrottledRequestMaxTimes }: MultipartCompleteOptions): Promise<FileInfo>;
303
- export declare type MultipartUploadOptions = {
304
- publicKey?: string;
270
+ declare function multipartComplete(uuid: Uuid, { publicKey, baseURL, source, signal, integration, userAgent, retryThrottledRequestMaxTimes }: MultipartCompleteOptions): Promise<FileInfo>;
271
+ declare class UploadcareFile {
272
+ readonly uuid: Uuid;
273
+ readonly name: null | string;
274
+ readonly size: null | number;
275
+ readonly isStored: null | boolean;
276
+ readonly isImage: null | boolean;
277
+ readonly mimeType: null | string;
278
+ readonly cdnUrl: null | string;
279
+ readonly cdnUrlModifiers: null | string;
280
+ readonly originalUrl: null | string;
281
+ readonly originalFilename: null | string;
282
+ readonly imageInfo: null | ImageInfo;
283
+ readonly videoInfo: null | VideoInfo;
284
+ constructor(fileInfo: FileInfo, { baseCDN, defaultEffects, fileName }: {
285
+ baseCDN?: string;
286
+ defaultEffects?: string;
287
+ fileName?: string;
288
+ });
289
+ }
290
+ export declare type FromObjectOptions = {
291
+ publicKey: string;
292
+ fileName?: string;
293
+ baseURL?: string;
294
+ secureSignature?: string;
295
+ secureExpire?: string;
296
+ store?: boolean;
305
297
  signal?: AbortSignal;
306
298
  onProgress?: ProgressCallback;
299
+ source?: string;
307
300
  integration?: string;
301
+ userAgent?: CustomUserAgent;
308
302
  retryThrottledRequestMaxTimes?: number;
303
+ baseCDN?: string;
309
304
  };
310
- export declare type MultipartUploadResponse = {
311
- code?: number;
305
+ declare const uploadFromObject: (file: NodeFile | BrowserFile, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, baseCDN }: FromObjectOptions) => Promise<UploadcareFile>;
306
+ export declare type UploadFromUrlOptions = {
307
+ baseCDN?: string;
308
+ onProgress?: ProgressCallback;
309
+ pusherKey?: string;
310
+ } & FromUrlOptions;
311
+ export declare const uploadFromUrl: (sourceUrl: string, { publicKey, fileName, baseURL, baseCDN, checkForUrlDuplicates, saveUrlForRecurrentUploads, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, pusherKey }: UploadFromUrlOptions) => Promise<UploadcareFile>;
312
+ export declare type FromUploadedOptions = {
313
+ publicKey: string;
314
+ fileName?: string;
315
+ baseURL?: string;
316
+ signal?: AbortSignal;
317
+ onProgress?: ProgressCallback;
318
+ source?: string;
319
+ integration?: string;
320
+ userAgent?: CustomUserAgent;
321
+ retryThrottledRequestMaxTimes?: number;
322
+ baseCDN?: string;
312
323
  };
313
- /**
314
- * Complete multipart uploading.
315
- */
316
- export declare function multipartUpload(part: NodeFile | BrowserFile, url: MultipartPart, { publicKey, signal, onProgress, integration }: MultipartUploadOptions): Promise<MultipartUploadResponse>;
324
+ export declare const uploadFromUploaded: (uuid: Uuid, { publicKey, fileName, baseURL, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, baseCDN }: FromUploadedOptions) => Promise<UploadcareFile>;
325
+ export declare type MultipartOptions = {
326
+ publicKey: string;
327
+ contentType?: string;
328
+ multipartChunkSize?: number;
329
+ fileName?: string;
330
+ fileSize?: number;
331
+ baseURL?: string;
332
+ secureSignature?: string;
333
+ secureExpire?: string;
334
+ store?: boolean;
335
+ signal?: AbortSignal;
336
+ onProgress?: ProgressCallback;
337
+ source?: string;
338
+ integration?: string;
339
+ userAgent?: CustomUserAgent;
340
+ retryThrottledRequestMaxTimes?: number;
341
+ maxConcurrentRequests?: number;
342
+ multipartMaxAttempts?: number;
343
+ baseCDN?: string;
344
+ };
345
+ export declare const uploadMultipart: (file: NodeFile | BrowserFile, { publicKey, fileName, fileSize, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, contentType, multipartChunkSize, maxConcurrentRequests, multipartMaxAttempts, baseCDN }: MultipartOptions) => Promise<UploadcareFile>;
317
346
  export declare type FileFromOptions = {
318
347
  publicKey: string;
319
348
  fileName?: string;
@@ -325,21 +354,39 @@ export declare type FileFromOptions = {
325
354
  onProgress?: ProgressCallback;
326
355
  source?: string;
327
356
  integration?: string;
357
+ userAgent?: CustomUserAgent;
328
358
  retryThrottledRequestMaxTimes?: number;
329
359
  contentType?: string;
330
360
  multipartChunkSize?: number;
361
+ multipartMaxAttempts?: number;
362
+ maxConcurrentRequests?: number;
331
363
  baseCDN?: string;
364
+ checkForUrlDuplicates?: boolean;
365
+ saveUrlForRecurrentUploads?: boolean;
366
+ pusherKey?: string;
332
367
  };
333
368
  /**
334
369
  * Uploads file from provided data.
335
370
  */
336
- export declare function uploadFile(data: NodeFile | BrowserFile | Url | Uuid, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, retryThrottledRequestMaxTimes, contentType, multipartChunkSize, baseCDN }: FileFromOptions): Promise<UploadcareFile>;
371
+ export declare function uploadFile(data: NodeFile | BrowserFile | Url | Uuid, { publicKey, fileName, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, contentType, multipartChunkSize, multipartMaxAttempts, maxConcurrentRequests, baseCDN, checkForUrlDuplicates, saveUrlForRecurrentUploads, pusherKey }: FileFromOptions): Promise<UploadcareFile>;
372
+ declare class UploadcareGroup {
373
+ readonly uuid: GroupId;
374
+ readonly filesCount: string;
375
+ readonly totalSize: number;
376
+ readonly isStored: boolean;
377
+ readonly isImage: boolean;
378
+ readonly cdnUrl: string;
379
+ readonly files: UploadcareFile[];
380
+ readonly createdAt: string;
381
+ readonly storedAt: string | null;
382
+ constructor(groupInfo: GroupInfo, files: UploadcareFile[]);
383
+ }
337
384
  export declare type GroupFromOptions = {
338
385
  defaultEffects?: string;
339
386
  jsonpCallback?: string;
340
387
  };
341
- export declare function uploadFileGroup(data: (NodeFile | BrowserFile)[] | Url[] | Uuid[], { publicKey, fileName, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, retryThrottledRequestMaxTimes, contentType, multipartChunkSize, baseCDN, jsonpCallback, defaultEffects }: FileFromOptions & GroupFromOptions): Promise<UploadcareGroup>;
342
- export declare class UploadClient {
388
+ declare function uploadFileGroup(data: (NodeFile | BrowserFile)[] | Url[] | Uuid[], { publicKey, fileName, baseURL, secureSignature, secureExpire, store, signal, onProgress, source, integration, userAgent, retryThrottledRequestMaxTimes, contentType, multipartChunkSize, baseCDN, jsonpCallback, defaultEffects }: FileFromOptions & GroupFromOptions): Promise<UploadcareGroup>;
389
+ declare class UploadClient {
343
390
  private settings;
344
391
  constructor(settings: Settings);
345
392
  updateSettings(newSettings: Settings): void;
@@ -356,5 +403,21 @@ export declare class UploadClient {
356
403
  uploadFile(data: NodeFile | BrowserFile | Url | Uuid, options?: Partial<FileFromOptions>): Promise<UploadcareFile>;
357
404
  uploadFileGroup(data: (NodeFile | BrowserFile)[] | Url[] | Uuid[], options?: Partial<FileFromOptions & GroupFromOptions>): Promise<UploadcareGroup>;
358
405
  }
406
+ export { AbortController } from "abort-controller";
407
+
408
+ export {
409
+ UploadClient as UploadClient,
410
+ base as base,
411
+ fromUrl as fromUrl,
412
+ fromUrlStatus as fromUrlStatus,
413
+ group as group,
414
+ groupInfo as groupInfo,
415
+ info as info,
416
+ multipartComplete as multipartComplete,
417
+ multipartStart as multipartStart,
418
+ multipartUpload as multipartUpload,
419
+ uploadFileGroup as uploadFileGroup,
420
+ uploadFromObject as uploadBase,
421
+ };
359
422
 
360
423
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uploadcare/upload-client",
3
- "version": "2.0.0-alpha.6",
3
+ "version": "2.0.0",
4
4
  "description": "Library for work with Uploadcare Upload API",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -21,6 +21,12 @@
21
21
  "import": "./dist/index.js"
22
22
  }
23
23
  },
24
+ "react-native": {
25
+ "./lib/request/request.node.js": "./lib/request/request.browser.js",
26
+ "./lib/tools/getFormData.node.js": "./lib/tools/getFormData.react-native.js",
27
+ "./lib/tools/sockets.node.js": "./lib/tools/sockets.browser.js",
28
+ "./lib/uploadFile/prepareChunks.node.js": "./lib/uploadFile/prepareChunks.react-native.js"
29
+ },
24
30
  "scripts": {
25
31
  "check-env-vars": "node ./checkvars.js",
26
32
  "mock:start": "node --loader ts-node/esm.mjs ./mock-server/server.ts --silent",
@@ -56,47 +62,47 @@
56
62
  "cdn"
57
63
  ],
58
64
  "devDependencies": {
59
- "@koa/cors": "3.1.0",
60
- "@koa/router": "8.0.8",
61
65
  "@rollup/plugin-alias": "^3.1.1",
62
66
  "@rollup/plugin-node-resolve": "^8.4.0",
67
+ "@types/ws": "8.2.0",
68
+ "dts-bundle-generator": "5.4.0",
69
+ "prettier": "2.2.1",
70
+ "rollup": "^2.23.0",
71
+ "rollup-plugin-typescript2": "^0.27.1",
72
+ "typescript": "^3.9.7",
73
+ "@koa/cors": "3.1.0",
74
+ "@koa/router": "10.0.0",
63
75
  "@types/form-data": "2.5.0",
64
- "@types/jest": "26.0.9",
65
- "@types/koa": "2.11.3",
66
- "@types/node": "12.12.54",
76
+ "@types/jest": "26.0.14",
77
+ "@types/koa": "2.11.4",
78
+ "@types/node": "12.12.67",
67
79
  "@types/promise": "7.1.30",
68
- "@types/ws": "7.2.6",
69
- "@typescript-eslint/eslint-plugin": "2.34.0",
70
- "@typescript-eslint/parser": "2.34.0",
80
+ "@typescript-eslint/eslint-plugin": "5.3.1",
81
+ "@typescript-eslint/parser": "5.3.1",
71
82
  "chalk": "4.1.0",
72
83
  "data-uri-to-buffer": "3.0.1",
73
84
  "dataurl-to-blob": "0.0.1",
74
85
  "dotenv": "8.2.0",
75
- "dts-bundle-generator": "^5.3.0",
76
- "eslint": "7.6.0",
77
- "eslint-config-prettier": "6.11.0",
78
- "eslint-plugin-prettier": "3.1.4",
79
- "jest": "26.2.2",
80
- "jest-environment-jsdom": "26.2.0",
81
- "jest-websocket-mock": "2.1.0",
86
+ "eslint": "8.2.0",
87
+ "eslint-config-prettier": "8.3.0",
88
+ "eslint-plugin-prettier": "4.0.0",
89
+ "jest": "26.5.3",
90
+ "jest-environment-jsdom": "26.5.2",
91
+ "jest-websocket-mock": "2.2.0",
82
92
  "koa": "2.13.0",
83
93
  "koa-add-trailing-slashes": "2.0.1",
84
94
  "koa-body": "4.2.0",
85
95
  "mock-socket": "9.0.3",
86
- "prettier": "1.19.1",
87
- "prettier-config-standard": "1.0.1",
96
+ "prettier-config-standard": "4.0.0",
88
97
  "rimraf": "3.0.2",
89
- "rollup": "^2.23.0",
90
- "rollup-plugin-typescript2": "^0.27.1",
91
- "shipjs": "0.20.1",
92
- "start-server-and-test": "1.11.3",
93
- "ts-jest": "26.1.4",
94
- "ts-node": "8.10.2",
95
- "typescript": "^3.9.7"
98
+ "shipjs": "0.24.0",
99
+ "start-server-and-test": "1.11.7",
100
+ "ts-jest": "26.4.1",
101
+ "ts-node": "9.1.1"
96
102
  },
97
103
  "dependencies": {
98
104
  "abort-controller": "^3.0.0",
99
- "form-data": "^3.0.0",
100
- "ws": "^7.2.1"
105
+ "form-data": "^4.0.0",
106
+ "ws": "^8.2.3"
101
107
  }
102
108
  }