structure-verifier 0.0.14 → 0.0.16

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.
Files changed (39) hide show
  1. package/README.md +299 -325
  2. package/dist/index.d.ts +50 -18
  3. package/dist/index.js +20 -15
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/error/v_error.d.ts +9 -4
  6. package/dist/src/error/v_error.js +14 -7
  7. package/dist/src/error/v_error.js.map +1 -1
  8. package/dist/src/interfaces/types.d.ts +3 -3
  9. package/dist/src/languages/message.d.ts +1 -1
  10. package/dist/src/languages/message.js +7 -4
  11. package/dist/src/languages/message.js.map +1 -1
  12. package/dist/src/verifiers/any/v_any.d.ts +1 -2
  13. package/dist/src/verifiers/any/v_any.js +8 -3
  14. package/dist/src/verifiers/any/v_any.js.map +1 -1
  15. package/dist/src/verifiers/array/v_array.d.ts +7 -6
  16. package/dist/src/verifiers/array/v_array.js +44 -33
  17. package/dist/src/verifiers/array/v_array.js.map +1 -1
  18. package/dist/src/verifiers/boolean/v_boolean.d.ts +1 -2
  19. package/dist/src/verifiers/boolean/v_boolean.js +30 -21
  20. package/dist/src/verifiers/boolean/v_boolean.js.map +1 -1
  21. package/dist/src/verifiers/date/v_date.d.ts +1 -2
  22. package/dist/src/verifiers/date/v_date.js +68 -47
  23. package/dist/src/verifiers/date/v_date.js.map +1 -1
  24. package/dist/src/verifiers/number/v_number.d.ts +1 -2
  25. package/dist/src/verifiers/number/v_number.js +30 -52
  26. package/dist/src/verifiers/number/v_number.js.map +1 -1
  27. package/dist/src/verifiers/object/v_object.d.ts +14 -15
  28. package/dist/src/verifiers/object/v_object.js +98 -68
  29. package/dist/src/verifiers/object/v_object.js.map +1 -1
  30. package/dist/src/verifiers/string/v_string.d.ts +1 -2
  31. package/dist/src/verifiers/string/v_string.js +73 -85
  32. package/dist/src/verifiers/string/v_string.js.map +1 -1
  33. package/dist/src/verifiers/type.d.ts +1 -0
  34. package/dist/src/verifiers/uuid/v_uuid.d.ts +1 -2
  35. package/dist/src/verifiers/uuid/v_uuid.js +83 -46
  36. package/dist/src/verifiers/uuid/v_uuid.js.map +1 -1
  37. package/dist/src/verifiers/verifier.js +1 -1
  38. package/dist/src/verifiers/verifier.js.map +1 -1
  39. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -1,15 +1,31 @@
1
1
  import { VAny } from "./src/verifiers/any/v_any";
2
+ import { VAnyConditions } from "./src/verifiers/any/v_any";
2
3
  import { VArray, VArrayNotNull } from "./src/verifiers/array/v_array";
4
+ import { VArrayConditions } from "./src/verifiers/array/v_array";
3
5
  import { VBoolean, VBooleanNotNull } from "./src/verifiers/boolean/v_boolean";
6
+ import { VBooleanConditions } from "./src/verifiers/boolean/v_boolean";
4
7
  import { VDate, VDateNotNull } from "./src/verifiers/date/v_date";
8
+ import { VDateConditions } from "./src/verifiers/date/v_date";
5
9
  import { VNumber, VNumberNotNull } from "./src/verifiers/number/v_number";
10
+ import { VNumberConditions } from "./src/verifiers/number/v_number";
6
11
  import { VObject, VObjectNotNull } from "./src/verifiers/object/v_object";
12
+ import { VObjectConditions, VObjectConditionsNotNull } from "./src/verifiers/object/v_object";
7
13
  import { VString, VStringNotNull } from "./src/verifiers/string/v_string";
14
+ import { VStringConditions } from "./src/verifiers/string/v_string";
8
15
  import { VUUID, VUUIDNotNull } from "./src/verifiers/uuid/v_uuid";
9
- import { Verifier } from './src/verifiers/verifier';
16
+ import { VUUIDConditions } from "./src/verifiers/uuid/v_uuid";
17
+ import { Verifier } from "./src/verifiers/verifier";
10
18
  export { VerificationError } from "./src/error/v_error";
11
- export { InferType } from "./src/verifiers/type";
12
- export { Verifier } from './src/verifiers/verifier';
19
+ export { InferFactoryType, InferType } from "./src/verifiers/type";
20
+ export { Verifier } from "./src/verifiers/verifier";
21
+ export type { VAnyConditions } from "./src/verifiers/any/v_any";
22
+ export type { VArrayConditions } from "./src/verifiers/array/v_array";
23
+ export type { VBooleanConditions } from "./src/verifiers/boolean/v_boolean";
24
+ export type { VDateConditions } from "./src/verifiers/date/v_date";
25
+ export type { VNumberConditions } from "./src/verifiers/number/v_number";
26
+ export type { VObjectConditions, VObjectConditionsNotNull, } from "./src/verifiers/object/v_object";
27
+ export type { VStringConditions } from "./src/verifiers/string/v_string";
28
+ export type { VUUIDConditions } from "./src/verifiers/uuid/v_uuid";
13
29
  export { VNumberNotNull, VNumber } from "./src/verifiers/number/v_number";
