@steroidsjs/nest 2.1.1 → 2.2.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.
@@ -1,6 +1,5 @@
1
- import { ValidationError } from 'class-validator';
2
- import { IFormError } from '../interfaces/IFormError';
1
+ import { IErrorsCompositeObject } from '../interfaces/IErrorsCompositeObject';
3
2
  export declare class ValidationException {
4
- errors: any;
5
- constructor(errors: ValidationError[] | IFormError);
3
+ errors: IErrorsCompositeObject;
4
+ constructor(errors: IErrorsCompositeObject);
6
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationException.js","sourceRoot":"","sources":["../../../src/usecases/exceptions/ValidationException.ts"],"names":[],"mappings":";;;AAGA,MAAa,mBAAmB;IAG5B,YAAY,MAAsC;QAC9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AAND,kDAMC"}
1
+ {"version":3,"file":"ValidationException.js","sourceRoot":"","sources":["../../../src/usecases/exceptions/ValidationException.ts"],"names":[],"mappings":";;;AAEA,MAAa,mBAAmB;IAG5B,YAAY,MAA8B;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AAND,kDAMC"}
@@ -1,8 +1,11 @@
1
- import { ValidatorOptions } from 'class-validator';
1
+ import { ValidationError, ValidatorOptions } from 'class-validator';
2
2
  import { IValidator, IValidatorParams } from '../interfaces/IValidator';
3
+ import { IErrorsCompositeObject } from '../interfaces/IErrorsCompositeObject';
3
4
  export declare function validateOrReject(dto: any, validatorOptions?: ValidatorOptions): Promise<void>;
4
5
  export declare class ValidationHelper {
5
6
  static validate(dto: any, params?: IValidatorParams, allValidators?: IValidator[]): Promise<void>;
6
- protected static validateSingle(dto: any): Promise<void>;
7
- protected static validateByInstances(dto: any, params?: IValidatorParams, validatorsInstances?: IValidator[]): Promise<{}>;
7
+ static getClassValidatorErrors(dto: any): Promise<IErrorsCompositeObject | null>;
8
+ static getSteroidsErrors(dto: any, params?: IValidatorParams, validatorsInstances?: IValidator[]): Promise<IErrorsCompositeObject | null>;
9
+ protected static getSteroidsFieldValidatorsErrors(dto: any, key: string, params: IValidatorParams, validatorsInstances: IValidator[]): Promise<string[]>;
10
+ static parseClassValidatorErrors(errors: ValidationError[]): IErrorsCompositeObject;
8
11
  }
@@ -12,8 +12,9 @@ const defaultValidatorOptions = {
12
12
  forbidUnknownValues: false,
13
13
  };
14
14
  async function validateOrReject(dto, validatorOptions) {
15
- const errors = await (0, class_validator_1.validate)(dto, Object.assign(Object.assign({}, defaultValidatorOptions), validatorOptions));
16
- if (errors.length) {
15
+ const classValidatorErrors = await (0, class_validator_1.validate)(dto, Object.assign(Object.assign({}, defaultValidatorOptions), validatorOptions));
16
+ if (classValidatorErrors.length) {
17
+ const errors = ValidationHelper.parseClassValidatorErrors(classValidatorErrors);
17
18
  throw new exceptions_1.ValidationException(errors);
18
19
  }
19
20
  }
@@ -21,75 +22,111 @@ exports.validateOrReject = validateOrReject;
21
22
  class ValidationHelper {
22
23
  static async validate(dto, params = null, allValidators = null) {
23
24
  var _a;
24
- await ValidationHelper.validateSingle(dto);
25
- const errors = await ValidationHelper.validateByInstances(dto, params, allValidators);
25
+ const classValidatorErrors = await this.getClassValidatorErrors(dto);
26
+ const steroidsValidatorsErrors = await this.getSteroidsErrors(dto, params, allValidators);
27
+ const errors = (0, lodash_1.mergeWith)(classValidatorErrors, steroidsValidatorsErrors, (objValue, srcValue) => {
28
+ if (Array.isArray(objValue)) {
29
+ return objValue.concat(srcValue);
30
+ }
31
+ });
26
32
  if (errors && ((_a = Object.keys(errors)) === null || _a === void 0 ? void 0 : _a.length) > 0) {
27
33
  throw new exceptions_1.ValidationException(errors);
28
34
  }
29
35
  }
30
- static async validateSingle(dto) {
36
+ static async getClassValidatorErrors(dto) {
31
37
  const errors = await (0, class_validator_1.validate)(dto, defaultValidatorOptions);
32
38
  if (errors.length) {
33
- throw new exceptions_1.ValidationException(errors);
39
+ return this.parseClassValidatorErrors(errors);
34
40
  }
41
+ return null;
35
42
  }
36
- static async validateByInstances(dto, params = null, validatorsInstances = null) {
37
- var _a, _b, _c;
43
+ static async getSteroidsErrors(dto, params = null, validatorsInstances = null) {
44
+ var _a, _b;
38
45
  if (!dto) {
39
46
  return;
40
47
  }
41
48
  const errors = {};
42
- const keys = (0, BaseField_1.isMetaClass)(dto.constructor) ? (0, BaseField_1.getMetaFields)(dto.constructor) : Object.keys(dto);
49
+ const keys = (0, BaseField_1.isMetaClass)(dto.constructor)
50
+ ? (0, BaseField_1.getMetaFields)(dto.constructor)
51
+ : Object.keys(dto);
43
52
  for (const key of keys) {
44
53
  const value = dto[key];
45
54
  const nextParams = Object.assign(Object.assign({}, params), { name: key, prevModel: ((_a = params === null || params === void 0 ? void 0 : params.prevModel) === null || _a === void 0 ? void 0 : _a[key]) || null, nextModel: ((_b = params === null || params === void 0 ? void 0 : params.nextModel) === null || _b === void 0 ? void 0 : _b[key]) || null });
46
- let error = null;
47
- try {
48
- if (Array.isArray(value)) {
49
- for (const valueItemIndex in value) {
50
- error = await ValidationHelper.validateByInstances(value[valueItemIndex], nextParams, validatorsInstances);
51
- if (error) {
52
- errors[key] = Object.assign(Object.assign({}, ((errors === null || errors === void 0 ? void 0 : errors[key]) || {})), { [valueItemIndex]: error });
53
- }
55
+ let keyErrors = null;
56
+ if (Array.isArray(value)) {
57
+ for (const valueItemIndex in value) {
58
+ const arrayItemErrors = await this.getSteroidsErrors(value[valueItemIndex], nextParams, validatorsInstances);
59
+ if (arrayItemErrors) {
60
+ keyErrors = Object.assign(Object.assign({}, (keyErrors || {})), { [valueItemIndex]: arrayItemErrors });
54
61
  }
55
62
  }
56
- else if (value && (0, lodash_1.isObject)(value)) {
57
- error = await ValidationHelper.validateByInstances(value, nextParams, validatorsInstances);
58
- if (error) {
59
- errors[key] = error;
60
- }
61
- }
62
- const fieldValidators = (0, Validator_1.getFieldValidators)(dto.constructor, key);
63
- for (const fieldValidator of fieldValidators) {
64
- const validator = (validatorsInstances || []).find(item => {
65
- try {
66
- return item instanceof fieldValidator;
67
- }
68
- catch (e) {
69
- return false;
70
- }
71
- });
72
- if (!validator && typeof fieldValidator === 'function') {
73
- await fieldValidator(dto, Object.assign(Object.assign({}, params), { name: key }));
74
- continue;
63
+ }
64
+ else if (value && (0, lodash_1.isObject)(value)) {
65
+ keyErrors = await this.getSteroidsErrors(value, nextParams, validatorsInstances);
66
+ }
67
+ if (keyErrors) {
68
+ errors[key] = keyErrors;
69
+ continue;
70
+ }
71
+ const fieldValidatorsErrors = await this.getSteroidsFieldValidatorsErrors(dto, key, params, validatorsInstances);
72
+ if ((fieldValidatorsErrors === null || fieldValidatorsErrors === void 0 ? void 0 : fieldValidatorsErrors.length) > 0) {
73
+ errors[key] = fieldValidatorsErrors;
74
+ }
75
+ }
76
+ if (Object.keys(errors).length > 0) {
77
+ return errors;
78
+ }
79
+ return null;
80
+ }
81
+ static async getSteroidsFieldValidatorsErrors(dto, key, params, validatorsInstances) {
82
+ let fieldValidatorErrors = [];
83
+ const fieldValidators = (0, Validator_1.getFieldValidators)(dto.constructor, key);
84
+ for (const fieldValidator of fieldValidators) {
85
+ try {
86
+ const validator = (validatorsInstances || []).find(item => {
87
+ try {
88
+ return item instanceof fieldValidator;
75
89
  }
76
- if (!validator) {
77
- throw new Error(`Not found validator instance for "${dto.constructor.name}.${key}."`
78
- + ' Please add it to CrudService.validators array.');
90
+ catch (e) {
91
+ return false;
79
92
  }
80
- await validator.validate(dto, Object.assign(Object.assign({}, params), { name: key }));
93
+ });
94
+ if (!validator && typeof fieldValidator === 'function') {
95
+ await fieldValidator(dto, Object.assign(Object.assign({}, params), { name: key }));
96
+ continue;
81
97
  }
98
+ if (!validator) {
99
+ throw new Error(`Not found validator instance for "${dto.constructor.name}.${key}"`
100
+ + ' Please add it to CrudService.validators array.');
101
+ }
102
+ await validator.validate(dto, Object.assign(Object.assign({}, params), { name: key }));
82
103
  }
83
104
  catch (e) {
84
105
  if (e instanceof FieldValidatorException_1.FieldValidatorException) {
85
- errors[((_c = e.params) === null || _c === void 0 ? void 0 : _c.name) || key] = e.message;
106
+ fieldValidatorErrors.push(e.message);
107
+ }
108
+ else {
109
+ throw e;
86
110
  }
87
111
  }
88
112
  }
89
- if (Object.keys(errors).length > 0) {
113
+ return fieldValidatorErrors;
114
+ }
115
+ static parseClassValidatorErrors(errors) {
116
+ var _a;
117
+ if (!Array.isArray(errors)) {
90
118
  return errors;
91
119
  }
92
- return null;
120
+ const result = {};
121
+ for (const error of errors) {
122
+ if (error.constraints) {
123
+ result[error.property] = [].concat(Object.values(error.constraints));
124
+ }
125
+ if (((_a = error.children) === null || _a === void 0 ? void 0 : _a.length) > 0) {
126
+ result[error.property] = this.parseClassValidatorErrors(error.children);
127
+ }
128
+ }
129
+ return result;
93
130
  }
94
131
  }
95
132
  exports.ValidationHelper = ValidationHelper;
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationHelper.js","sourceRoot":"","sources":["../../../src/usecases/helpers/ValidationHelper.ts"],"names":[],"mappings":";;;AAAA,mCAA6C;AAC7C,qDAA2D;AAC3D,8CAAkD;AAElD,mFAA8E;AAC9E,gFAA4F;AAC5F,uDAA2D;AAE3D,MAAM,uBAAuB,GAAqB;IAC9C,SAAS,EAAE,KAAK;IAChB,mBAAmB,EAAE,KAAK;CAC7B,CAAC;AAKK,KAAK,UAAU,gBAAgB,CAAC,GAAQ,EAAE,gBAAmC;IAChF,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EACzB,GAAG,kCACC,uBAAuB,GAAK,gBAAgB,EACnD,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,EAAE;QACf,MAAM,IAAI,gCAAmB,CAAC,MAAM,CAAC,CAAC;KACzC;AACL,CAAC;AARD,4CAQC;AAWD,MAAa,gBAAgB;IACzB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAQ,EAAE,SAA2B,IAAI,EAAE,gBAA8B,IAAI;;QAC/F,MAAM,gBAAgB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACtF,IAAI,MAAM,IAAI,CAAA,MAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,0CAAE,MAAM,IAAG,CAAC,EAAE;YAC3C,MAAM,IAAI,gCAAmB,CAAC,MAAM,CAAC,CAAC;SACzC;IACL,CAAC;IAOS,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,GAAQ;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,gCAAmB,CAAC,MAAM,CAAC,CAAC;SACzC;IACL,CAAC;IASS,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAQ,EAAE,SAA2B,IAAI,EAAE,sBAAoC,IAAI;;QAC1H,IAAI,CAAC,GAAG,EAAE;YACN,OAAO;SACV;QAED,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,MAAM,IAAI,GAAG,IAAA,uBAAW,EAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAA,yBAAa,EAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9F,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACpB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,UAAU,mCACT,MAAM,KACT,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,0CAAG,GAAG,CAAC,KAAI,IAAI,EAC3C,SAAS,EAAE,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,0CAAG,GAAG,CAAC,KAAI,IAAI,GAC9C,CAAC;YAEF,IAAI,KAAK,GAAG,IAAI,CAAC;YAEjB,IAAI;gBACA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACtB,KAAK,MAAM,cAAc,IAAI,KAAK,EAAE;wBAChC,KAAK,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC;wBAE3G,IAAI,KAAK,EAAE;4BACP,MAAM,CAAC,GAAG,CAAC,mCACJ,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,GAAG,CAAC,KAAI,EAAE,CAAC,KACxB,CAAC,cAAc,CAAC,EAAE,KAAK,GAC1B,CAAC;yBACL;qBACJ;iBACJ;qBAAM,IAAI,KAAK,IAAI,IAAA,iBAAS,EAAC,KAAK,CAAC,EAAE;oBAElC,KAAK,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAA;oBAE1F,IAAI,KAAK,EAAE;wBACP,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;qBACvB;iBACJ;gBAED,MAAM,eAAe,GAAG,IAAA,8BAAkB,EAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAEjE,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE;oBAE1C,MAAM,SAAS,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBACtD,IAAI;4BACA,OAAO,IAAI,YAAY,cAAc,CAAC;yBACzC;wBAAC,OAAO,CAAC,EAAE;4BACR,OAAO,KAAK,CAAC;yBAChB;oBACL,CAAC,CAAC,CAAC;oBAEH,IAAI,CAAC,SAAS,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;wBACpD,MAAM,cAAc,CAAC,GAAG,kCACjB,MAAM,KACT,IAAI,EAAE,GAAG,IACX,CAAC;wBACH,SAAS;qBACZ;oBAED,IAAI,CAAC,SAAS,EAAE;wBACZ,MAAM,IAAI,KAAK,CACX,qCAAqC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,GAAG,IAAI;8BAClE,iDAAiD,CACtD,CAAC;qBACL;oBAGD,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG,kCACrB,MAAM,KACT,IAAI,EAAE,GAAG,IACX,CAAC;iBACN;aACJ;YAAC,OAAO,CAAC,EAAE;gBAER,IAAI,CAAC,YAAY,iDAAuB,EAAE;oBACtC,MAAM,CAAC,CAAA,MAAA,CAAC,CAAC,MAAM,0CAAE,IAAI,KAAI,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;iBAC7C;aACJ;SACJ;QAID,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,OAAO,MAAM,CAAC;SACjB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AApHD,4CAoHC"}
1
+ {"version":3,"file":"ValidationHelper.js","sourceRoot":"","sources":["../../../src/usecases/helpers/ValidationHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export interface IErrorsCompositeObject {
2
+ [propertyName: string]: string | string[] | IErrorsCompositeObject;
3
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=IFormError.js.map
3
+ //# sourceMappingURL=IErrorsCompositeObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IErrorsCompositeObject.js","sourceRoot":"","sources":["../../../src/usecases/interfaces/IErrorsCompositeObject.ts"],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- import { ExceptionFilter, ArgumentsHost } from '@nestjs/common';
2
- import { ValidationException } from '../../../../usecases/exceptions';
3
- type ErrorsCompositeObject = {
4
- [propertyName: string]: string[] | ErrorsCompositeObject;
5
- };
6
- export declare class ValidationExceptionFilterCustom implements ExceptionFilter {
7
- parseErrors(errors: any, contextLanguage: string): Promise<ErrorsCompositeObject>;
8
- catch(exception: ValidationException, host: ArgumentsHost): Promise<void>;
9
- }
10
- export {};
@@ -1,49 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ValidationExceptionFilterCustom = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const class_validator_1 = require("class-validator");
12
- const exceptions_1 = require("../../../../usecases/exceptions");
13
- let ValidationExceptionFilterCustom = class ValidationExceptionFilterCustom {
14
- async parseErrors(errors, contextLanguage) {
15
- if (!Array.isArray(errors)) {
16
- return errors;
17
- }
18
- return errors
19
- .filter(error => error instanceof class_validator_1.ValidationError)
20
- .reduce(async (result, error) => {
21
- var _a;
22
- if (((_a = error.children) === null || _a === void 0 ? void 0 : _a.length) > 0) {
23
- result[error.property] = this.parseErrors(error.children, contextLanguage);
24
- return result;
25
- }
26
- if (!error.constraints) {
27
- return result;
28
- }
29
- result[error.property] = Object.values(error.constraints);
30
- return result;
31
- }, {});
32
- }
33
- async catch(exception, host) {
34
- const ctx = host.switchToHttp();
35
- const response = ctx.getResponse();
36
- const errors = await this.parseErrors(exception.errors, ctx.getRequest().i18nLang);
37
- response
38
- .status(common_1.HttpStatus.OK)
39
- .json({
40
- statusCode: common_1.HttpStatus.BAD_REQUEST,
41
- errors,
42
- });
43
- }
44
- };
45
- ValidationExceptionFilterCustom = __decorate([
46
- (0, common_1.Catch)(exceptions_1.ValidationException)
47
- ], ValidationExceptionFilterCustom);
48
- exports.ValidationExceptionFilterCustom = ValidationExceptionFilterCustom;
49
- //# sourceMappingURL=ValidationExceptionFilterCustom.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ValidationExceptionFilterCustom.js","sourceRoot":"","sources":["../../../../../src/infrastructure/applications/rest/filters/ValidationExceptionFilterCustom.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAiF;AAEjF,qDAAgD;AAChD,gEAAoE;AAQ7D,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IACxC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,eAAuB;QAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACxB,OAAO,MAAM,CAAC;SACjB;QAED,OAAO,MAAM;aACR,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,YAAY,iCAAe,CAAC;aACjD,MAAM,CACH,KAAK,EAAE,MAAW,EAAE,KAAsB,EAAkC,EAAE;;YAC1E,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,IAAG,CAAC,EAAE;gBAC5B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;gBAC3E,OAAO,MAAM,CAAC;aACjB;YAED,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBACpB,OAAO,MAAM,CAAC;aACjB;YAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAE1D,OAAO,MAAM,CAAC;QAClB,CAAC,EACD,EAAE,CACL,CAAC;IACV,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAA8B,EAAE,IAAmB;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;QAEnF,QAAQ;aACH,MAAM,CAAC,mBAAU,CAAC,EAAE,CAAC;aACrB,IAAI,CAAC;YACF,UAAU,EAAE,mBAAU,CAAC,WAAW;YAClC,MAAM;SACT,CAAC,CAAC;IACX,CAAC;CACJ,CAAA;AAvCY,+BAA+B;IAD3C,IAAA,cAAK,EAAC,gCAAmB,CAAC;GACd,+BAA+B,CAuC3C;AAvCY,0EAA+B"}
@@ -1,3 +0,0 @@
1
- export interface IFormError {
2
- [key: string]: string | string[];
3
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"IFormError.js","sourceRoot":"","sources":["../../../src/usecases/interfaces/IFormError.ts"],"names":[],"mappings":""}