valleyed 4.0.1 → 4.0.2-patched

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 (95) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/lib/api/arrays.d.ts +8 -0
  3. package/lib/api/arrays.js +46 -0
  4. package/lib/api/arrays.js.map +1 -0
  5. package/lib/api/base.d.ts +30 -0
  6. package/lib/api/base.js +114 -0
  7. package/lib/api/base.js.map +1 -0
  8. package/lib/api/booleans.d.ts +4 -0
  9. package/lib/api/booleans.js +13 -0
  10. package/lib/api/booleans.js.map +1 -0
  11. package/lib/api/core.d.ts +19 -0
  12. package/lib/api/core.js +52 -0
  13. package/lib/api/core.js.map +1 -0
  14. package/lib/api/files.d.ts +8 -0
  15. package/lib/api/files.js +22 -0
  16. package/lib/api/files.js.map +1 -0
  17. package/lib/api/index.d.ts +35 -0
  18. package/lib/api/index.js +41 -0
  19. package/lib/api/index.js.map +1 -0
  20. package/lib/api/junctions.d.ts +8 -0
  21. package/lib/api/junctions.js +41 -0
  22. package/lib/api/junctions.js.map +1 -0
  23. package/lib/api/numbers.d.ts +9 -0
  24. package/lib/api/numbers.js +28 -0
  25. package/lib/api/numbers.js.map +1 -0
  26. package/lib/api/objects.d.ts +12 -0
  27. package/lib/api/objects.js +30 -0
  28. package/lib/api/objects.js.map +1 -0
  29. package/lib/api/records.d.ts +7 -0
  30. package/lib/api/records.js +47 -0
  31. package/lib/api/records.js.map +1 -0
  32. package/lib/api/strings.d.ts +15 -0
  33. package/lib/api/strings.js +47 -0
  34. package/lib/api/strings.js.map +1 -0
  35. package/lib/api/times.d.ts +11 -0
  36. package/lib/api/times.js +28 -0
  37. package/lib/api/times.js.map +1 -0
  38. package/lib/api/tuples.d.ts +13 -0
  39. package/lib/api/tuples.js +25 -0
  40. package/lib/api/tuples.js.map +1 -0
  41. package/lib/index.d.ts +5 -0
  42. package/lib/index.js.map +1 -0
  43. package/lib/rules/arrays.d.ts +5 -0
  44. package/lib/rules/arrays.js +51 -0
  45. package/lib/rules/arrays.js.map +1 -0
  46. package/lib/rules/custom.d.ts +1 -0
  47. package/lib/rules/custom.js +9 -0
  48. package/lib/rules/custom.js.map +1 -0
  49. package/lib/rules/equality.d.ts +3 -0
  50. package/lib/rules/equality.js +26 -0
  51. package/lib/rules/equality.js.map +1 -0
  52. package/lib/rules/files.d.ts +12 -0
  53. package/lib/rules/files.js +37 -0
  54. package/lib/rules/files.js.map +1 -0
  55. package/lib/rules/index.d.ts +10 -0
  56. package/lib/rules/index.js +27 -0
  57. package/lib/rules/index.js.map +1 -0
  58. package/lib/rules/mimes.json +3158 -0
  59. package/lib/rules/numbers.d.ts +5 -0
  60. package/lib/rules/numbers.js +51 -0
  61. package/lib/rules/numbers.js.map +1 -0
  62. package/lib/rules/records.d.ts +2 -0
  63. package/lib/rules/records.js +26 -0
  64. package/lib/rules/records.js.map +1 -0
  65. package/lib/rules/strings.d.ts +6 -0
  66. package/lib/rules/strings.js +63 -0
  67. package/lib/rules/strings.js.map +1 -0
  68. package/lib/rules/times.d.ts +4 -0
  69. package/lib/rules/times.js +41 -0
  70. package/lib/rules/times.js.map +1 -0
  71. package/lib/rules/tuples.d.ts +7 -0
  72. package/lib/rules/tuples.js +18 -0
  73. package/lib/rules/tuples.js.map +1 -0
  74. package/lib/rules/types.d.ts +4 -0
  75. package/lib/rules/types.js +30 -0
  76. package/lib/rules/types.js.map +1 -0
  77. package/lib/utils/differ.d.ts +6 -0
  78. package/lib/utils/differ.js +115 -0
  79. package/lib/utils/differ.js.map +1 -0
  80. package/lib/utils/functions/index.d.ts +20 -0
  81. package/lib/utils/functions/index.js +108 -0
  82. package/lib/utils/functions/index.js.map +1 -0
  83. package/lib/utils/functions/urls/normalize.d.ts +1 -0
  84. package/lib/utils/functions/urls/normalize.js +84 -0
  85. package/lib/utils/functions/urls/normalize.js.map +1 -0
  86. package/lib/utils/regexes.d.ts +2 -0
  87. package/lib/utils/regexes.js +10 -0
  88. package/lib/utils/regexes.js.map +1 -0
  89. package/lib/utils/rules.d.ts +24 -0
  90. package/lib/utils/rules.js +33 -0
  91. package/lib/utils/rules.js.map +1 -0
  92. package/lib/validators/index.d.ts +15 -0
  93. package/lib/validators/index.js +28 -0
  94. package/lib/validators/index.js.map +1 -0
  95. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [4.0.2-patched](https://github.com/kevinand11/valleyed/compare/v4.0.2...v4.0.2-patched) (2023-02-14)
6
+
7
+ ### [4.0.2](https://github.com/kevinand11/valleyed/compare/v4.0.1...v4.0.2) (2023-02-14)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * skipping lib folder when publishing ([163fdd1](https://github.com/kevinand11/valleyed/commit/163fdd19a74e55313e88a86d040d69a6a1c9b72d))
13
+
5
14
  ### [4.0.1](https://github.com/kevinand11/valleyed/compare/v0.0.0-alpha.0...v4.0.1) (2023-02-14)
6
15
 
7
16
 
@@ -0,0 +1,8 @@
1
+ import { VCore } from './core';
2
+ export declare class VArray<I, O> extends VCore<I[], O[]> {
3
+ constructor(comparer: VCore<I, O>, err?: string);
4
+ has(length: number, err?: string): this;
5
+ min(length: number, err?: string): this;
6
+ max(length: number, err?: string): this;
7
+ set(keyFn?: (v: I) => any): this;
8
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VArray = void 0;
4
+ const rules_1 = require("../rules");
5
+ const core_1 = require("./core");
6
+ const rules_2 = require("../utils/rules");
7
+ class VArray extends core_1.VCore {
8
+ constructor(comparer, err) {
9
+ super();
10
+ this.addTyping((0, rules_1.isArray)(err));
11
+ this.addRule((0, rules_2.makeRule)((value) => {
12
+ const mapped = (value !== null && value !== void 0 ? value : []).reduce((acc, cur) => {
13
+ const comp = comparer.parse(cur);
14
+ acc[0].push(comp.value);
15
+ acc[1].push(comp.valid);
16
+ return acc;
17
+ }, [[], []]);
18
+ return (0, rules_1.isArrayOf)((_, i) => mapped[1][i], err)(mapped[0]);
19
+ }));
20
+ }
21
+ has(length, err) {
22
+ return this.addRule((0, rules_1.hasLengthOf)(length, err));
23
+ }
24
+ min(length, err) {
25
+ return this.addRule((0, rules_1.hasMinOf)(length, err));
26
+ }
27
+ max(length, err) {
28
+ return this.addRule((0, rules_1.hasMaxOf)(length, err));
29
+ }
30
+ set(keyFn = (v) => v) {
31
+ return this.addSanitizer((val) => {
32
+ const finalArr = [];
33
+ const obj = {};
34
+ val.forEach((v) => {
35
+ const key = keyFn(v);
36
+ if (obj[key])
37
+ return;
38
+ obj[key] = true;
39
+ finalArr.push(v);
40
+ });
41
+ return finalArr;
42
+ });
43
+ }
44
+ }
45
+ exports.VArray = VArray;
46
+ //# sourceMappingURL=arrays.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrays.js","sourceRoot":"","sources":["../../src/api/arrays.ts"],"names":[],"mappings":";;;AAAA,oCAA8E;AAC9E,iCAA8B;AAC9B,0CAAyC;AAEzC,MAAa,MAAa,SAAQ,YAAe;IAChD,YAAa,QAAqB,EAAE,GAAY;QAC/C,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,SAAS,CAAC,IAAA,eAAO,EAAC,GAAG,CAAC,CAAC,CAAA;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAA,gBAAQ,EAAC,CAAC,KAAK,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAChC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACvB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACvB,OAAO,GAAG,CAAA;YACX,CAAC,EAAE,CAAC,EAAW,EAAE,EAAe,CAAU,CAAC,CAAA;YAC3C,OAAO,IAAA,iBAAS,EAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5D,CAAC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,GAAG,CAAE,MAAc,EAAE,GAAY;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAA,mBAAW,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,GAAG,CAAE,MAAc,EAAE,GAAY;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAA,gBAAQ,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,GAAG,CAAE,MAAc,EAAE,GAAY;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAA,gBAAQ,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,GAAG,CAAE,QAAuB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,MAAM,QAAQ,GAAQ,EAAE,CAAA;YACxB,MAAM,GAAG,GAAyB,EAAE,CAAA;YACpC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBACpB,IAAI,GAAG,CAAC,GAAG,CAAC;oBAAE,OAAM;gBACpB,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;gBACf,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC,CAAC,CAAA;YACF,OAAO,QAAQ,CAAA;QAChB,CAAC,CAAC,CAAA;IACH,CAAC;CACD;AAxCD,wBAwCC"}
@@ -0,0 +1,30 @@
1
+ import { Rule, Sanitizer, Transformer } from '../utils/rules';
2
+ export declare class VBase<I, O = I> {
3
+ #private;
4
+ protected _options: {
5
+ original: boolean;
6
+ required: boolean;
7
+ nullable: boolean;
8
+ default: I | (() => I);
9
+ };
10
+ get forced(): boolean;
11
+ static createType<C extends VBase<any>, A extends Array<any>>(c: new (...args: A) => C): (...args: A) => C;
12
+ static createForcedType<C extends VBase<any>, I, T extends any[] = any[]>(c: new (...args: T) => C, conv: (arg: unknown) => I): (...args: T) => C;
13
+ parse(input: unknown): {
14
+ errors: string[];
15
+ valid: false;
16
+ value: I;
17
+ } | {
18
+ errors: string[];
19
+ valid: true;
20
+ value: O;
21
+ };
22
+ addTyping(rule: Rule<I>): this;
23
+ addRule(rule: Rule<I>): this;
24
+ addSanitizer(sanitizer: Sanitizer<I>): this;
25
+ protected _transform(transformer: Transformer<I, O>): this;
26
+ protected _setOption<K extends keyof typeof this._options>(key: K, value: typeof this._options[K]): this;
27
+ protected clone(c: VBase<any>): this;
28
+ }
29
+ export type ExtractI<T extends VBase<any>> = T extends VBase<infer I, any> ? I : never;
30
+ export type ExtractO<T extends VBase<any>> = T extends VBase<any, infer O> ? O : never;
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
13
+ var _VBase_instances, _VBase_sanitizers, _VBase_typings, _VBase_rules, _VBase_forced, _VBase_setForced, _VBase_transform, _VBase_sanitize;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.VBase = void 0;
16
+ const rules_1 = require("../utils/rules");
17
+ class VBase {
18
+ constructor() {
19
+ _VBase_instances.add(this);
20
+ this._options = {
21
+ original: false,
22
+ required: true,
23
+ nullable: false,
24
+ default: undefined
25
+ };
26
+ _VBase_sanitizers.set(this, []);
27
+ _VBase_typings.set(this, []);
28
+ _VBase_rules.set(this, []);
29
+ _VBase_forced.set(this, false);
30
+ _VBase_transform.set(this, (v) => v);
31
+ }
32
+ get forced() {
33
+ return __classPrivateFieldGet(this, _VBase_forced, "f");
34
+ }
35
+ static createType(c) {
36
+ return ((...args) => new c(...args));
37
+ }
38
+ static createForcedType(c, conv) {
39
+ return ((...args) => {
40
+ var _a;
41
+ return __classPrivateFieldGet((_a = new c(...args)), _VBase_instances, "m", _VBase_setForced).call(_a)
42
+ .addSanitizer((value) => conv(value));
43
+ });
44
+ }
45
+ parse(input) {
46
+ let value = input;
47
+ if (__classPrivateFieldGet(this, _VBase_forced, "f") && __classPrivateFieldGet(this, _VBase_sanitizers, "f").length > 0)
48
+ value = __classPrivateFieldGet(this, _VBase_sanitizers, "f")[0](value);
49
+ const typeCheck = (0, rules_1.check)(value, __classPrivateFieldGet(this, _VBase_typings, "f"), this._options);
50
+ if (!typeCheck.valid)
51
+ return {
52
+ errors: typeCheck.errors,
53
+ valid: typeCheck.valid,
54
+ value: typeCheck.value
55
+ };
56
+ const sanitizedValue = __classPrivateFieldGet(this, _VBase_instances, "m", _VBase_sanitize).call(this, value);
57
+ const v = (0, rules_1.check)(sanitizedValue, __classPrivateFieldGet(this, _VBase_rules, "f"), this._options);
58
+ if (!v.valid)
59
+ return {
60
+ errors: v.errors,
61
+ valid: v.valid,
62
+ value: v.value
63
+ };
64
+ const retValue = this._options.original ? value : __classPrivateFieldGet(this, _VBase_transform, "f").call(this, v.value);
65
+ return {
66
+ errors: v.errors,
67
+ valid: v.valid,
68
+ value: retValue
69
+ };
70
+ }
71
+ addTyping(rule) {
72
+ __classPrivateFieldGet(this, _VBase_typings, "f").push(rule);
73
+ return this;
74
+ }
75
+ addRule(rule) {
76
+ __classPrivateFieldGet(this, _VBase_rules, "f").push(rule);
77
+ return this;
78
+ }
79
+ addSanitizer(sanitizer) {
80
+ __classPrivateFieldGet(this, _VBase_sanitizers, "f").push(sanitizer);
81
+ return this;
82
+ }
83
+ _transform(transformer) {
84
+ __classPrivateFieldSet(this, _VBase_transform, transformer, "f");
85
+ return this;
86
+ }
87
+ _setOption(key, value) {
88
+ this._options[key] = value;
89
+ return this;
90
+ }
91
+ clone(c) {
92
+ this._options = c._options;
93
+ __classPrivateFieldSet(this, _VBase_forced, __classPrivateFieldGet(c, _VBase_forced, "f"), "f");
94
+ __classPrivateFieldSet(this, _VBase_rules, [...__classPrivateFieldGet(c, _VBase_rules, "f")], "f");
95
+ __classPrivateFieldSet(this, _VBase_sanitizers, [...__classPrivateFieldGet(c, _VBase_sanitizers, "f")], "f");
96
+ __classPrivateFieldSet(this, _VBase_transform, __classPrivateFieldGet(c, _VBase_transform, "f"), "f");
97
+ return this;
98
+ }
99
+ }
100
+ exports.VBase = VBase;
101
+ _VBase_sanitizers = new WeakMap(), _VBase_typings = new WeakMap(), _VBase_rules = new WeakMap(), _VBase_forced = new WeakMap(), _VBase_transform = new WeakMap(), _VBase_instances = new WeakSet(), _VBase_setForced = function _VBase_setForced() {
102
+ __classPrivateFieldSet(this, _VBase_forced, true, "f");
103
+ return this;
104
+ }, _VBase_sanitize = function _VBase_sanitize(value) {
105
+ for (const sanitizer of __classPrivateFieldGet(this, _VBase_sanitizers, "f"))
106
+ value = sanitizer(value);
107
+ if (value !== undefined)
108
+ return value;
109
+ const def = this._options.default;
110
+ if (def !== undefined)
111
+ return typeof def === 'function' ? def() : def;
112
+ return undefined;
113
+ };
114
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/api/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { VCore } from './core';
2
+ export declare class VBoolean extends VCore<boolean> {
3
+ constructor(err?: string);
4
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VBoolean = void 0;
4
+ const core_1 = require("./core");
5
+ const rules_1 = require("../rules");
6
+ class VBoolean extends core_1.VCore {
7
+ constructor(err) {
8
+ super();
9
+ this.addTyping((0, rules_1.isBoolean)(err));
10
+ }
11
+ }
12
+ exports.VBoolean = VBoolean;
13
+ //# sourceMappingURL=booleans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"booleans.js","sourceRoot":"","sources":["../../src/api/booleans.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAC9B,oCAAoC;AAEpC,MAAa,QAAS,SAAQ,YAAc;IAC3C,YAAa,GAAY;QACxB,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,SAAS,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,CAAC,CAAA;IAC/B,CAAC;CACD;AALD,4BAKC"}
@@ -0,0 +1,19 @@
1
+ import { ExtractI, ExtractO, VBase } from './base';
2
+ import { Transformer } from '../utils/rules';
3
+ export declare class VCore<I, O = I> extends VBase<I, O> {
4
+ constructor();
5
+ original(): this;
6
+ optional(): VPartial<this, undefined>;
7
+ nullable(): VPartial<this, null>;
8
+ nullish(): VPartial<VPartial<this, undefined>, null>;
9
+ default(def: I | (() => I)): this;
10
+ custom(fn: (v: I) => boolean, err?: string): this;
11
+ eq(compare: I, err?: string): this;
12
+ eqD(compare: I, comparer: (val: I, compare: I) => boolean, err?: string): this;
13
+ in(array: I[], comparer: (val: I, curr: I) => boolean, err?: string): this;
14
+ transform<T>(transformer: Transformer<I, T>): VCore<I, T>;
15
+ }
16
+ declare class VPartial<T extends VCore<any>, P> extends VCore<P | ExtractI<T>, P | ExtractO<T>> {
17
+ constructor(base: T);
18
+ }
19
+ export {};
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VCore = void 0;
4
+ const rules_1 = require("../rules");
5
+ const base_1 = require("./base");
6
+ class VCore extends base_1.VBase {
7
+ constructor() {
8
+ super();
9
+ }
10
+ original() {
11
+ return this._setOption('original', true);
12
+ }
13
+ optional() {
14
+ return new VPartial(this)
15
+ ._setOption('required', false);
16
+ }
17
+ nullable() {
18
+ return new VPartial(this)
19
+ ._setOption('nullable', true);
20
+ }
21
+ nullish() {
22
+ return this.optional().nullable();
23
+ }
24
+ default(def) {
25
+ return this._setOption('default', def);
26
+ }
27
+ custom(fn, err) {
28
+ return this.addRule((0, rules_1.isCustom)(fn, err));
29
+ }
30
+ eq(compare, err) {
31
+ return this.addRule((0, rules_1.isShallowEqualTo)(compare, err));
32
+ }
33
+ eqD(compare, comparer, err) {
34
+ return this.addRule((0, rules_1.isDeepEqualTo)(compare, comparer, err));
35
+ }
36
+ in(array, comparer, err) {
37
+ return this.addRule((0, rules_1.arrayContains)(array, comparer, err));
38
+ }
39
+ transform(transformer) {
40
+ return new VCore()
41
+ .clone(this)
42
+ ._transform(transformer);
43
+ }
44
+ }
45
+ exports.VCore = VCore;
46
+ class VPartial extends VCore {
47
+ constructor(base) {
48
+ super();
49
+ this.clone(base);
50
+ }
51
+ }
52
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/api/core.ts"],"names":[],"mappings":";;;AAAA,oCAAmF;AACnF,iCAAkD;AAGlD,MAAa,KAAgB,SAAQ,YAAW;IAC/C;QACC,KAAK,EAAE,CAAA;IACR,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IACzC,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,QAAQ,CAAkB,IAAI,CAAC;aACxC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAChC,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,QAAQ,CAAa,IAAI,CAAC;aACnC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAA;IAClC,CAAC;IAED,OAAO,CAAE,GAAkB;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IACvC,CAAC;IAED,MAAM,CAAE,EAAqB,EAAE,GAAY;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAA,gBAAQ,EAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;IACvC,CAAC;IAED,EAAE,CAAE,OAAU,EAAE,GAAY;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAA,wBAAgB,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,GAAG,CAAE,OAAU,EAAE,QAAyC,EAAE,GAAY;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAA,qBAAa,EAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,EAAE,CAAE,KAAU,EAAE,QAAsC,EAAE,GAAY;QACnE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAA,qBAAa,EAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,SAAS,CAAK,WAA8B;QAC3C,OAAO,IAAI,KAAK,EAAQ;aACtB,KAAK,CAAC,IAAI,CAAC;aACX,UAAU,CAAC,WAAW,CAAC,CAAA;IAC1B,CAAC;CACD;AAhDD,sBAgDC;AAED,MAAM,QAAkC,SAAQ,KAAuC;IACtF,YAAa,IAAO;QACnB,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACjB,CAAC;CACD"}
@@ -0,0 +1,8 @@
1
+ import { File } from '../rules';
2
+ import { VCore } from './core';
3
+ export declare class VFile extends VCore<File> {
4
+ constructor(err?: string);
5
+ image(err?: string): this;
6
+ audio(err?: string): this;
7
+ video(err?: string): this;
8
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VFile = void 0;
4
+ const rules_1 = require("../rules");
5
+ const core_1 = require("./core");
6
+ class VFile extends core_1.VCore {
7
+ constructor(err) {
8
+ super();
9
+ this.addTyping((0, rules_1.isFile)(err));
10
+ }
11
+ image(err) {
12
+ return this.addRule((0, rules_1.isImage)(err));
13
+ }
14
+ audio(err) {
15
+ return this.addRule((0, rules_1.isAudio)(err));
16
+ }
17
+ video(err) {
18
+ return this.addRule((0, rules_1.isVideo)(err));
19
+ }
20
+ }
21
+ exports.VFile = VFile;
22
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/api/files.ts"],"names":[],"mappings":";;;AAAA,oCAAkE;AAClE,iCAA8B;AAE9B,MAAa,KAAM,SAAQ,YAAW;IACrC,YAAa,GAAY;QACxB,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,SAAS,CAAC,IAAA,cAAM,EAAC,GAAG,CAAC,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAE,GAAY;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAA,eAAO,EAAC,GAAG,CAAC,CAAC,CAAA;IAClC,CAAC;IAED,KAAK,CAAE,GAAY;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAA,eAAO,EAAC,GAAG,CAAC,CAAC,CAAA;IAClC,CAAC;IAED,KAAK,CAAE,GAAY;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAA,eAAO,EAAC,GAAG,CAAC,CAAC,CAAA;IAClC,CAAC;CACD;AAjBD,sBAiBC"}
@@ -0,0 +1,35 @@
1
+ import { VArray } from './arrays';
2
+ import { VBoolean } from './booleans';
3
+ import { VCore } from './core';
4
+ import { VFile } from './files';
5
+ import { VAnd, VOr } from './junctions';
6
+ import { VNumber } from './numbers';
7
+ import { VObject } from './objects';
8
+ import { VMap, VRecord } from './records';
9
+ import { VString } from './strings';
10
+ import { VTime } from './times';
11
+ import { VTuple } from './tuples';
12
+ export declare const v: {
13
+ or: <T extends VCore<any, any>[]>(options: T, err?: string | undefined) => VOr<T>;
14
+ and: <I, O>(options: VCore<I, O>[], err?: string | undefined) => VAnd<I, O>;
15
+ string: (err?: string | undefined) => VString;
16
+ number: (err?: string | undefined) => VNumber;
17
+ boolean: (err?: string | undefined) => VBoolean;
18
+ time: <T_1 extends import("./times").Timeable = import("./times").Timeable>(err?: string | undefined) => VTime<T_1>;
19
+ file: (err?: string | undefined) => VFile;
20
+ array: <I_1, O_1>(comparer: VCore<I_1, O_1>, err?: string | undefined) => VArray<I_1, O_1>;
21
+ tuple: <T_2 extends readonly VCore<any, any>[]>(schema: readonly [...T_2], err?: string | undefined) => VTuple<T_2>;
22
+ object: <T_3 extends Record<string, VCore<any, any>>>(schema: T_3, trim?: boolean | undefined, err?: string | undefined) => VObject<T_3>;
23
+ record: <VI, VO>(vCom: VCore<VI, VO>, err?: string | undefined) => VRecord<VI, VO>;
24
+ map: <KI, VI_1, KO, VO_1>(kCom: VCore<KI, KO>, vCom: VCore<VI_1, VO_1>, err?: string | undefined) => VMap<KI, VI_1, KO, VO_1>;
25
+ null: (err?: string) => VCore<null, null>;
26
+ undefined: (err?: string) => VCore<undefined, undefined>;
27
+ instanceof: <T_4>(classDef: new () => T_4, err?: string) => VCore<T_4, T_4>;
28
+ any: () => VCore<any, any>;
29
+ force: {
30
+ string: (err?: string | undefined) => VString;
31
+ number: (err?: string | undefined) => VNumber;
32
+ boolean: (err?: string | undefined) => VBoolean;
33
+ time: (err?: string | undefined) => VTime<Date>;
34
+ };
35
+ };
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.v = void 0;
4
+ const rules_1 = require("../rules");
5
+ const arrays_1 = require("./arrays");
6
+ const base_1 = require("./base");
7
+ const booleans_1 = require("./booleans");
8
+ const core_1 = require("./core");
9
+ const files_1 = require("./files");
10
+ const junctions_1 = require("./junctions");
11
+ const numbers_1 = require("./numbers");
12
+ const objects_1 = require("./objects");
13
+ const records_1 = require("./records");
14
+ const strings_1 = require("./strings");
15
+ const times_1 = require("./times");
16
+ const tuples_1 = require("./tuples");
17
+ exports.v = {
18
+ or: base_1.VBase.createType(junctions_1.VOr),
19
+ and: base_1.VBase.createType(junctions_1.VAnd),
20
+ string: base_1.VBase.createType(strings_1.VString),
21
+ number: base_1.VBase.createType(numbers_1.VNumber),
22
+ boolean: base_1.VBase.createType(booleans_1.VBoolean),
23
+ time: base_1.VBase.createType(times_1.VTime),
24
+ file: base_1.VBase.createType(files_1.VFile),
25
+ array: base_1.VBase.createType(arrays_1.VArray),
26
+ tuple: base_1.VBase.createType(tuples_1.VTuple),
27
+ object: base_1.VBase.createType(objects_1.VObject),
28
+ record: base_1.VBase.createType(records_1.VRecord),
29
+ map: base_1.VBase.createType(records_1.VMap),
30
+ null: (err) => new core_1.VCore().addRule((val) => (0, rules_1.isNull)(err)(val)),
31
+ undefined: (err) => new core_1.VCore().addRule((val) => (0, rules_1.isUndefined)(err)(val)),
32
+ instanceof: (classDef, err) => new core_1.VCore().addRule((val) => (0, rules_1.isInstanceOf)(classDef, err)(val)),
33
+ any: () => new core_1.VCore(),
34
+ force: {
35
+ string: base_1.VBase.createForcedType(strings_1.VString, (v) => String(v)),
36
+ number: base_1.VBase.createForcedType(numbers_1.VNumber, (v) => Number(v)),
37
+ boolean: base_1.VBase.createForcedType(booleans_1.VBoolean, (v) => Boolean(v)),
38
+ time: base_1.VBase.createForcedType(times_1.VTime, (v) => new Date(v))
39
+ }
40
+ };
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;AAAA,oCAA4D;AAC5D,qCAAiC;AACjC,iCAA8B;AAC9B,yCAAqC;AACrC,iCAA8B;AAC9B,mCAA+B;AAC/B,2CAAuC;AACvC,uCAAmC;AACnC,uCAAmC;AACnC,uCAAyC;AACzC,uCAAmC;AACnC,mCAA+B;AAC/B,qCAAiC;AAEpB,QAAA,CAAC,GAAG;IAChB,EAAE,EAAE,YAAK,CAAC,UAAU,CAAC,eAAG,CAAC;IACzB,GAAG,EAAE,YAAK,CAAC,UAAU,CAAC,gBAAI,CAAC;IAC3B,MAAM,EAAE,YAAK,CAAC,UAAU,CAAC,iBAAO,CAAC;IACjC,MAAM,EAAE,YAAK,CAAC,UAAU,CAAC,iBAAO,CAAC;IACjC,OAAO,EAAE,YAAK,CAAC,UAAU,CAAC,mBAAQ,CAAC;IACnC,IAAI,EAAE,YAAK,CAAC,UAAU,CAAC,aAAK,CAAC;IAC7B,IAAI,EAAE,YAAK,CAAC,UAAU,CAAC,aAAK,CAAC;IAC7B,KAAK,EAAE,YAAK,CAAC,UAAU,CAAC,eAAM,CAAC;IAC/B,KAAK,EAAE,YAAK,CAAC,UAAU,CAAC,eAAM,CAAC;IAC/B,MAAM,EAAE,YAAK,CAAC,UAAU,CAAC,iBAAO,CAAC;IACjC,MAAM,EAAE,YAAK,CAAC,UAAU,CAAC,iBAAO,CAAC;IACjC,GAAG,EAAE,YAAK,CAAC,UAAU,CAAC,cAAI,CAAC;IAC3B,IAAI,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,IAAI,YAAK,EAAQ,CAAC,OAAO,CAAC,CAAC,GAAS,EAAE,EAAE,CAAC,IAAA,cAAM,EAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAClF,SAAS,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,IAAI,YAAK,EAAa,CAAC,OAAO,CAAC,CAAC,GAAc,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACtG,UAAU,EAAE,CAAI,QAAqB,EAAE,GAAY,EAAE,EAAE,CAAC,IAAI,YAAK,EAAK,CAAC,OAAO,CAAC,CAAC,GAAM,EAAE,EAAE,CAAC,IAAA,oBAAY,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5H,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,YAAK,EAAO;IAC3B,KAAK,EAAE;QACN,MAAM,EAAE,YAAK,CAAC,gBAAgB,CAAyD,iBAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjH,MAAM,EAAE,YAAK,CAAC,gBAAgB,CAAyD,iBAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjH,OAAO,EAAE,YAAK,CAAC,gBAAgB,CAA4D,mBAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACvH,IAAI,EAAE,YAAK,CAAC,gBAAgB,CAAyD,aAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAQ,CAAC,CAAC;KACtH;CACD,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { ExtractI, ExtractO } from './base';
2
+ import { VCore } from './core';
3
+ export declare class VOr<T extends VCore<any, any>[]> extends VCore<ExtractI<T[number]>, ExtractO<T[number]>> {
4
+ constructor(options: T, err?: string);
5
+ }
6
+ export declare class VAnd<I, O> extends VCore<I, O> {
7
+ constructor(options: VCore<I, O>[], err?: string);
8
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VAnd = exports.VOr = void 0;
4
+ const rules_1 = require("../utils/rules");
5
+ const core_1 = require("./core");
6
+ class VOr extends core_1.VCore {
7
+ constructor(options, err = 'doesnt match any of the schema') {
8
+ super();
9
+ this.addRule((0, rules_1.makeRule)((value) => {
10
+ if (options.length === 0)
11
+ return (0, rules_1.isValid)(value);
12
+ for (const opt of options) {
13
+ const valid = opt.parse(value);
14
+ if (valid.valid)
15
+ return (0, rules_1.isValid)(value);
16
+ }
17
+ return (0, rules_1.isInvalid)([err], value);
18
+ }));
19
+ }
20
+ }
21
+ exports.VOr = VOr;
22
+ class VAnd extends core_1.VCore {
23
+ constructor(options, err) {
24
+ super();
25
+ this.addRule((0, rules_1.makeRule)((value) => {
26
+ let v = value;
27
+ if (options.length === 0)
28
+ return (0, rules_1.isValid)(v);
29
+ for (const opt of options) {
30
+ const valid = opt.parse(v);
31
+ if (valid.valid)
32
+ v = valid.value;
33
+ else
34
+ return (0, rules_1.isInvalid)(err ? [err] : valid.errors, v);
35
+ }
36
+ return (0, rules_1.isValid)(v);
37
+ }));
38
+ }
39
+ }
40
+ exports.VAnd = VAnd;
41
+ //# sourceMappingURL=junctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"junctions.js","sourceRoot":"","sources":["../../src/api/junctions.ts"],"names":[],"mappings":";;;AAAA,0CAA6D;AAE7D,iCAA8B;AAE9B,MAAa,GAAiC,SAAQ,YAA+C;IACpG,YAAa,OAAU,EAAE,GAAG,GAAG,gCAAgC;QAC9D,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,CAAC,IAAA,gBAAQ,EAAC,CAAC,KAAK,EAAE,EAAE;YAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAA,eAAO,EAAC,KAAK,CAAC,CAAA;YAC/C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;gBAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBAC9B,IAAI,KAAK,CAAC,KAAK;oBAAE,OAAO,IAAA,eAAO,EAAC,KAAK,CAAC,CAAA;aACtC;YACD,OAAO,IAAA,iBAAS,EAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAC,CAAA;IACJ,CAAC;CACD;AAZD,kBAYC;AAED,MAAa,IAAW,SAAQ,YAAW;IAC1C,YAAa,OAAsB,EAAE,GAAY;QAChD,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,CAAC,IAAA,gBAAQ,EAAC,CAAC,KAAK,EAAE,EAAE;YAC/B,IAAI,CAAC,GAAG,KAAY,CAAA;YACpB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAA,eAAO,EAAC,CAAC,CAAC,CAAA;YAC3C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;gBAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC1B,IAAI,KAAK,CAAC,KAAK;oBAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAA;;oBAC3B,OAAO,IAAA,iBAAS,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;aACpD;YACD,OAAO,IAAA,eAAO,EAAC,CAAC,CAAC,CAAA;QAClB,CAAC,CAAC,CAAC,CAAA;IACJ,CAAC;CACD;AAdD,oBAcC"}
@@ -0,0 +1,9 @@
1
+ import { VCore } from './core';
2
+ export declare class VNumber extends VCore<number> {
3
+ constructor(err?: string);
4
+ gt(value: number, err?: string): this;
5
+ gte(value: number, err?: string): this;
6
+ lt(value: number, err?: string): this;
7
+ lte(value: number, err?: string): this;
8
+ round(dp: number): this;
9
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VNumber = void 0;
4
+ const rules_1 = require("../rules");
5
+ const core_1 = require("./core");
6
+ class VNumber extends core_1.VCore {
7
+ constructor(err) {
8
+ super();
9
+ this.addTyping((0, rules_1.isNumber)(err));
10
+ }
11
+ gt(value, err) {
12
+ return this.addRule((0, rules_1.isMoreThan)(value, err));
13
+ }
14
+ gte(value, err) {
15
+ return this.addRule((0, rules_1.isMoreThanOrEqualTo)(value, err));
16
+ }
17
+ lt(value, err) {
18
+ return this.addRule((0, rules_1.isLessThan)(value, err));
19
+ }
20
+ lte(value, err) {
21
+ return this.addRule((0, rules_1.isLessThanOrEqualTo)(value, err));
22
+ }
23
+ round(dp) {
24
+ return this.addSanitizer((val) => Number(val.toFixed(dp)));
25
+ }
26
+ }
27
+ exports.VNumber = VNumber;
28
+ //# sourceMappingURL=numbers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numbers.js","sourceRoot":"","sources":["../../src/api/numbers.ts"],"names":[],"mappings":";;;AAAA,oCAAqG;AACrG,iCAA8B;AAE9B,MAAa,OAAQ,SAAQ,YAAa;IACzC,YAAa,GAAY;QACxB,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,SAAS,CAAC,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC,CAAA;IAC9B,CAAC;IAED,EAAE,CAAE,KAAa,EAAE,GAAY;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAA,kBAAU,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,GAAG,CAAE,KAAa,EAAE,GAAY;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAA,2BAAmB,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;IACrD,CAAC;IAED,EAAE,CAAE,KAAa,EAAE,GAAY;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAA,kBAAU,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,GAAG,CAAE,KAAa,EAAE,GAAY;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAA,2BAAmB,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;IACrD,CAAC;IAED,KAAK,CAAE,EAAU;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3D,CAAC;CACD;AAzBD,0BAyBC"}
@@ -0,0 +1,12 @@
1
+ import { ExtractI, ExtractO } from './base';
2
+ import { VCore } from './core';
3
+ type G1<T extends Record<string, VCore<any>>> = {
4
+ [K in keyof T]: ExtractI<T[K]>;
5
+ };
6
+ type G2<T extends Record<string, VCore<any>>> = {
7
+ [K in keyof T]: ExtractO<T[K]>;
8
+ };
9
+ export declare class VObject<T extends Record<string, VCore<any, any>>> extends VCore<G1<T>, G2<T>> {
10
+ constructor(schema: T, trim?: boolean, err?: string);
11
+ }
12
+ export {};
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VObject = void 0;
4
+ const rules_1 = require("../utils/rules");
5
+ const core_1 = require("./core");
6
+ class VObject extends core_1.VCore {
7
+ constructor(schema, trim = true, err) {
8
+ super();
9
+ this.addRule((0, rules_1.makeRule)((value) => {
10
+ const keys = new Set([...Object.keys(value !== null && value !== void 0 ? value : {}), ...Object.keys(schema)]);
11
+ const errors = [];
12
+ for (const key of keys) {
13
+ if (!(key in schema)) {
14
+ if (trim)
15
+ delete value[key];
16
+ continue;
17
+ }
18
+ const validity = schema[key].parse(value === null || value === void 0 ? void 0 : value[key]);
19
+ const errorStart = schema[key] instanceof VObject ? `${key}.` : `${key}: `;
20
+ if (!validity.valid)
21
+ errors.push(...validity.errors.map((e) => errorStart + e));
22
+ if (value)
23
+ value[key] = validity.value;
24
+ }
25
+ return errors.length > 0 ? (0, rules_1.isInvalid)(err ? [err] : errors, value) : (0, rules_1.isValid)(value);
26
+ }));
27
+ }
28
+ }
29
+ exports.VObject = VObject;
30
+ //# sourceMappingURL=objects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objects.js","sourceRoot":"","sources":["../../src/api/objects.ts"],"names":[],"mappings":";;;AAAA,0CAA6D;AAE7D,iCAA8B;AAK9B,MAAa,OAAmD,SAAQ,YAAmB;IAC1F,YAAa,MAAS,EAAE,IAAI,GAAG,IAAI,EAAE,GAAY;QAChD,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,CAAC,IAAA,gBAAQ,EAAC,CAAC,KAAK,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YAC3E,MAAM,MAAM,GAAa,EAAE,CAAA;YAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACvB,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE;oBACrB,IAAI,IAAI;wBAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAA;oBAC3B,SAAQ;iBACR;gBACD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,GAAG,CAAC,CAAC,CAAA;gBAChD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAA;gBAC1E,IAAI,CAAC,QAAQ,CAAC,KAAK;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAA;gBAE/E,IAAI,KAAK;oBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAA;aACtC;YACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,eAAO,EAAC,KAAK,CAAC,CAAA;QACnF,CAAC,CAAC,CAAC,CAAA;IACJ,CAAC;CACD;AApBD,0BAoBC"}
@@ -0,0 +1,7 @@
1
+ import { VCore } from './core';
2
+ export declare class VMap<KI, VI, KO, VO> extends VCore<Map<KI, VI>, Map<KO, VO>> {
3
+ constructor(kCom: VCore<KI, KO>, vCom: VCore<VI, VO>, err?: string);
4
+ }
5
+ export declare class VRecord<VI, VO> extends VCore<Record<string, VI>, Record<string, VO>> {
6
+ constructor(vCom: VCore<VI, VO>, err?: string);
7
+ }