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.
- package/CHANGELOG.md +9 -0
- package/lib/api/arrays.d.ts +8 -0
- package/lib/api/arrays.js +46 -0
- package/lib/api/arrays.js.map +1 -0
- package/lib/api/base.d.ts +30 -0
- package/lib/api/base.js +114 -0
- package/lib/api/base.js.map +1 -0
- package/lib/api/booleans.d.ts +4 -0
- package/lib/api/booleans.js +13 -0
- package/lib/api/booleans.js.map +1 -0
- package/lib/api/core.d.ts +19 -0
- package/lib/api/core.js +52 -0
- package/lib/api/core.js.map +1 -0
- package/lib/api/files.d.ts +8 -0
- package/lib/api/files.js +22 -0
- package/lib/api/files.js.map +1 -0
- package/lib/api/index.d.ts +35 -0
- package/lib/api/index.js +41 -0
- package/lib/api/index.js.map +1 -0
- package/lib/api/junctions.d.ts +8 -0
- package/lib/api/junctions.js +41 -0
- package/lib/api/junctions.js.map +1 -0
- package/lib/api/numbers.d.ts +9 -0
- package/lib/api/numbers.js +28 -0
- package/lib/api/numbers.js.map +1 -0
- package/lib/api/objects.d.ts +12 -0
- package/lib/api/objects.js +30 -0
- package/lib/api/objects.js.map +1 -0
- package/lib/api/records.d.ts +7 -0
- package/lib/api/records.js +47 -0
- package/lib/api/records.js.map +1 -0
- package/lib/api/strings.d.ts +15 -0
- package/lib/api/strings.js +47 -0
- package/lib/api/strings.js.map +1 -0
- package/lib/api/times.d.ts +11 -0
- package/lib/api/times.js +28 -0
- package/lib/api/times.js.map +1 -0
- package/lib/api/tuples.d.ts +13 -0
- package/lib/api/tuples.js +25 -0
- package/lib/api/tuples.js.map +1 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js.map +1 -0
- package/lib/rules/arrays.d.ts +5 -0
- package/lib/rules/arrays.js +51 -0
- package/lib/rules/arrays.js.map +1 -0
- package/lib/rules/custom.d.ts +1 -0
- package/lib/rules/custom.js +9 -0
- package/lib/rules/custom.js.map +1 -0
- package/lib/rules/equality.d.ts +3 -0
- package/lib/rules/equality.js +26 -0
- package/lib/rules/equality.js.map +1 -0
- package/lib/rules/files.d.ts +12 -0
- package/lib/rules/files.js +37 -0
- package/lib/rules/files.js.map +1 -0
- package/lib/rules/index.d.ts +10 -0
- package/lib/rules/index.js +27 -0
- package/lib/rules/index.js.map +1 -0
- package/lib/rules/mimes.json +3158 -0
- package/lib/rules/numbers.d.ts +5 -0
- package/lib/rules/numbers.js +51 -0
- package/lib/rules/numbers.js.map +1 -0
- package/lib/rules/records.d.ts +2 -0
- package/lib/rules/records.js +26 -0
- package/lib/rules/records.js.map +1 -0
- package/lib/rules/strings.d.ts +6 -0
- package/lib/rules/strings.js +63 -0
- package/lib/rules/strings.js.map +1 -0
- package/lib/rules/times.d.ts +4 -0
- package/lib/rules/times.js +41 -0
- package/lib/rules/times.js.map +1 -0
- package/lib/rules/tuples.d.ts +7 -0
- package/lib/rules/tuples.js +18 -0
- package/lib/rules/tuples.js.map +1 -0
- package/lib/rules/types.d.ts +4 -0
- package/lib/rules/types.js +30 -0
- package/lib/rules/types.js.map +1 -0
- package/lib/utils/differ.d.ts +6 -0
- package/lib/utils/differ.js +115 -0
- package/lib/utils/differ.js.map +1 -0
- package/lib/utils/functions/index.d.ts +20 -0
- package/lib/utils/functions/index.js +108 -0
- package/lib/utils/functions/index.js.map +1 -0
- package/lib/utils/functions/urls/normalize.d.ts +1 -0
- package/lib/utils/functions/urls/normalize.js +84 -0
- package/lib/utils/functions/urls/normalize.js.map +1 -0
- package/lib/utils/regexes.d.ts +2 -0
- package/lib/utils/regexes.js +10 -0
- package/lib/utils/regexes.js.map +1 -0
- package/lib/utils/rules.d.ts +24 -0
- package/lib/utils/rules.js +33 -0
- package/lib/utils/rules.js.map +1 -0
- package/lib/validators/index.d.ts +15 -0
- package/lib/validators/index.js +28 -0
- package/lib/validators/index.js.map +1 -0
- 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;
|
package/lib/api/base.js
ADDED
|
@@ -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,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 {};
|
package/lib/api/core.js
ADDED
|
@@ -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"}
|
package/lib/api/files.js
ADDED
|
@@ -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
|
+
};
|
package/lib/api/index.js
ADDED
|
@@ -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
|
+
}
|