orval 6.8.1 → 6.9.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/index.d.ts CHANGED
@@ -54,6 +54,14 @@ declare type GetterParams = GetterParam[];
54
54
  declare type GetterQueryParam = {
55
55
  schema: GeneratorSchema;
56
56
  deps: GeneratorSchema[];
57
+ isOptional: boolean;
58
+ };
59
+ declare type GetterPropType = 'param' | 'body' | 'queryParam' | 'header';
60
+ declare const GetterPropType: {
61
+ PARAM: GetterPropType;
62
+ BODY: GetterPropType;
63
+ QUERY_PARAM: GetterPropType;
64
+ HEADER: GetterPropType;
57
65
  };
58
66
  declare type GetterProp = {
59
67
  name: string;
@@ -61,7 +69,7 @@ declare type GetterProp = {
61
69
  implementation: string;
62
70
  default: boolean;
63
71
  required: boolean;
64
- type: 'param' | 'body' | 'queryParam';
72
+ type: GetterPropType;
65
73
  };
66
74
  declare type GetterProps = GetterProp[];
67
75
 
@@ -124,6 +132,9 @@ declare type GeneratorOperation = {
124
132
  formData?: GeneratorMutator;
125
133
  formUrlEncoded?: GeneratorMutator;
126
134
  operationName: string;
135
+ types?: {
136
+ result: (title?: string) => string;
137
+ };
127
138
  };
128
139
  declare type GeneratorVerbOptions = {
129
140
  verb: Verbs;
@@ -134,13 +145,14 @@ declare type GeneratorVerbOptions = {
134
145
  operationName: string;
135
146
  response: GetterResponse;
136
147
  body: GetterBody;
148
+ headers?: GetterQueryParam;
137
149
  queryParams?: GetterQueryParam;
138
150
  params: GetterParams;
139
151
  props: GetterProps;
140
152
  mutator?: GeneratorMutator;
141
153
  formData?: GeneratorMutator;
142
154
  formUrlEncoded?: GeneratorMutator;
143
- override: NormalizedOperationOptions;
155
+ override: NormalizedOverrideOutput;
144
156
  };
145
157
  declare type GeneratorVerbsOptions = GeneratorVerbOptions[];
146
158
  declare type GeneratorOptions = {
@@ -153,6 +165,9 @@ declare type GeneratorOptions = {
153
165
  declare type GeneratorClient = {
154
166
  implementation: string;
155
167
  imports: GeneratorImport[];
168
+ types?: {
169
+ result: (title?: string) => string;
170
+ };
156
171
  };
157
172
  declare type GeneratorClientExtra = {
158
173
  implementation: string;
@@ -179,7 +194,6 @@ declare type ClientHeaderBuilder = (params: {
179
194
  isMutator: boolean;
180
195
  noFunction?: boolean;
181
196
  isGlobalMutator: boolean;
182
- provideInRoot: boolean;
183
197
  provideIn: boolean | 'root' | 'any';
184
198
  hasAwaitedType: boolean;
185
199
  }) => string;
@@ -208,6 +222,7 @@ declare type GeneratorClients = Record<OutputClient, ClientGeneratorsBuilder>;
208
222
  interface Options {
209
223
  output?: string | OutputOptions;
210
224
  input?: string | InputOptions;
225
+ hooks?: Partial<HooksOptions>;
211
226
  }
212
227
  declare type OptionsFn = () => Options | Promise<Options>;
213
228
  declare type OptionsExport = Options | Promise<Options> | OptionsFn;
@@ -233,7 +248,9 @@ declare type NormalizedOverrideOutput = {
233
248
  };
234
249
  required?: boolean;
235
250
  baseUrl?: string;
251
+ delay?: number;
236
252
  };
253
+ contentType?: OverrideOutputContentType;
237
254
  header: false | ((info: InfoObject) => string[] | string);
238
255
  formData: boolean | NormalizedMutator;
239
256
  formUrlEncoded: boolean | NormalizedMutator;
@@ -252,10 +269,14 @@ declare type NormalizedOverrideOutput = {
252
269
  };
253
270
  };
254
271
  query: QueryOptions;
255
- angular: Omit<Required<AngularOptions>, 'provideInRoot'>;
272
+ angular: Required<AngularOptions>;
273
+ swr: {
274
+ options?: any;
275
+ };
256
276
  operationName?: (operation: OperationObject, route: string, verb: Verbs) => string;
257
277
  requestOptions: Record<string, any> | boolean;
258
278
  useDates?: boolean;
279
+ useTypeOverInterfaces?: boolean;
259
280
  };
260
281
  declare type NormalizedMutator = {
261
282
  path: string;
@@ -270,11 +291,16 @@ declare type NormalizedOperationOptions = {
270
291
  data?: MockProperties;
271
292
  properties?: MockProperties;
272
293
  };
294
+ contentType?: OverrideOutputContentType;
273
295
  query?: QueryOptions;
296
+ angular?: Required<AngularOptions>;
297
+ swr?: {
298
+ options?: any;
299
+ };
274
300
  operationName?: (operation: OperationObject, route: string, verb: Verbs) => string;
275
- formData: boolean | NormalizedMutator;
276
- formUrlEncoded: boolean | NormalizedMutator;
277
- requestOptions: object | boolean;
301
+ formData?: boolean | NormalizedMutator;
302
+ formUrlEncoded?: boolean | NormalizedMutator;
303
+ requestOptions?: object | boolean;
278
304
  };
279
305
  declare type OutputClientFunc = (clients: GeneratorClients) => ClientGeneratorsBuilder;
280
306
  declare type OutputOptions = {
@@ -290,6 +316,7 @@ declare type OutputOptions = {
290
316
  tslint?: boolean;
291
317
  tsconfig?: string | Tsconfig;
292
318
  packageJson?: string;
319
+ headers?: boolean;
293
320
  };
294
321
  declare type SwaggerParserOptions = Omit<SwaggerParser.Options, 'validate'> & {
295
322
  validate?: boolean;
@@ -349,6 +376,7 @@ declare type OverrideOutput = {
349
376
  required?: boolean;
350
377
  baseUrl?: string;
351
378
  };
379
+ contentType?: OverrideOutputContentType;
352
380
  header?: boolean | ((info: InfoObject) => string[] | string);
353
381
  formData?: boolean | Mutator;
354
382
  formUrlEncoded?: boolean | Mutator;
@@ -367,19 +395,27 @@ declare type OverrideOutput = {
367
395
  };
368
396
  };
369
397
  query?: QueryOptions;
398
+ swr?: {
399
+ options?: any;
400
+ };
370
401
  angular?: AngularOptions;
371
402
  operationName?: (operation: OperationObject, route: string, verb: Verbs) => string;
372
403
  requestOptions?: Record<string, any> | boolean;
373
404
  useDates?: boolean;
405
+ useTypeOverInterfaces?: boolean;
406
+ };
407
+ declare type OverrideOutputContentType = {
408
+ include?: string[];
409
+ exclude?: string[];
374
410
  };
375
411
  declare type QueryOptions = {
376
412
  useQuery?: boolean;
377
413
  useInfinite?: boolean;
378
414
  useInfiniteQueryParam?: string;
379
415
  options?: any;
416
+ signal?: boolean;
380
417
  };
381
418
  declare type AngularOptions = {
382
- provideInRoot?: boolean;
383
419
  provideIn?: 'root' | 'any' | boolean;
384
420
  };
385
421
  declare type InputTransformerFn = (spec: OpenAPIObject) => OpenAPIObject;
@@ -395,11 +431,20 @@ declare type OperationOptions = {
395
431
  properties?: MockProperties;
396
432
  };
397
433
  query?: QueryOptions;
434
+ angular?: Required<AngularOptions>;
435
+ swr?: {
436
+ options?: any;
437
+ };
398
438
  operationName?: (operation: OperationObject, route: string, verb: Verbs) => string;
399
439
  formData?: boolean | Mutator;
400
440
  formUrlEncoded?: boolean | Mutator;
401
441
  requestOptions?: object | boolean;
402
442
  };
443
+ declare type Hook = 'afterAllFilesWrite';
444
+ declare type HookFunction = (...args: any[]) => void | Promise<void>;
445
+ declare type HookCommand = string | HookFunction | (string | HookFunction)[];
446
+ declare type NormalizedHookCommand = HookCommand[];
447
+ declare type HooksOptions<T = HookCommand | NormalizedHookCommand> = Partial<Record<Hook, T>>;
403
448
  declare type Verbs = 'post' | 'put' | 'get' | 'patch' | 'delete' | 'head';
404
449
  declare const Verbs: {
405
450
  POST: Verbs;
@@ -436,6 +481,7 @@ interface Tsconfig {
436
481
  compilerOptions?: {
437
482
  esModuleInterop?: boolean;
438
483
  allowSyntheticDefaultImports?: boolean;
484
+ exactOptionalPropertyTypes?: boolean;
439
485
  paths?: Record<string, string[]>;
440
486
  };
441
487
  }
@@ -460,7 +506,11 @@ declare const generateImports: ({ imports, target, isRootKey, specsName, }: {
460
506
  isRootKey: boolean;
461
507
  specsName: Record<string, string>;
462
508
  }) => string;
463
- declare const generateMutatorImports: (mutators: GeneratorMutator[], oneMore?: boolean | undefined) => string;
509
+ declare const generateMutatorImports: ({ mutators, implementation, oneMore, }: {
510
+ mutators: GeneratorMutator[];
511
+ implementation?: string | undefined;
512
+ oneMore?: boolean | undefined;
513
+ }) => string;
464
514
  declare const addDependency: ({ implementation, exports, dependency, specsName, hasSchemaDir, isAllowSyntheticDefaultImports, }: {
465
515
  implementation: string;
466
516
  exports: GeneratorImport[];
@@ -473,13 +523,21 @@ declare const generateDependencyImports: (implementation: string, imports: {
473
523
  exports: GeneratorImport[];
474
524
  dependency: string;
475
525
  }[], specsName: Record<string, string>, hasSchemaDir: boolean, isAllowSyntheticDefaultImports: boolean) => string;
476
- declare const generateVerbImports: ({ response, body, queryParams, params, }: GeneratorVerbOptions) => GeneratorImport[];
526
+ declare const generateVerbImports: ({ response, body, queryParams, headers, params, }: GeneratorVerbOptions) => GeneratorImport[];
477
527
 
478
528
  declare const generateBodyOptions: (body: GetterBody, isFormData: boolean, isFormUrlEncoded: boolean) => string;
479
- declare const generateAxiosOptions: (response: GetterResponse, queryParams?: GeneratorSchema | undefined, requestOptions?: boolean | object | undefined) => string;
480
- declare const generateOptions: ({ route, body, queryParams, response, verb, requestOptions, isFormData, isFormUrlEncoded, isAngular, }: {
529
+ declare const generateAxiosOptions: ({ response, isExactOptionalPropertyTypes, queryParams, headers, requestOptions, hasSignal, }: {
530
+ response: GetterResponse;
531
+ isExactOptionalPropertyTypes: boolean;
532
+ queryParams?: GeneratorSchema | undefined;
533
+ headers?: GeneratorSchema | undefined;
534
+ requestOptions?: boolean | object | undefined;
535
+ hasSignal: boolean;
536
+ }) => string;
537
+ declare const generateOptions: ({ route, body, headers, queryParams, response, verb, requestOptions, isFormData, isFormUrlEncoded, isAngular, isExactOptionalPropertyTypes, hasSignal, }: {
481
538
  route: string;
482
539
  body: GetterBody;
540
+ headers?: GetterQueryParam | undefined;
483
541
  queryParams?: GetterQueryParam | undefined;
484
542
  response: GetterResponse;
485
543
  verb: Verbs;
@@ -487,12 +545,15 @@ declare const generateOptions: ({ route, body, queryParams, response, verb, requ
487
545
  isFormData: boolean;
488
546
  isFormUrlEncoded: boolean;
489
547
  isAngular?: boolean | undefined;
548
+ isExactOptionalPropertyTypes: boolean;
549
+ hasSignal: boolean;
490
550
  }) => string;
491
551
  declare const generateBodyMutatorConfig: (body: GetterBody, isFormData: boolean, isFormUrlEncoded: boolean) => string;
492
- declare const generateQueryParamsAxiosConfig: (response: GetterResponse, queryParams?: GeneratorSchema | undefined) => string;
493
- declare const generateMutatorConfig: ({ route, body, queryParams, response, verb, isFormData, isFormUrlEncoded, isBodyVerb, hasSignal, }: {
552
+ declare const generateQueryParamsAxiosConfig: (response: GetterResponse, queryParams?: GetterQueryParam | undefined) => string;
553
+ declare const generateMutatorConfig: ({ route, body, headers, queryParams, response, verb, isFormData, isFormUrlEncoded, isBodyVerb, hasSignal, isExactOptionalPropertyTypes, }: {
494
554
  route: string;
495
555
  body: GetterBody;
556
+ headers?: GetterQueryParam | undefined;
496
557
  queryParams?: GetterQueryParam | undefined;
497
558
  response: GetterResponse;
498
559
  verb: Verbs;
@@ -500,6 +561,7 @@ declare const generateMutatorConfig: ({ route, body, queryParams, response, verb
500
561
  isFormUrlEncoded: boolean;
501
562
  isBodyVerb: boolean;
502
563
  hasSignal: boolean;
564
+ isExactOptionalPropertyTypes: boolean;
503
565
  }) => string;
504
566
  declare const generateMutatorRequestOptions: (requestOptions: boolean | object | undefined, hasSecondArgument: boolean) => string | undefined;
505
567
  declare const generateFormDataAndUrlEncodedFunction: ({ body, formData, formUrlEncoded, isFormData, isFormUrlEncoded, }: {
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkW5UA6U5Ajs = require('./chunk-W5UA6U5A.js');_chunkW5UA6U5Ajs.b.call(void 0, );var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);_chunkW5UA6U5Ajs.b.call(void 0, );var c=async(r,o=process.cwd(),e)=>{if(!r||_chunkW5UA6U5Ajs.c.call(void 0, r))return _chunkW5UA6U5Ajs.M.call(void 0, r,e);let n=await _chunkW5UA6U5Ajs.H.call(void 0, r,o,e);if(e!=null&&e.watch)_chunkW5UA6U5Ajs.K.call(void 0, e==null?void 0:e.watch,async()=>{try{await _chunkW5UA6U5Ajs.L.call(void 0, o,n)}catch(a){_chunkW5UA6U5Ajs.d.call(void 0, _chalk2.default.red(`\u{1F6D1} ${e!=null&&e.projectName?`${e==null?void 0:e.projectName} - `:""}${a}`))}},n.input.target);else try{return await _chunkW5UA6U5Ajs.L.call(void 0, o,n)}catch(a){_chunkW5UA6U5Ajs.d.call(void 0, _chalk2.default.red(`\u{1F6D1} ${e!=null&&e.projectName?`${e==null?void 0:e.projectName} - `:""}${a}`))}};var re=c;exports.URL_REGEX = _chunkW5UA6U5Ajs.s; exports.VERBS_WITH_BODY = _chunkW5UA6U5Ajs.r; exports.addDependency = _chunkW5UA6U5Ajs.v; exports.camel = _chunkW5UA6U5Ajs.g; exports.default = re; exports.defineConfig = _chunkW5UA6U5Ajs.G; exports.escape = _chunkW5UA6U5Ajs.o; exports.generalJSTypes = _chunkW5UA6U5Ajs.p; exports.generalJSTypesWithArray = _chunkW5UA6U5Ajs.q; exports.generate = c; exports.generateAxiosOptions = _chunkW5UA6U5Ajs.z; exports.generateBodyMutatorConfig = _chunkW5UA6U5Ajs.B; exports.generateBodyOptions = _chunkW5UA6U5Ajs.y; exports.generateDependencyImports = _chunkW5UA6U5Ajs.w; exports.generateFormDataAndUrlEncodedFunction = _chunkW5UA6U5Ajs.F; exports.generateImports = _chunkW5UA6U5Ajs.t; exports.generateMutatorConfig = _chunkW5UA6U5Ajs.D; exports.generateMutatorImports = _chunkW5UA6U5Ajs.u; exports.generateMutatorRequestOptions = _chunkW5UA6U5Ajs.E; exports.generateOptions = _chunkW5UA6U5Ajs.A; exports.generateQueryParamsAxiosConfig = _chunkW5UA6U5Ajs.C; exports.generateVerbImports = _chunkW5UA6U5Ajs.x; exports.getNumberWord = _chunkW5UA6U5Ajs.n; exports.isSyntheticDefaultImportsAllow = _chunkW5UA6U5Ajs.J; exports.kebab = _chunkW5UA6U5Ajs.i; exports.loadTsconfig = _chunkW5UA6U5Ajs.I; exports.pascal = _chunkW5UA6U5Ajs.f; exports.sanitize = _chunkW5UA6U5Ajs.l; exports.snake = _chunkW5UA6U5Ajs.h; exports.stringify = _chunkW5UA6U5Ajs.k; exports.toObjectString = _chunkW5UA6U5Ajs.m; exports.upper = _chunkW5UA6U5Ajs.j;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }"use strict";var _chunkBV3SLKXZjs = require('./chunk-BV3SLKXZ.js');_chunkBV3SLKXZjs.b.call(void 0, );var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);_chunkBV3SLKXZjs.b.call(void 0, );var c=async(t,o=process.cwd(),e)=>{if(!t||_chunkBV3SLKXZjs.c.call(void 0, t))return _chunkBV3SLKXZjs.M.call(void 0, t,e);let n=await _chunkBV3SLKXZjs.H.call(void 0, t,o,e);if(e!=null&&e.watch)_chunkBV3SLKXZjs.K.call(void 0, e==null?void 0:e.watch,async()=>{try{await _chunkBV3SLKXZjs.L.call(void 0, o,n)}catch(a){_chunkBV3SLKXZjs.d.call(void 0, _chalk2.default.red(`\u{1F6D1} ${e!=null&&e.projectName?`${e==null?void 0:e.projectName} - `:""}${a}`))}},n.input.target);else try{return await _chunkBV3SLKXZjs.L.call(void 0, o,n)}catch(a){_chunkBV3SLKXZjs.d.call(void 0, _chalk2.default.red(`\u{1F6D1} ${e!=null&&e.projectName?`${e==null?void 0:e.projectName} - `:""}${a}`))}};var te=c;exports.URL_REGEX = _chunkBV3SLKXZjs.s; exports.VERBS_WITH_BODY = _chunkBV3SLKXZjs.r; exports.addDependency = _chunkBV3SLKXZjs.v; exports.camel = _chunkBV3SLKXZjs.g; exports.default = te; exports.defineConfig = _chunkBV3SLKXZjs.G; exports.escape = _chunkBV3SLKXZjs.o; exports.generalJSTypes = _chunkBV3SLKXZjs.p; exports.generalJSTypesWithArray = _chunkBV3SLKXZjs.q; exports.generate = c; exports.generateAxiosOptions = _chunkBV3SLKXZjs.z; exports.generateBodyMutatorConfig = _chunkBV3SLKXZjs.B; exports.generateBodyOptions = _chunkBV3SLKXZjs.y; exports.generateDependencyImports = _chunkBV3SLKXZjs.w; exports.generateFormDataAndUrlEncodedFunction = _chunkBV3SLKXZjs.F; exports.generateImports = _chunkBV3SLKXZjs.t; exports.generateMutatorConfig = _chunkBV3SLKXZjs.D; exports.generateMutatorImports = _chunkBV3SLKXZjs.u; exports.generateMutatorRequestOptions = _chunkBV3SLKXZjs.E; exports.generateOptions = _chunkBV3SLKXZjs.A; exports.generateQueryParamsAxiosConfig = _chunkBV3SLKXZjs.C; exports.generateVerbImports = _chunkBV3SLKXZjs.x; exports.getNumberWord = _chunkBV3SLKXZjs.n; exports.isSyntheticDefaultImportsAllow = _chunkBV3SLKXZjs.J; exports.kebab = _chunkBV3SLKXZjs.i; exports.loadTsconfig = _chunkBV3SLKXZjs.I; exports.pascal = _chunkBV3SLKXZjs.f; exports.sanitize = _chunkBV3SLKXZjs.l; exports.snake = _chunkBV3SLKXZjs.h; exports.stringify = _chunkBV3SLKXZjs.k; exports.toObjectString = _chunkBV3SLKXZjs.m; exports.upper = _chunkBV3SLKXZjs.j;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "orval",
3
3
  "description": "A swagger client generator for typescript",
4
- "version": "6.8.1",
4
+ "version": "6.9.0",
5
5
  "license": "MIT",
6
6
  "files": [
7
7
  "dist"
@@ -56,10 +56,10 @@
56
56
  "update-samples": "zx ./scripts/update-samples.mjs"
57
57
  },
58
58
  "devDependencies": {
59
- "@commitlint/cli": "^16.2.1",
60
- "@commitlint/config-conventional": "^16.2.1",
61
- "@faker-js/faker": "^6.1.1",
62
- "@release-it/conventional-changelog": "^4.2.0",
59
+ "@commitlint/cli": "^17.0.2",
60
+ "@commitlint/config-conventional": "^17.0.3",
61
+ "@faker-js/faker": "^7.3.0",
62
+ "@release-it/conventional-changelog": "^5.0.0",
63
63
  "@types/chalk": "^2.2.0",
64
64
  "@types/commander": "^2.12.2",
65
65
  "@types/fs-extra": "^9.0.12",
@@ -71,30 +71,30 @@
71
71
  "@types/lodash.uniqby": "^4.7.6",
72
72
  "@types/lodash.uniqwith": "^4.5.6",
73
73
  "@types/micromatch": "^4.0.2",
74
- "@types/node": "^17.0.21",
74
+ "@types/node": "^18.0.0",
75
75
  "@types/prettier": "^2.4.4",
76
76
  "@types/request": "^2.48.8",
77
77
  "@types/validator": "^13.7.1",
78
78
  "@typescript-eslint/eslint-plugin": "^5.14.0",
79
79
  "@typescript-eslint/parser": "^5.14.0",
80
- "dotenv-cli": "^4.0.0",
80
+ "dotenv-cli": "^5.1.0",
81
81
  "eslint": "^8.10.0",
82
82
  "eslint-config-prettier": "^8.5.0",
83
83
  "eslint-plugin-prettier": "^4.0.0",
84
- "husky": "^7.0.2",
85
- "lint-staged": "^12.3.5",
84
+ "husky": "^8.0.1",
85
+ "lint-staged": "^13.0.3",
86
86
  "npm-run-all": "^4.1.5",
87
87
  "prettier": "2.6.2",
88
88
  "pretty-quick": "^3.1.3",
89
- "release-it": "^14.12.5",
89
+ "release-it": "^15.1.0",
90
90
  "rimraf": "^3.0.2",
91
91
  "tsup": "^5.12.0",
92
92
  "typescript": "^4.6.2",
93
93
  "vitest": "^0.6.0",
94
- "zx": "^5.2.0"
94
+ "zx": "^7.0.2"
95
95
  },
96
96
  "dependencies": {
97
- "@apidevtools/swagger-parser": "^10.0.3",
97
+ "@apidevtools/swagger-parser": "^10.1.0",
98
98
  "acorn": "^8.7.0",
99
99
  "cac": "^6.7.12",
100
100
  "chalk": "^4.1.2",
@@ -108,7 +108,7 @@
108
108
  "find-up": "5.0.0",
109
109
  "fs-extra": "^10.0.1",
110
110
  "globby": "11.0.4",
111
- "ibm-openapi-validator": "^0.57.4",
111
+ "ibm-openapi-validator": "^0.83.0",
112
112
  "inquirer": "^8.2.0",
113
113
  "lodash.get": "^4.4.2",
114
114
  "lodash.omit": "^4.5.0",
@@ -118,8 +118,9 @@
118
118
  "lodash.uniqwith": "^4.5.0",
119
119
  "micromatch": "^4.0.4",
120
120
  "openapi3-ts": "^2.0.2",
121
+ "string-argv": "^0.3.1",
121
122
  "swagger2openapi": "^7.0.8",
122
- "tsconfck": "^1.2.0",
123
+ "tsconfck": "^2.0.1",
123
124
  "upath": "^2.0.1",
124
125
  "url": "^0.11.0",
125
126
  "validator": "^13.7.0"