14
30
  export { VStringNotNull, VString } from "./src/verifiers/string/v_string";
15
31
  export { VBooleanNotNull, VBoolean } from "./src/verifiers/boolean/v_boolean";
@@ -19,21 +35,37 @@ export { VAny } from "./src/verifiers/any/v_any";
19
35
  export { VDateNotNull, VDate } from "./src/verifiers/date/v_date";
20
36
  export { VUUIDNotNull, VUUID } from "./src/verifiers/uuid/v_uuid";
21
37
  export { datetime } from "./src/utils/datetime";
38
+ type CallableCtor<T, A extends any[] = any[]> = {
39
+ (...args: A): T;
40
+ new (...args: A): T;
41
+ };
22
42
  export declare const Verifiers: {
23
43
  Verifier: typeof Verifier;
24
- NumberNotNull: typeof VNumberNotNull;
25
- Number: typeof VNumber;
26
- StringNotNull: typeof VStringNotNull;
27
- String: typeof VString;
28
- Boolean: typeof VBoolean;
29
- BooleanNotNull: typeof VBooleanNotNull;
30
- ObjectNotNull: typeof VObjectNotNull;
31
- Object: typeof VObject;
32
- Array: typeof VArray;
33
- ArrayNotNull: typeof VArrayNotNull;
34
- Any: typeof VAny;
35
- Date: typeof VDate;
36
- DateNotNull: typeof VDateNotNull;
37
- UUIDNotNull: typeof VUUIDNotNull;
38
- UUID: typeof VUUID;
44
+ NumberNotNull: CallableCtor<VNumberNotNull, [cond?: VNumberConditions | undefined]>;
45
+ Number: CallableCtor<VNumber, [cond?: VNumberConditions | undefined]>;
46
+ StringNotNull: CallableCtor<VStringNotNull, [cond?: VStringConditions | undefined]>;
47
+ String: CallableCtor<VString, [cond?: VStringConditions | undefined]>;
48
+ Boolean: CallableCtor<VBoolean, [cond?: VBooleanConditions | undefined]>;
49
+ BooleanNotNull: CallableCtor<VBooleanNotNull, [cond?: VBooleanConditions | undefined]>;
50
+ ObjectNotNull: {
51
+ <T extends Record<string, Verifier<any>>>(properties: T, cond?: VObjectConditionsNotNull<T>): VObjectNotNull<T>;
52
+ new <T extends Record<string, Verifier<any>>>(properties: T, cond?: VObjectConditionsNotNull<T>): VObjectNotNull<T>;
53
+ };
54
+ Object: {
55
+ <T extends Record<string, Verifier<any>>>(properties: T, cond?: VObjectConditions<T>): VObject<T>;
56
+ new <T extends Record<string, Verifier<any>>>(properties: T, cond?: VObjectConditions<T>): VObject<T>;
57
+ };
58
+ Array: {
59
+ <T extends Verifier<any>>(verifier: T, cond?: VArrayConditions<T>): VArray<T>;
60
+ new <T extends Verifier<any>>(verifier: T, cond?: VArrayConditions<T>): VArray<T>;
61
+ };
62
+ ArrayNotNull: {
63
+ <T extends Verifier<any>>(verifier: T, cond?: VArrayConditions<T>): VArrayNotNull<T>;
64
+ new <T extends Verifier<any>>(verifier: T, cond?: VArrayConditions<T>): VArrayNotNull<T>;
65
+ };
66
+ Any: CallableCtor<VAny, [cond?: VAnyConditions | undefined]>;
67
+ Date: CallableCtor<VDate, [cond?: VDateConditions | undefined]>;
68
+ DateNotNull: CallableCtor<VDateNotNull, [cond?: VDateConditions | undefined]>;
69
+ UUIDNotNull: CallableCtor<VUUIDNotNull, [cond?: VUUIDConditions | undefined]>;
70
+ UUID: CallableCtor<VUUID, [cond?: VUUIDConditions | undefined]>;
39
71
  };
package/dist/index.js CHANGED
@@ -39,22 +39,27 @@ Object.defineProperty(exports, "VUUIDNotNull", { enumerable: true, get: function
39
39
  Object.defineProperty(exports, "VUUID", { enumerable: true, get: function () { return v_uuid_2.VUUID; } });
40
40
  var datetime_1 = require("./src/utils/datetime");
41
41
  Object.defineProperty(exports, "datetime", { enumerable: true, get: function () { return datetime_1.datetime; } });
42
+ function callableCtor(factory) {
43
+ return function (...args) {
44
+ return factory(...args);
45
+ };
46
+ }
42
47
  exports.Verifiers = {
43
48
  Verifier: verifier_1.Verifier,
44
- NumberNotNull: v_number_1.VNumberNotNull,
45
- Number: v_number_1.VNumber,
46
- StringNotNull: v_string_1.VStringNotNull,
47
- String: v_string_1.VString,
48
- Boolean: v_boolean_1.VBoolean,
49
- BooleanNotNull: v_boolean_1.VBooleanNotNull,
50
- ObjectNotNull: v_object_1.VObjectNotNull,
51
- Object: v_object_1.VObject,
52
- Array: v_array_1.VArray,
53
- ArrayNotNull: v_array_1.VArrayNotNull,
54
- Any: v_any_1.VAny,
55
- Date: v_date_1.VDate,
56
- DateNotNull: v_date_1.VDateNotNull,
57
- UUIDNotNull: v_uuid_1.VUUIDNotNull,
58
- UUID: v_uuid_1.VUUID
49
+ NumberNotNull: callableCtor((cond) => new v_number_1.VNumberNotNull(cond)),
50
+ Number: callableCtor((cond) => new v_number_1.VNumber(cond)),
51
+ StringNotNull: callableCtor((cond) => new v_string_1.VStringNotNull(cond)),
52
+ String: callableCtor((cond) => new v_string_1.VString(cond)),
53
+ Boolean: callableCtor((cond) => new v_boolean_1.VBoolean(cond)),
54
+ BooleanNotNull: callableCtor((cond) => new v_boolean_1.VBooleanNotNull(cond)),
55
+ ObjectNotNull: callableCtor((properties, cond) => new v_object_1.VObjectNotNull(properties, cond)),
56
+ Object: callableCtor((properties, cond) => new v_object_1.VObject(properties, cond)),
57
+ Array: callableCtor((verifier, cond) => new v_array_1.VArray(verifier, cond)),
58
+ ArrayNotNull: callableCtor((verifier, cond) => new v_array_1.VArrayNotNull(verifier, cond)),
59
+ Any: callableCtor((cond) => new v_any_1.VAny(cond)),
60
+ Date: callableCtor((cond) => new v_date_1.VDate(cond)),
61
+ DateNotNull: callableCtor((cond) => new v_date_1.VDateNotNull(cond)),
62
+ UUIDNotNull: callableCtor((cond) => new v_uuid_1.VUUIDNotNull(cond)),
63
+ UUID: callableCtor((cond) => new v_uuid_1.VUUID(cond)),
59
64
  };
60
65
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAAiD;AACjD,2DAAsE;AACtE,iEAA8E;AAC9E,wDAAkE;AAClE,8DAA0E;AAC1E,8DAA0E;AAC1E,8DAA0E;AAC1E,wDAAkE;AAClE,uDAAoD;AAEpD,+CAAwD;AAA/C,4GAAA,iBAAiB,OAAA;AAI1B,qDAAoD;AAA3C,oGAAA,QAAQ,OAAA;AACjB,4DAA0E;AAAjE,0GAAA,cAAc,OAAA;AAAE,mGAAA,OAAO,OAAA;AAChC,4DAA0E;AAAjE,0GAAA,cAAc,OAAA;AAAE,mGAAA,OAAO,OAAA;AAChC,+DAA8E;AAArE,4GAAA,eAAe,OAAA;AAAE,qGAAA,QAAQ,OAAA;AAClC,4DAA0E;AAAjE,0GAAA,cAAc,OAAA;AAAE,mGAAA,OAAO,OAAA;AAChC,yDAAsE;AAA7D,wGAAA,aAAa,OAAA;AAAE,iGAAA,MAAM,OAAA;AAC9B,mDAAiD;AAAxC,6FAAA,IAAI,OAAA;AACb,sDAAkE;AAAzD,sGAAA,YAAY,OAAA;AAAE,+FAAA,KAAK,OAAA;AAC5B,sDAAkE;AAAzD,sGAAA,YAAY,OAAA;AAAE,+FAAA,KAAK,OAAA;AAC5B,iDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AAGJ,QAAA,SAAS,GAAG;IACrB,QAAQ,EAAR,mBAAQ;IACR,aAAa,EAAE,yBAAc;IAC7B,MAAM,EAAE,kBAAO;IACf,aAAa,EAAE,yBAAc;IAC7B,MAAM,EAAE,kBAAO;IACf,OAAO,EAAE,oBAAQ;IACjB,cAAc,EAAE,2BAAe;IAC/B,aAAa,EAAE,yBAAc;IAC7B,MAAM,EAAE,kBAAO;IACf,KAAK,EAAE,gBAAM;IACb,YAAY,EAAE,uBAAa;IAC3B,GAAG,EAAE,YAAI;IACT,IAAI,EAAE,cAAK;IACX,WAAW,EAAE,qBAAY;IACzB,WAAW,EAAE,qBAAY;IACzB,IAAI,EAAE,cAAK;CACd,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,13 @@
1
1
  import { messageResp } from "../interfaces/types";
2
2
  export declare class VerificationError extends Error {
3
- private _errors;
4
- private _errorsObj;
5
- constructor(messages: messageResp[]);
3
+ private readonly _errors;
4
+ private readonly _errorsObj;
5
+ constructor(messages: readonly messageResp[]);
6
6
  get errors(): string[];
7
- get errorsObj(): messageResp[];
7
+ get errorsObj(): {
8
+ key?: string;
9
+ message: string;
10
+ isEmpty?: boolean;
11
+ isItem?: boolean;
12
+ }[];
8
13
  }
@@ -1,20 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VerificationError = void 0;
4
+ function normalizeMessage(message) {
5
+ return Object.freeze(Object.assign(Object.assign({}, message), { key: typeof message.key === "string" ? message.key.trim() : message.key, message: message.message.trim() }));
6
+ }
7
+ function formatMessage(message) {
8
+ const key = typeof message.key === "string" ? message.key.trim() : "";
9
+ const text = message.message.trim();
10
+ return key.length > 0 ? `${key} ${text}` : text;
11
+ }
4
12
  class VerificationError extends Error {
5
13
  constructor(messages) {
6
- super(messages.map(v => `${v.key} ${v.message}`).join(';'));
7
- this._errors = [];
8
- this._errorsObj = [];
14
+ const normalizedMessages = messages.map(normalizeMessage);
15
+ super(normalizedMessages.map(formatMessage).join(";"));
9
16
  this.name = "VerificationError";
10
- this._errors = messages.map(v => `${v.key} ${v.message}`);
11
- this._errorsObj = messages;
17
+ this._errors = Object.freeze(normalizedMessages.map(formatMessage));
18
+ this._errorsObj = Object.freeze(normalizedMessages);
12
19
  }
13
20
  get errors() {
14
- return this._errors;
21
+ return [...this._errors];
15
22
  }
16
23
  get errorsObj() {
17
- return this._errorsObj;
24
+ return this._errorsObj.map((message) => (Object.assign({}, message)));
18
25
  }
19
26
  }
20
27
  exports.VerificationError = VerificationError;
@@ -1 +1 @@
1
- {"version":3,"file":"v_error.js","sourceRoot":"","sources":["../../../src/src/error/v_error.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAkB,SAAQ,KAAK;IAGxC,YAAY,QAAuB;QAC/B,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAHxD,YAAO,GAAa,EAAE,CAAA;QACtB,eAAU,GAAkB,EAAE,CAAA;QAGlC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC5B,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QAC5B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAA;IAC9B,CAAC;IACD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IACD,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAA;IAC1B,CAAC;CAEJ;AAjBD,8CAiBC"}
1
+ {"version":3,"file":"v_error.js","sourceRoot":"","sources":["../../../src/src/error/v_error.ts"],"names":[],"mappings":";;;AAEA,SAAS,gBAAgB,CAAC,OAAoB;IAC5C,OAAO,MAAM,CAAC,MAAM,iCACf,OAAO,KACV,GAAG,EAAE,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EACvE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAC/B,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,OAAoB;IACzC,MAAM,GAAG,GAAG,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAEpC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,MAAa,iBAAkB,SAAQ,KAAK;IAI1C,YAAY,QAAgC;QAC1C,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAE1D,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,mBAAM,OAAO,EAAG,CAAC,CAAC;IAC5D,CAAC;CACF;AApBD,8CAoBC"}
@@ -1,9 +1,9 @@
1
- export type messageResp = {
1
+ export type messageResp = Readonly<{
2
2
  key?: string;
3
3
  message: string;
4
4
  isEmpty?: boolean;
5
5
  isItem?: boolean;
6
- };
6
+ }>;
7
7
  export type MessageType<T, K> = T | {
8
8
  val: T;
9
9
  message: (values: K) => string;
@@ -16,7 +16,7 @@ export interface VVCIsRequiredMessage {
16
16
  isRequiredMessage?: string;
17
17
  }
18
18
  export interface VBadTypeMessage {
19
- badTypeMessage?: string;
19
+ badTypeMessage?: MessageType<void, void> | string;
20
20
  }
21
21
  export interface VDefaultValue<T> {
22
22
  defaultValue?: T;
@@ -7,4 +7,4 @@ export type MessageType<T, K> = T | {
7
7
  message: (values: K) => string;
8
8
  };
9
9
  export declare function getValue<T, K>(m: MessageType<T, K>): T;
10
- export declare function getMessage<T, K>(m: MessageType<T, K>, values: K, message: IMessageLanguage<K>): string;
10
+ export declare function getMessage<T, K>(m: MessageType<T, K> | string, values: K, message: IMessageLanguage<K>): string;
@@ -7,8 +7,8 @@ function getValue(m) {
7
7
  if (m instanceof RegExp) {
8
8
  return m;
9
9
  }
10
- if (typeof m === 'object' && m !== null && 'val' in m && 'message' in m) {
11
- if ('val' in m) {
10
+ if (typeof m === "object" && m !== null && "val" in m && "message" in m) {
11
+ if ("val" in m) {
12
12
  return m.val;
13
13
  }
14
14
  throw new Error("Invalid object structure");
@@ -19,8 +19,11 @@ function getMessage(m, values, message) {
19
19
  if (m instanceof RegExp) {
20
20
  return message[verifierConfig_1.VerifierConfig.lang](values);
21
21
  }
22
- if (typeof m === 'object' && m !== null && 'val' in m && 'message' in m) {
23
- if ('message' in m) {
22
+ if (typeof m === "string") {
23
+ return m;
24
+ }
25
+ if (typeof m === "object" && m !== null && "val" in m && "message" in m) {
26
+ if ("message" in m) {
24
27
  return m.message(values);
25
28
  }
26
29
  throw new Error("Invalid object structure");
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/src/languages/message.ts"],"names":[],"mappings":";;AAOA,4BAWC;AAED,gCAWC;AA/BD,6DAA0D;AAO1D,SAAgB,QAAQ,CAAO,CAAoB;IAC/C,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC;QACtB,OAAO,CAAM,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACtE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,OAAO,CAAC,CAAC,GAAG,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAgB,UAAU,CAAO,CAAoB,EAAE,MAAS,EAAE,OAA4B;IAC1F,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,+BAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACtE,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,OAAO,CAAC,+BAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/src/languages/message.ts"],"names":[],"mappings":";;AAOA,4BAWC;AAED,gCAkBC;AAtCD,6DAA0D;AAO1D,SAAgB,QAAQ,CAAO,CAAoB;IACjD,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC;QACxB,OAAO,CAAM,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACxE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,GAAG,CAAC;QACf,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAgB,UAAU,CACxB,CAA6B,EAC7B,MAAS,EACT,OAA4B;IAE5B,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,+BAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACxE,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,OAAO,CAAC,+BAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC"}
@@ -1,10 +1,9 @@
1
1
  import { IInfo, VBadTypeMessage, VDefaultValue, VVCIsRequired } from "../../interfaces/types";
2
2
  import { Verifier } from "../verifier";
3
- interface VAnyConditions extends VBadTypeMessage, VDefaultValue<number>, VVCIsRequired, IInfo<any> {
3
+ export interface VAnyConditions extends VBadTypeMessage, VDefaultValue<any>, VVCIsRequired, IInfo<any> {
4
4
  }
5
5
  export declare class VAny extends Verifier<any | null> {
6
6
  protected cond?: VAnyConditions | undefined;
7
7
  check(data: any): any | null;
8
8
  constructor(cond?: VAnyConditions | undefined);
9
9
  }
10
- export {};
@@ -5,12 +5,17 @@ const verifier_1 = require("../verifier");
5
5
  const dMessages = {
6
6
  badTypeMessage: {
7
7
  es: () => `debe ser un dato`,
8
- en: () => `must be a data`
9
- }
8
+ en: () => `must be a value`,
9
+ },
10
10
  };
11
11
  class VAny extends verifier_1.Verifier {
12
12
  check(data) {
13
- return data;
13
+ var _a;
14
+ const value = this.isRequired(data, undefined, (_a = this.cond) === null || _a === void 0 ? void 0 : _a.defaultValue);
15
+ if (value === null || value === undefined) {
16
+ return null;
17
+ }
18
+ return value;
14
19
  }
15
20
  constructor(cond) {
16
21
  super(cond);
@@ -1 +1 @@
1
- {"version":3,"file":"v_any.js","sourceRoot":"","sources":["../../../../src/src/verifiers/any/v_any.ts"],"names":[],"mappings":";;;AAEA,0CAAuC;AASvC,MAAM,SAAS,GAAwB;IACnC,cAAc,EAAE;QACZ,EAAE,EAAE,GAAG,EAAE,CAAC,kBAAkB;QAC5B,EAAE,EAAE,GAAG,EAAE,CAAC,gBAAgB;KAC7B;CACJ,CAAA;AAID,MAAa,IAAK,SAAQ,mBAAoB;IAC1C,KAAK,CAAC,IAAS;QACX,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,YAAsB,IAAqB;QACvC,KAAK,CAAC,IAAI,CAAC,CAAC;QADM,SAAI,GAAJ,IAAI,CAAiB;QAEvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;IACnD,CAAC;CACJ;AATD,oBASC"}
1
+ {"version":3,"file":"v_any.js","sourceRoot":"","sources":["../../../../src/src/verifiers/any/v_any.ts"],"names":[],"mappings":";;;AAOA,0CAAuC;AASvC,MAAM,SAAS,GAAwB;IACrC,cAAc,EAAE;QACd,EAAE,EAAE,GAAG,EAAE,CAAC,kBAAkB;QAC5B,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAiB;KAC5B;CACF,CAAC;AAEF,MAAa,IAAK,SAAQ,mBAAoB;IAC5C,KAAK,CAAC,IAAS;;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,MAAA,IAAI,CAAC,IAAI,0CAAE,YAAY,CAAC,CAAC;QACxE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,YAAsB,IAAqB;QACzC,KAAK,CAAC,IAAI,CAAC,CAAC;QADQ,SAAI,GAAJ,IAAI,CAAiB;QAEzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;IACjD,CAAC;CACF;AAbD,oBAaC"}
@@ -1,17 +1,18 @@
1
1
  import { VBadTypeMessage, VDefaultValue, VVCIsRequired } from "../../interfaces/types";
2
2
  import { Verifier } from "../verifier";
3
- export interface VArrayConditions<T extends Verifier<any>> extends VBadTypeMessage, VDefaultValue<ReturnType<T['check']>[]>, VVCIsRequired {
3
+ export interface VArrayConditions<T extends Verifier<any>> extends VBadTypeMessage, VDefaultValue<ReturnType<T["check"]>[]>, VVCIsRequired {
4
4
  minLength?: number;
5
5
  maxLength?: number;
6
- verifier: T;
7
6
  }
8
- export declare class VArray<T extends Verifier<any>> extends Verifier<ReturnType<T['check']>[] | null> {
7
+ export declare class VArray<T extends Verifier<any>> extends Verifier<ReturnType<T["check"]>[] | null> {
8
+ protected verifier: T;
9
9
  protected cond: VArrayConditions<T>;
10
10
  check(data: any): ReturnType<T["check"]>[] | null;
11
- constructor(cond: VArrayConditions<T>);
11
+ constructor(verifier: T, cond?: VArrayConditions<T>);
12
12
  }
13
- export declare class VArrayNotNull<T extends Verifier<any>> extends Verifier<ReturnType<T['check']>[]> {
13
+ export declare class VArrayNotNull<T extends Verifier<any>> extends Verifier<ReturnType<T["check"]>[]> {
14
+ protected verifier: T;
14
15
  protected cond: VArrayConditions<T>;
15
16
  check(data: any): ReturnType<T["check"]>[];
16
- constructor(cond: VArrayConditions<T>);
17
+ constructor(verifier: T, cond?: VArrayConditions<T>);
17
18
  }
@@ -9,57 +9,66 @@ const verifier_1 = require("../verifier");
9
9
  const dMessages = {
10
10
  minLength: {
11
11
  es: (values) => `debe tener al menos ${values.minLength} elementos`,
12
- en: (values) => `must have at least ${values.minLength} elements`
12
+ en: (values) => `must have at least ${values.minLength} elements`,
13
13
  },
14
14
  maxLength: {
15
15
  es: (values) => `no puede tener más de ${values.maxLength} elementos`,
16
- en: (values) => `must not have more than ${values.maxLength} elements`
16
+ en: (values) => `must not have more than ${values.maxLength} elements`,
17
17
  },
18
18
  badTypeMessage: {
19
19
  es: () => `debe ser un array`,
20
- en: () => `must be an array`
21
- }
20
+ en: () => `must be an array`,
21
+ },
22
22
  };
23
- function vArray(data, badTypeMessage, conds) {
23
+ function isNestedVerifier(verifier) {
24
+ return (verifier instanceof v_object_1.VObject ||
25
+ verifier instanceof v_object_1.VObjectNotNull ||
26
+ verifier instanceof VArray ||
27
+ verifier instanceof VArrayNotNull ||
28
+ verifier instanceof v_any_1.VAny);
29
+ }
30
+ function prefixArrayErrorKey(index, key) {
31
+ const baseKey = `[${index}]`;
32
+ return key ? `${baseKey}.${key}` : baseKey;
33
+ }
34
+ function vArray(data, badTypeMessage, verifier, conds) {
24
35
  if (!Array.isArray(data)) {
25
- throw new v_error_1.VerificationError([{
36
+ throw new v_error_1.VerificationError([
37
+ {
26
38
  key: "",
27
- message: (0, message_1.getMessage)(badTypeMessage, undefined, badTypeMessage)
28
- }]);
39
+ message: (0, message_1.getMessage)(conds === null || conds === void 0 ? void 0 : conds.badTypeMessage, undefined, badTypeMessage),
40
+ },
41
+ ]);
29
42
  }
30
43
  if (conds.minLength !== undefined && data.length < conds.minLength) {
31
- throw new v_error_1.VerificationError([{
44
+ throw new v_error_1.VerificationError([
45
+ {
32
46
  key: "",
33
- message: (0, message_1.getMessage)(conds === null || conds === void 0 ? void 0 : conds.minLength, { minLength: (0, message_1.getValue)(conds === null || conds === void 0 ? void 0 : conds.minLength) }, dMessages.minLength)
34
- }]);
47
+ message: (0, message_1.getMessage)(conds === null || conds === void 0 ? void 0 : conds.minLength, { minLength: (0, message_1.getValue)(conds === null || conds === void 0 ? void 0 : conds.minLength) }, dMessages.minLength),
48
+ },
49
+ ]);
35
50
  }
36
51
  if (conds.maxLength !== undefined && data.length > conds.maxLength) {
37
- throw new v_error_1.VerificationError([{
52
+ throw new v_error_1.VerificationError([
53
+ {
38
54
  key: "",
39
- message: (0, message_1.getMessage)(conds === null || conds === void 0 ? void 0 : conds.maxLength, { maxLength: (0, message_1.getValue)(conds === null || conds === void 0 ? void 0 : conds.maxLength) }, dMessages.maxLength)
40
- }]);
55
+ message: (0, message_1.getMessage)(conds === null || conds === void 0 ? void 0 : conds.maxLength, { maxLength: (0, message_1.getValue)(conds === null || conds === void 0 ? void 0 : conds.maxLength) }, dMessages.maxLength),
56
+ },
57
+ ]);
41
58
  }
42
- let errors = [];
43
- let value = [];
59
+ const errors = [];
60
+ const value = [];
44
61
  for (let i = 0; i < data.length; i++) {
45
62
  try {
46
- value.push(conds.verifier.check(data[i]));
63
+ value.push(verifier.check(data[i]));
47
64
  }
48
65
  catch (error) {
49
66
  if (error instanceof v_error_1.VerificationError) {
50
- errors.push(...error.errorsObj.map(v => {
51
- let cond = conds.verifier;
52
- if (cond instanceof v_object_1.VObject
53
- || cond instanceof v_object_1.VObjectNotNull
54
- || cond instanceof VArray
55
- || cond instanceof VArrayNotNull
56
- || cond instanceof v_any_1.VAny) {
57
- v.key = `[${i}]` + (v.key ? '.' + v.key : '');
58
- }
59
- else {
60
- v.key = `[${i}]`;
67
+ errors.push(...error.errorsObj.map((itemError) => {
68
+ if (isNestedVerifier(verifier)) {
69
+ return Object.assign(Object.assign({}, itemError), { key: prefixArrayErrorKey(i, itemError.key) });
61
70
  }
62
- return v;
71
+ return Object.assign(Object.assign({}, itemError), { key: `[${i}]` });
63
72
  }));
64
73
  }
65
74
  }
@@ -75,10 +84,11 @@ class VArray extends verifier_1.Verifier {
75
84
  if (validatedData === null) {
76
85
  return null;
77
86
  }
78
- return vArray(validatedData, this.badTypeMessage, this.cond);
87
+ return vArray(validatedData, this.badTypeMessage, this.verifier, this.cond);
79
88
  }
80
- constructor(cond) {
89
+ constructor(verifier, cond = {}) {
81
90
  super(cond);
91
+ this.verifier = verifier;
82
92
  this.cond = cond;
83
93
  this.badTypeMessage = dMessages.badTypeMessage;
84
94
  }
@@ -87,10 +97,11 @@ exports.VArray = VArray;
87
97
  class VArrayNotNull extends verifier_1.Verifier {
88
98
  check(data) {
89
99
  const validatedData = this.isRequired(data, true);
90
- return vArray(validatedData, this.badTypeMessage, this.cond);
100
+ return vArray(validatedData, this.badTypeMessage, this.verifier, this.cond);
91
101
  }
92
- constructor(cond) {
102
+ constructor(verifier, cond = {}) {
93
103
  super(cond);
104
+ this.verifier = verifier;
94
105
  this.cond = cond;
95
106
  this.badTypeMessage = dMessages.badTypeMessage;
96
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"v_array.js","sourceRoot":"","sources":["../../../../src/src/verifiers/array/v_array.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v_array.js","sourceRoot":"","sources":["../../../../src/src/verifiers/array/v_array.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { MessageType, VBadTypeMessage, VDefaultValue, VVCIsRequired } from "../../interfaces/types";
2
2
  import { Verifier } from "../verifier";
3
- interface VBooleanConditions extends VBadTypeMessage, VDefaultValue<boolean>, VVCIsRequired {
3
+ export interface VBooleanConditions extends VBadTypeMessage, VDefaultValue<boolean>, VVCIsRequired {
4
4
  strictMode?: MessageType<boolean, void>;
5
5
  }
6
6
  export declare class VBooleanNotNull extends Verifier<boolean> {
@@ -13,4 +13,3 @@ export declare class VBoolean extends Verifier<boolean | null> {
13
13
  check(data: any): boolean | null;
14
14
  constructor(cond?: VBooleanConditions | undefined);
15
15
  }
16
- export {};
@@ -4,48 +4,57 @@ exports.VBoolean = exports.VBooleanNotNull = void 0;
4
4
  const v_error_1 = require("../../error/v_error");
5
5
  const message_1 = require("../../languages/message");
6
6
  const verifier_1 = require("../verifier");
7
+ const TRUE_VALUES = [true, 1, "1"];
8
+ const FALSE_VALUES = [false, 0, "0"];
9
+ const BOOLEAN_STRINGS = ["true", "false"];
10
+ function throwBooleanError(conds, badTypeMessage) {
11
+ throw new v_error_1.VerificationError([
12
+ {
13
+ key: "",
14
+ message: (0, message_1.getMessage)(conds === null || conds === void 0 ? void 0 : conds.badTypeMessage, undefined, badTypeMessage),
15
+ },
16
+ ]);
17
+ }
7
18
  function vBoolean(data, badTypeMessage, conds) {
8
- // Strict mode: only accept boolean type
9
19
  if ((0, message_1.getValue)(conds === null || conds === void 0 ? void 0 : conds.strictMode) === true) {
10
- if (typeof data !== 'boolean') {
11
- throw new v_error_1.VerificationError([{
12
- key: "",
13
- message: (0, message_1.getMessage)((conds === null || conds === void 0 ? void 0 : conds.badTypeMessage) != undefined ? conds === null || conds === void 0 ? void 0 : conds.badTypeMessage : undefined, undefined, badTypeMessage)
14
- }]);
20
+ if (typeof data !== "boolean") {
21
+ throwBooleanError(conds, badTypeMessage);
15
22
  }
16
23
  return data;
17
24
  }
18
- // Non-strict mode: accept boolean, number (1/0), or string representations
19
- const acceptedValues = [true, false, 1, 0, '1', '0'];
20
- const acceptedStrings = ['true', 'false'];
21
- if (acceptedValues.includes(data)) {
22
- return data === true || data === 1 || data === '1';
25
+ if (TRUE_VALUES.includes(data)) {
26
+ return true;
23
27
  }
24
- if (typeof data === 'string' && acceptedStrings.includes(data.toLowerCase())) {
25
- return data.toLowerCase() === 'true';
28
+ if (FALSE_VALUES.includes(data)) {
29
+ return false;
26
30
  }
27
- throw new v_error_1.VerificationError([{
28
- key: "",
29
- message: (0, message_1.getMessage)((conds === null || conds === void 0 ? void 0 : conds.badTypeMessage) != undefined ? conds === null || conds === void 0 ? void 0 : conds.badTypeMessage : undefined, undefined, badTypeMessage)
30
- }]);
31
+ if (typeof data === "string") {
32
+ const normalized = data.toLowerCase();
33
+ if (BOOLEAN_STRINGS.includes(normalized)) {
34
+ return normalized === "true";
35
+ }
36
+ }
37
+ throwBooleanError(conds, badTypeMessage);
31
38
  }
32
39
  class VBooleanNotNull extends verifier_1.Verifier {
33
40
  check(data) {
34
- return vBoolean(this.isRequired(data, true), this.badTypeMessage, this.cond);
41
+ var _a;
42
+ return vBoolean(this.isRequired(data, true, (_a = this.cond) === null || _a === void 0 ? void 0 : _a.defaultValue), this.badTypeMessage, this.cond);
35
43
  }
36
44
  constructor(cond) {
37
45
  super(cond);
38
46
  this.cond = cond;
39
47
  this.badTypeMessage = {
40
48
  es: () => `debe ser un booleano`,
41
- en: () => `must be a boolean`
49
+ en: () => `must be a boolean`,
42
50
  };
43
51
  }
44
52
  }
45
53
  exports.VBooleanNotNull = VBooleanNotNull;
46
54
  class VBoolean extends verifier_1.Verifier {
47
55
  check(data) {
48
- let val = this.isRequired(data);
56
+ var _a;
57
+ let val = this.isRequired(data, undefined, (_a = this.cond) === null || _a === void 0 ? void 0 : _a.defaultValue);
49
58
  if (val === null || val === undefined) {
50
59
  return null;
51
60
  }
@@ -57,7 +66,7 @@ class VBoolean extends verifier_1.Verifier {
57
66
  this.cond = cond;
58
67
  this.badTypeMessage = {
59
68
  es: () => `debe ser un booleano`,
60
- en: () => `must be a boolean`
69
+ en: () => `must be a boolean`,
61
70
  };
62
71
  }
63
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"v_boolean.js","sourceRoot":"","sources":["../../../../src/src/verifiers/boolean/v_boolean.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v_boolean.js","sourceRoot":"","sources":["../../../../src/src/verifiers/boolean/v_boolean.ts"],"names":[],"mappings":"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"}