justus 0.5.3 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dts-generator.cjs +21 -3
- package/dist/dts-generator.cjs.map +1 -1
- package/dist/dts-generator.mjs +21 -3
- package/dist/dts-generator.mjs.map +1 -1
- package/dist/extra/arn.cjs +1 -1
- package/dist/extra/arn.cjs.map +1 -1
- package/dist/extra/arn.mjs +1 -1
- package/dist/extra/arn.mjs.map +1 -1
- package/dist/index.cjs +13 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +12 -0
- package/dist/index.mjs +9 -2
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs +0 -7
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.ts +7 -9
- package/dist/types.mjs +0 -6
- package/dist/types.mjs.map +1 -1
- package/dist/utilities.cjs +1 -0
- package/dist/utilities.cjs.map +1 -1
- package/dist/utilities.mjs +1 -0
- package/dist/utilities.mjs.map +1 -1
- package/dist/validators/bigint.cjs +146 -0
- package/dist/validators/bigint.cjs.map +6 -0
- package/dist/validators/bigint.d.ts +46 -0
- package/dist/validators/bigint.mjs +118 -0
- package/dist/validators/bigint.mjs.map +6 -0
- package/dist/validators/boolean.cjs +1 -1
- package/dist/validators/boolean.cjs.map +1 -1
- package/dist/validators/boolean.mjs +1 -1
- package/dist/validators/boolean.mjs.map +1 -1
- package/dist/validators/constant.cjs +2 -1
- package/dist/validators/constant.cjs.map +1 -1
- package/dist/validators/constant.d.ts +2 -2
- package/dist/validators/constant.mjs +2 -1
- package/dist/validators/constant.mjs.map +1 -1
- package/dist/validators/never.cjs +1 -1
- package/dist/validators/never.cjs.map +1 -1
- package/dist/validators/never.mjs +2 -2
- package/dist/validators/never.mjs.map +1 -1
- package/dist/validators/number.cjs +5 -5
- package/dist/validators/number.cjs.map +1 -1
- package/dist/validators/number.mjs +5 -5
- package/dist/validators/number.mjs.map +1 -1
- package/dist/validators/object.cjs +7 -5
- package/dist/validators/object.cjs.map +1 -1
- package/dist/validators/object.mjs +8 -6
- package/dist/validators/object.mjs.map +1 -1
- package/dist/validators/optional.cjs +1 -1
- package/dist/validators/optional.cjs.map +1 -1
- package/dist/validators/optional.mjs +2 -2
- package/dist/validators/optional.mjs.map +1 -1
- package/dist/validators/string.cjs +2 -2
- package/dist/validators/string.cjs.map +1 -1
- package/dist/validators/string.mjs +2 -2
- package/dist/validators/string.mjs.map +1 -1
- package/package.json +3 -5
- package/src/dts-generator.ts +22 -3
- package/src/extra/arn.ts +1 -1
- package/src/index.ts +20 -2
- package/src/types.ts +7 -12
- package/src/utilities.ts +1 -0
- package/src/validators/bigint.ts +147 -0
- package/src/validators/boolean.ts +1 -1
- package/src/validators/constant.ts +4 -3
- package/src/validators/never.ts +2 -2
- package/src/validators/number.ts +5 -5
- package/src/validators/object.ts +8 -7
- package/src/validators/optional.ts +2 -2
- package/src/validators/string.ts +2 -2
package/dist/utilities.cjs
CHANGED
package/dist/utilities.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/utilities.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA6B;AAC7B,sBAAyB;AASlB,SAAS,aAAa,YAAmC;AAC9D,kCAAa,eAAe,QAAW,uCAAuC;AAG9E,MAAI,eAAe;AAAM,WAAO,KAAK,yBAAS,IAAI,UAAU,GAAG,IAAI;AAGnE,MAAW,WAAY,OAAO,eAAe,GAAG;AAC9C,WAAc,WAAY,OAAO,eAAe;AAAA,EAClD;AAGA,UAAQ,OAAO,YAAY;AAAA,IAEzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,KAAK,yBAAS,IAAI,UAAU,GAAG,UAAU;AAAA,IAGlD,KAAK;AAEH,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,KAAK,yBAAS,IAAI,OAAO,GAAG,UAAU;AAE5E,aAAO,KAAK,yBAAS,IAAI,QAAQ,GAAG,UAAoB;AAAA,IAG1D;AACE,YAAM,IAAI,UAAU,4BAA4B,OAAO,UAAU,GAAG;AAAA,EACxE;AACF;",
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA6B;AAC7B,sBAAyB;AASlB,SAAS,aAAa,YAAmC;AAC9D,kCAAa,eAAe,QAAW,uCAAuC;AAG9E,MAAI,eAAe;AAAM,WAAO,KAAK,yBAAS,IAAI,UAAU,GAAG,IAAI;AAGnE,MAAW,WAAY,OAAO,eAAe,GAAG;AAC9C,WAAc,WAAY,OAAO,eAAe;AAAA,EAClD;AAGA,UAAQ,OAAO,YAAY;AAAA,IAEzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,KAAK,yBAAS,IAAI,UAAU,GAAG,UAAU;AAAA,IAGlD,KAAK;AAEH,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,KAAK,yBAAS,IAAI,OAAO,GAAG,UAAU;AAE5E,aAAO,KAAK,yBAAS,IAAI,QAAQ,GAAG,UAAoB;AAAA,IAG1D;AACE,YAAM,IAAI,UAAU,4BAA4B,OAAO,UAAU,GAAG;AAAA,EACxE;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/utilities.mjs
CHANGED
package/dist/utilities.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/utilities.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AASlB,SAAS,aAAa,YAAmC;AAC9D,eAAa,eAAe,QAAW,uCAAuC;AAG9E,MAAI,eAAe;AAAM,WAAO,KAAK,SAAS,IAAI,UAAU,GAAG,IAAI;AAGnE,MAAW,WAAY,OAAO,eAAe,GAAG;AAC9C,WAAc,WAAY,OAAO,eAAe;AAAA,EAClD;AAGA,UAAQ,OAAO,YAAY;AAAA,IAEzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,KAAK,SAAS,IAAI,UAAU,GAAG,UAAU;AAAA,IAGlD,KAAK;AAEH,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,KAAK,SAAS,IAAI,OAAO,GAAG,UAAU;AAE5E,aAAO,KAAK,SAAS,IAAI,QAAQ,GAAG,UAAoB;AAAA,IAG1D;AACE,YAAM,IAAI,UAAU,4BAA4B,OAAO,UAAU,GAAG;AAAA,EACxE;AACF;",
|
|
4
|
+
"mappings": ";AAAA,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AASlB,SAAS,aAAa,YAAmC;AAC9D,eAAa,eAAe,QAAW,uCAAuC;AAG9E,MAAI,eAAe;AAAM,WAAO,KAAK,SAAS,IAAI,UAAU,GAAG,IAAI;AAGnE,MAAW,WAAY,OAAO,eAAe,GAAG;AAC9C,WAAc,WAAY,OAAO,eAAe;AAAA,EAClD;AAGA,UAAQ,OAAO,YAAY;AAAA,IAEzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,KAAK,SAAS,IAAI,UAAU,GAAG,UAAU;AAAA,IAGlD,KAAK;AAEH,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,KAAK,SAAS,IAAI,OAAO,GAAG,UAAU;AAE5E,aAAO,KAAK,SAAS,IAAI,QAAQ,GAAG,UAAoB;AAAA,IAG1D;AACE,YAAM,IAAI,UAAU,4BAA4B,OAAO,UAAU,GAAG;AAAA,EACxE;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// validators/bigint.ts
|
|
21
|
+
var bigint_exports = {};
|
|
22
|
+
__export(bigint_exports, {
|
|
23
|
+
AnyBigIntValidator: () => AnyBigIntValidator,
|
|
24
|
+
BigIntValidator: () => BigIntValidator,
|
|
25
|
+
bigint: () => bigint,
|
|
26
|
+
bigintFactory: () => bigintFactory
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(bigint_exports);
|
|
29
|
+
var import_errors = require("../errors.cjs");
|
|
30
|
+
var import_types = require("../types.cjs");
|
|
31
|
+
var AnyBigIntValidator = class extends import_types.AbstractValidator {
|
|
32
|
+
validate(value) {
|
|
33
|
+
if (typeof value === "number") {
|
|
34
|
+
try {
|
|
35
|
+
value = BigInt(value);
|
|
36
|
+
} catch (error) {
|
|
37
|
+
throw new import_errors.ValidationError("BigInt can not be parsed from number");
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
(0, import_errors.assertValidation)(typeof value === "bigint", 'Value is not a "bigint"');
|
|
41
|
+
return value;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
var BigIntValidator = class extends import_types.AbstractValidator {
|
|
45
|
+
fromString;
|
|
46
|
+
fromNumber;
|
|
47
|
+
exclusiveMaximum;
|
|
48
|
+
exclusiveMinimum;
|
|
49
|
+
maximum;
|
|
50
|
+
minimum;
|
|
51
|
+
multipleOf;
|
|
52
|
+
brand;
|
|
53
|
+
constructor(constraints = {}) {
|
|
54
|
+
super();
|
|
55
|
+
const {
|
|
56
|
+
exclusiveMaximum,
|
|
57
|
+
exclusiveMinimum,
|
|
58
|
+
maximum,
|
|
59
|
+
minimum,
|
|
60
|
+
multipleOf,
|
|
61
|
+
fromString = false,
|
|
62
|
+
fromNumber = true
|
|
63
|
+
} = constraints;
|
|
64
|
+
if ("brand" in constraints)
|
|
65
|
+
this.brand = constraints.brand;
|
|
66
|
+
this.fromString = fromString;
|
|
67
|
+
this.fromNumber = fromNumber;
|
|
68
|
+
const _exclusiveMaximum = exclusiveMaximum === void 0 ? void 0 : BigInt(exclusiveMaximum);
|
|
69
|
+
const _exclusiveMinimum = exclusiveMinimum === void 0 ? void 0 : BigInt(exclusiveMinimum);
|
|
70
|
+
const _maximum = maximum === void 0 ? void 0 : BigInt(maximum);
|
|
71
|
+
const _minimum = minimum === void 0 ? void 0 : BigInt(minimum);
|
|
72
|
+
const _multipleOf = multipleOf === void 0 ? void 0 : BigInt(multipleOf);
|
|
73
|
+
if (_maximum !== void 0 && _minimum !== void 0) {
|
|
74
|
+
(0, import_errors.assertSchema)(_maximum >= _minimum, `Constraint "minimum" (${_minimum}) is greater than "maximum" (${_maximum})`);
|
|
75
|
+
}
|
|
76
|
+
if (_exclusiveMaximum !== void 0 && _minimum !== void 0) {
|
|
77
|
+
(0, import_errors.assertSchema)(
|
|
78
|
+
_exclusiveMaximum > _minimum,
|
|
79
|
+
`Constraint "exclusiveMaximum" (${_exclusiveMaximum}) must be greater than "minimum" (${_minimum})`
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
if (_exclusiveMinimum !== void 0 && _maximum != void 0) {
|
|
83
|
+
(0, import_errors.assertSchema)(
|
|
84
|
+
_maximum > _exclusiveMinimum,
|
|
85
|
+
`Constraint "maximum" (${_maximum}) must be greater than "exclusiveMinimum" (${_exclusiveMinimum})`
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
if (_exclusiveMinimum != void 0 && _exclusiveMaximum !== void 0) {
|
|
89
|
+
(0, import_errors.assertSchema)(
|
|
90
|
+
_exclusiveMaximum > _exclusiveMinimum,
|
|
91
|
+
`Constraint "exclusiveMaximum" (${_exclusiveMaximum}) must be greater than "exclusiveMinimum" (${_exclusiveMinimum})`
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
if (_multipleOf !== void 0) {
|
|
95
|
+
(0, import_errors.assertSchema)(_multipleOf > 0, `Constraint "multipleOf" (${_multipleOf}) must be greater than zero`);
|
|
96
|
+
}
|
|
97
|
+
this.exclusiveMaximum = _exclusiveMaximum;
|
|
98
|
+
this.exclusiveMinimum = _exclusiveMinimum;
|
|
99
|
+
this.maximum = _maximum;
|
|
100
|
+
this.minimum = _minimum;
|
|
101
|
+
this.multipleOf = _multipleOf;
|
|
102
|
+
}
|
|
103
|
+
validate(value) {
|
|
104
|
+
if (typeof value === "string" && this.fromString || typeof value === "number" && this.fromNumber) {
|
|
105
|
+
try {
|
|
106
|
+
value = BigInt(value);
|
|
107
|
+
} catch (error) {
|
|
108
|
+
throw new import_errors.ValidationError("BigInt can not be parsed from " + typeof value);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
(0, import_errors.assertValidation)(typeof value === "bigint", 'Value is not a "bigint"');
|
|
112
|
+
(0, import_errors.assertValidation)(
|
|
113
|
+
this.minimum === void 0 || value >= this.minimum,
|
|
114
|
+
`BigInt is less than ${this.minimum}`
|
|
115
|
+
);
|
|
116
|
+
(0, import_errors.assertValidation)(
|
|
117
|
+
this.maximum === void 0 || value <= this.maximum,
|
|
118
|
+
`BigInt is greater than ${this.maximum}`
|
|
119
|
+
);
|
|
120
|
+
(0, import_errors.assertValidation)(
|
|
121
|
+
this.exclusiveMinimum === void 0 || value > this.exclusiveMinimum,
|
|
122
|
+
`BigInt is less than or equal to ${this.exclusiveMinimum}`
|
|
123
|
+
);
|
|
124
|
+
(0, import_errors.assertValidation)(
|
|
125
|
+
this.exclusiveMaximum === void 0 || value < this.exclusiveMaximum,
|
|
126
|
+
`BigInt is greater than or equal to ${this.exclusiveMaximum}`
|
|
127
|
+
);
|
|
128
|
+
(0, import_errors.assertValidation)(
|
|
129
|
+
this.multipleOf === void 0 || !(value % this.multipleOf),
|
|
130
|
+
`BigInt is not a multiple of ${this.multipleOf}`
|
|
131
|
+
);
|
|
132
|
+
return value;
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
function bigintFactory(constraints) {
|
|
136
|
+
return new BigIntValidator(constraints);
|
|
137
|
+
}
|
|
138
|
+
var bigint = (0, import_types.makeValidatorFactory)(new AnyBigIntValidator(), bigintFactory);
|
|
139
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
140
|
+
0 && (module.exports = {
|
|
141
|
+
AnyBigIntValidator,
|
|
142
|
+
BigIntValidator,
|
|
143
|
+
bigint,
|
|
144
|
+
bigintFactory
|
|
145
|
+
});
|
|
146
|
+
//# sourceMappingURL=bigint.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/validators/bigint.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { AbstractValidator } from '../types';
|
|
2
|
+
import type { Branding } from '../types';
|
|
3
|
+
/** Constraints to validate a `bigint` with. */
|
|
4
|
+
export interface BigIntConstraints {
|
|
5
|
+
/** The value for which a `bigint` must be multiple of for it to be valid */
|
|
6
|
+
multipleOf?: bigint | number;
|
|
7
|
+
/** The _inclusive_ maximum value for a valid `bigint`: `value <= maximum` */
|
|
8
|
+
maximum?: bigint | number;
|
|
9
|
+
/** The _inclusive_ minimum value for a valid `bigint`: `value >= minimum` */
|
|
10
|
+
minimum?: bigint | number;
|
|
11
|
+
/** The _exclusive_ maximum value for a valid `bigint`: `value < exclusiveMaximum` */
|
|
12
|
+
exclusiveMaximum?: bigint | number;
|
|
13
|
+
/** The _exclusive_ minimum value for a valid `bigint`: `value > exclusiveMaximum` */
|
|
14
|
+
exclusiveMinimum?: bigint | number;
|
|
15
|
+
/** Allow bigints to be parsed from strings (e.g. `123.456` or `0x0CAFE`, default: `false`) */
|
|
16
|
+
fromString?: boolean;
|
|
17
|
+
/** Allow bigints to be parsed from numbers (default: `true`) */
|
|
18
|
+
fromNumber?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/** Constraints to validate a `bigint` with extra branding information. */
|
|
21
|
+
export interface BrandedBigIntConstraints<B extends string> extends BigIntConstraints {
|
|
22
|
+
/** The _brand_ of the string (will generate a `__brand_${B}` type property */
|
|
23
|
+
brand: B;
|
|
24
|
+
}
|
|
25
|
+
/** A `Validator` validating any `bigint`. */
|
|
26
|
+
export declare class AnyBigIntValidator extends AbstractValidator<bigint> {
|
|
27
|
+
validate(value: unknown): bigint;
|
|
28
|
+
}
|
|
29
|
+
/** A `Validator` validating `bigint`s with constaints. */
|
|
30
|
+
export declare class BigIntValidator<N extends bigint = bigint> extends AbstractValidator<N, bigint> {
|
|
31
|
+
readonly fromString: boolean;
|
|
32
|
+
readonly fromNumber: boolean;
|
|
33
|
+
readonly exclusiveMaximum?: bigint;
|
|
34
|
+
readonly exclusiveMinimum?: bigint;
|
|
35
|
+
readonly maximum?: bigint;
|
|
36
|
+
readonly minimum?: bigint;
|
|
37
|
+
readonly multipleOf?: bigint;
|
|
38
|
+
readonly brand?: string;
|
|
39
|
+
constructor(constraints?: BigIntConstraints);
|
|
40
|
+
validate(value: unknown): N;
|
|
41
|
+
}
|
|
42
|
+
export declare function bigintFactory(constraints: BigIntConstraints): BigIntValidator<bigint>;
|
|
43
|
+
export declare function bigintFactory<N extends bigint>(constraints: BigIntConstraints): BigIntValidator<N>;
|
|
44
|
+
export declare function bigintFactory<B extends string>(constraints: BrandedBigIntConstraints<B>): BigIntValidator<bigint & Branding<B>>;
|
|
45
|
+
/** Validate `bigint`s. */
|
|
46
|
+
export declare const bigint: typeof bigintFactory & AnyBigIntValidator;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
// validators/bigint.ts
|
|
2
|
+
import { assertSchema, assertValidation, ValidationError } from "../errors.mjs";
|
|
3
|
+
import { AbstractValidator, makeValidatorFactory } from "../types.mjs";
|
|
4
|
+
var AnyBigIntValidator = class extends AbstractValidator {
|
|
5
|
+
validate(value) {
|
|
6
|
+
if (typeof value === "number") {
|
|
7
|
+
try {
|
|
8
|
+
value = BigInt(value);
|
|
9
|
+
} catch (error) {
|
|
10
|
+
throw new ValidationError("BigInt can not be parsed from number");
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
assertValidation(typeof value === "bigint", 'Value is not a "bigint"');
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
var BigIntValidator = class extends AbstractValidator {
|
|
18
|
+
fromString;
|
|
19
|
+
fromNumber;
|
|
20
|
+
exclusiveMaximum;
|
|
21
|
+
exclusiveMinimum;
|
|
22
|
+
maximum;
|
|
23
|
+
minimum;
|
|
24
|
+
multipleOf;
|
|
25
|
+
brand;
|
|
26
|
+
constructor(constraints = {}) {
|
|
27
|
+
super();
|
|
28
|
+
const {
|
|
29
|
+
exclusiveMaximum,
|
|
30
|
+
exclusiveMinimum,
|
|
31
|
+
maximum,
|
|
32
|
+
minimum,
|
|
33
|
+
multipleOf,
|
|
34
|
+
fromString = false,
|
|
35
|
+
fromNumber = true
|
|
36
|
+
} = constraints;
|
|
37
|
+
if ("brand" in constraints)
|
|
38
|
+
this.brand = constraints.brand;
|
|
39
|
+
this.fromString = fromString;
|
|
40
|
+
this.fromNumber = fromNumber;
|
|
41
|
+
const _exclusiveMaximum = exclusiveMaximum === void 0 ? void 0 : BigInt(exclusiveMaximum);
|
|
42
|
+
const _exclusiveMinimum = exclusiveMinimum === void 0 ? void 0 : BigInt(exclusiveMinimum);
|
|
43
|
+
const _maximum = maximum === void 0 ? void 0 : BigInt(maximum);
|
|
44
|
+
const _minimum = minimum === void 0 ? void 0 : BigInt(minimum);
|
|
45
|
+
const _multipleOf = multipleOf === void 0 ? void 0 : BigInt(multipleOf);
|
|
46
|
+
if (_maximum !== void 0 && _minimum !== void 0) {
|
|
47
|
+
assertSchema(_maximum >= _minimum, `Constraint "minimum" (${_minimum}) is greater than "maximum" (${_maximum})`);
|
|
48
|
+
}
|
|
49
|
+
if (_exclusiveMaximum !== void 0 && _minimum !== void 0) {
|
|
50
|
+
assertSchema(
|
|
51
|
+
_exclusiveMaximum > _minimum,
|
|
52
|
+
`Constraint "exclusiveMaximum" (${_exclusiveMaximum}) must be greater than "minimum" (${_minimum})`
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
if (_exclusiveMinimum !== void 0 && _maximum != void 0) {
|
|
56
|
+
assertSchema(
|
|
57
|
+
_maximum > _exclusiveMinimum,
|
|
58
|
+
`Constraint "maximum" (${_maximum}) must be greater than "exclusiveMinimum" (${_exclusiveMinimum})`
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
if (_exclusiveMinimum != void 0 && _exclusiveMaximum !== void 0) {
|
|
62
|
+
assertSchema(
|
|
63
|
+
_exclusiveMaximum > _exclusiveMinimum,
|
|
64
|
+
`Constraint "exclusiveMaximum" (${_exclusiveMaximum}) must be greater than "exclusiveMinimum" (${_exclusiveMinimum})`
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
if (_multipleOf !== void 0) {
|
|
68
|
+
assertSchema(_multipleOf > 0, `Constraint "multipleOf" (${_multipleOf}) must be greater than zero`);
|
|
69
|
+
}
|
|
70
|
+
this.exclusiveMaximum = _exclusiveMaximum;
|
|
71
|
+
this.exclusiveMinimum = _exclusiveMinimum;
|
|
72
|
+
this.maximum = _maximum;
|
|
73
|
+
this.minimum = _minimum;
|
|
74
|
+
this.multipleOf = _multipleOf;
|
|
75
|
+
}
|
|
76
|
+
validate(value) {
|
|
77
|
+
if (typeof value === "string" && this.fromString || typeof value === "number" && this.fromNumber) {
|
|
78
|
+
try {
|
|
79
|
+
value = BigInt(value);
|
|
80
|
+
} catch (error) {
|
|
81
|
+
throw new ValidationError("BigInt can not be parsed from " + typeof value);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
assertValidation(typeof value === "bigint", 'Value is not a "bigint"');
|
|
85
|
+
assertValidation(
|
|
86
|
+
this.minimum === void 0 || value >= this.minimum,
|
|
87
|
+
`BigInt is less than ${this.minimum}`
|
|
88
|
+
);
|
|
89
|
+
assertValidation(
|
|
90
|
+
this.maximum === void 0 || value <= this.maximum,
|
|
91
|
+
`BigInt is greater than ${this.maximum}`
|
|
92
|
+
);
|
|
93
|
+
assertValidation(
|
|
94
|
+
this.exclusiveMinimum === void 0 || value > this.exclusiveMinimum,
|
|
95
|
+
`BigInt is less than or equal to ${this.exclusiveMinimum}`
|
|
96
|
+
);
|
|
97
|
+
assertValidation(
|
|
98
|
+
this.exclusiveMaximum === void 0 || value < this.exclusiveMaximum,
|
|
99
|
+
`BigInt is greater than or equal to ${this.exclusiveMaximum}`
|
|
100
|
+
);
|
|
101
|
+
assertValidation(
|
|
102
|
+
this.multipleOf === void 0 || !(value % this.multipleOf),
|
|
103
|
+
`BigInt is not a multiple of ${this.multipleOf}`
|
|
104
|
+
);
|
|
105
|
+
return value;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
function bigintFactory(constraints) {
|
|
109
|
+
return new BigIntValidator(constraints);
|
|
110
|
+
}
|
|
111
|
+
var bigint = makeValidatorFactory(new AnyBigIntValidator(), bigintFactory);
|
|
112
|
+
export {
|
|
113
|
+
AnyBigIntValidator,
|
|
114
|
+
BigIntValidator,
|
|
115
|
+
bigint,
|
|
116
|
+
bigintFactory
|
|
117
|
+
};
|
|
118
|
+
//# sourceMappingURL=bigint.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/validators/bigint.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -35,7 +35,7 @@ var BooleanValidator = class extends import_types.AbstractValidator {
|
|
|
35
35
|
this.fromString = fromString;
|
|
36
36
|
}
|
|
37
37
|
validate(value) {
|
|
38
|
-
if (typeof value
|
|
38
|
+
if (typeof value === "string" && this.fromString) {
|
|
39
39
|
const string = value.toLowerCase();
|
|
40
40
|
const parsed = string === "true" ? true : string === "false" ? false : void 0;
|
|
41
41
|
(0, import_errors.assertValidation)(parsed !== void 0, "Boolean can not be parsed from string");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/boolean.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AACjC,mBAAwD;AAejD,IAAM,mBAAN,cAA+B,+BAA2B;AAAA,EACtD;AAAA,EAET,YAAY,cAAkC,CAAC,GAAG;AAChD,UAAM;AACN,UAAM,EAAE,aAAa,MAAM,IAAI;AAC/B,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,SAAS,OAAyB;AAEhC,QAAK,OAAO,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AACjC,mBAAwD;AAejD,IAAM,mBAAN,cAA+B,+BAA2B;AAAA,EACtD;AAAA,EAET,YAAY,cAAkC,CAAC,GAAG;AAChD,UAAM;AACN,UAAM,EAAE,aAAa,MAAM,IAAI;AAC/B,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,SAAS,OAAyB;AAEhC,QAAK,OAAO,UAAU,YAAc,KAAK,YAAa;AACpD,YAAM,SAAS,MAAM,YAAY;AACjC,YAAM,SAAS,WAAW,SAAS,OAAO,WAAW,UAAU,QAAQ;AACvE,0CAAiB,WAAW,QAAW,uCAAuC;AAC9E,cAAQ;AAAA,IACV;AAEA,wCAAiB,OAAO,UAAU,WAAW,0BAA0B;AACvE,WAAO;AAAA,EACT;AACF;AAEO,SAAS,eAAe,aAAmD;AAChF,SAAO,IAAI,iBAAiB,WAAW;AACzC;AAGO,IAAM,cAAU,mCAAqB,IAAI,iBAAiB,GAAG,cAAc;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -9,7 +9,7 @@ var BooleanValidator = class extends AbstractValidator {
|
|
|
9
9
|
this.fromString = fromString;
|
|
10
10
|
}
|
|
11
11
|
validate(value) {
|
|
12
|
-
if (typeof value
|
|
12
|
+
if (typeof value === "string" && this.fromString) {
|
|
13
13
|
const string = value.toLowerCase();
|
|
14
14
|
const parsed = string === "true" ? true : string === "false" ? false : void 0;
|
|
15
15
|
assertValidation(parsed !== void 0, "Boolean can not be parsed from string");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/boolean.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,wBAAwB;AACjC,SAAS,mBAAmB,4BAA4B;AAejD,IAAM,mBAAN,cAA+B,kBAA2B;AAAA,EACtD;AAAA,EAET,YAAY,cAAkC,CAAC,GAAG;AAChD,UAAM;AACN,UAAM,EAAE,aAAa,MAAM,IAAI;AAC/B,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,SAAS,OAAyB;AAEhC,QAAK,OAAO,
|
|
4
|
+
"mappings": ";AAAA,SAAS,wBAAwB;AACjC,SAAS,mBAAmB,4BAA4B;AAejD,IAAM,mBAAN,cAA+B,kBAA2B;AAAA,EACtD;AAAA,EAET,YAAY,cAAkC,CAAC,GAAG;AAChD,UAAM;AACN,UAAM,EAAE,aAAa,MAAM,IAAI;AAC/B,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,SAAS,OAAyB;AAEhC,QAAK,OAAO,UAAU,YAAc,KAAK,YAAa;AACpD,YAAM,SAAS,MAAM,YAAY;AACjC,YAAM,SAAS,WAAW,SAAS,OAAO,WAAW,UAAU,QAAQ;AACvE,uBAAiB,WAAW,QAAW,uCAAuC;AAC9E,cAAQ;AAAA,IACV;AAEA,qBAAiB,OAAO,UAAU,WAAW,0BAA0B;AACvE,WAAO;AAAA,EACT;AACF;AAEO,SAAS,eAAe,aAAmD;AAChF,SAAO,IAAI,iBAAiB,WAAW;AACzC;AAGO,IAAM,UAAU,qBAAqB,IAAI,iBAAiB,GAAG,cAAc;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -34,7 +34,8 @@ var ConstantValidator = class extends import_types.AbstractValidator {
|
|
|
34
34
|
this.constant = constant2;
|
|
35
35
|
}
|
|
36
36
|
validate(value) {
|
|
37
|
-
|
|
37
|
+
const extra = this.constant === null ? "" : ` (${typeof this.constant})`;
|
|
38
|
+
(0, import_errors.assertValidation)(value === this.constant, `Value does not match constant "${this.constant}"${extra}`);
|
|
38
39
|
return value;
|
|
39
40
|
}
|
|
40
41
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/constant.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AACjC,sBAAyB;AACzB,mBAAkC;AAK3B,IAAM,oBAAN,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AACjC,sBAAyB;AACzB,mBAAkC;AAK3B,IAAM,oBAAN,cAAqF,+BAAqB;AAAA,EACtG;AAAA,EAET,YAAYA,WAAa;AACvB,UAAM;AACN,SAAK,WAAWA;AAAA,EAClB;AAAA,EAEA,SAAS,OAAmB;AAC1B,UAAM,QAAQ,KAAK,aAAa,OAAO,KAAK,KAAK,OAAO,KAAK,QAAQ;AACrE,wCAAiB,UAAU,KAAK,UAAU,kCAAkC,KAAK,QAAQ,IAAI,KAAK,EAAE;AACpG,WAAO;AAAA,EACT;AACF;AAGO,SAAS,SAA8DA,WAA2B;AACvG,SAAO,IAAI,kBAAkBA,SAAQ;AACvC;AAGA,yBAAS,IAAI,YAAY,iBAAiB;",
|
|
5
5
|
"names": ["constant"]
|
|
6
6
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { AbstractValidator } from '../types';
|
|
2
2
|
import type { Validator } from '../types';
|
|
3
3
|
/** A `Validator` for _constants_. */
|
|
4
|
-
export declare class ConstantValidator<T extends string | number | boolean | null> extends AbstractValidator<T> {
|
|
4
|
+
export declare class ConstantValidator<T extends string | number | boolean | bigint | null> extends AbstractValidator<T> {
|
|
5
5
|
readonly constant: T;
|
|
6
6
|
constructor(constant: T);
|
|
7
7
|
validate(value: unknown): T;
|
|
8
8
|
}
|
|
9
9
|
/** Validate _constants_. */
|
|
10
|
-
export declare function constant<T extends string | number | boolean | null>(constant: T): Validator<T>;
|
|
10
|
+
export declare function constant<T extends string | number | boolean | bigint | null>(constant: T): Validator<T>;
|
|
@@ -9,7 +9,8 @@ var ConstantValidator = class extends AbstractValidator {
|
|
|
9
9
|
this.constant = constant2;
|
|
10
10
|
}
|
|
11
11
|
validate(value) {
|
|
12
|
-
|
|
12
|
+
const extra = this.constant === null ? "" : ` (${typeof this.constant})`;
|
|
13
|
+
assertValidation(value === this.constant, `Value does not match constant "${this.constant}"${extra}`);
|
|
13
14
|
return value;
|
|
14
15
|
}
|
|
15
16
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/constant.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,wBAAwB;AACjC,SAAS,gBAAgB;AACzB,SAAS,yBAAyB;AAK3B,IAAM,oBAAN,
|
|
4
|
+
"mappings": ";AAAA,SAAS,wBAAwB;AACjC,SAAS,gBAAgB;AACzB,SAAS,yBAAyB;AAK3B,IAAM,oBAAN,cAAqF,kBAAqB;AAAA,EACtG;AAAA,EAET,YAAYA,WAAa;AACvB,UAAM;AACN,SAAK,WAAWA;AAAA,EAClB;AAAA,EAEA,SAAS,OAAmB;AAC1B,UAAM,QAAQ,KAAK,aAAa,OAAO,KAAK,KAAK,OAAO,KAAK,QAAQ;AACrE,qBAAiB,UAAU,KAAK,UAAU,kCAAkC,KAAK,QAAQ,IAAI,KAAK,EAAE;AACpG,WAAO;AAAA,EACT;AACF;AAGO,SAAS,SAA8DA,WAA2B;AACvG,SAAO,IAAI,kBAAkBA,SAAQ;AACvC;AAGA,SAAS,IAAI,YAAY,iBAAiB;",
|
|
5
5
|
"names": ["constant"]
|
|
6
6
|
}
|
|
@@ -28,7 +28,7 @@ var import_errors = require("../errors.cjs");
|
|
|
28
28
|
var import_types = require("../types.cjs");
|
|
29
29
|
var NeverValidator = class extends import_types.AbstractValidator {
|
|
30
30
|
optional = true;
|
|
31
|
-
validate(value, options =
|
|
31
|
+
validate(value, options = {}) {
|
|
32
32
|
const { stripForbiddenProperties } = options;
|
|
33
33
|
if (stripForbiddenProperties || value === void 0)
|
|
34
34
|
return;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/never.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAgC;AAChC,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAgC;AAChC,mBAAkC;AAK3B,IAAM,iBAAN,cAA6B,+BAAyB;AAAA,EAC3D,WAAiB;AAAA,EAEjB,SAAS,OAAgB,UAA6B,CAAC,GAAU;AAC/D,UAAM,EAAE,yBAAyB,IAAI;AAGrC,QAAI,4BAA6B,UAAU;AAAY;AACvD,UAAM,IAAI,8BAAgB,oBAAoB;AAAA,EAChD;AACF;AAGO,IAAM,QAAQ,IAAI,eAAe;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// validators/never.ts
|
|
2
2
|
import { ValidationError } from "../errors.mjs";
|
|
3
|
-
import { AbstractValidator
|
|
3
|
+
import { AbstractValidator } from "../types.mjs";
|
|
4
4
|
var NeverValidator = class extends AbstractValidator {
|
|
5
5
|
optional = true;
|
|
6
|
-
validate(value, options =
|
|
6
|
+
validate(value, options = {}) {
|
|
7
7
|
const { stripForbiddenProperties } = options;
|
|
8
8
|
if (stripForbiddenProperties || value === void 0)
|
|
9
9
|
return;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/never.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,uBAAuB;AAChC,SAAS,
|
|
4
|
+
"mappings": ";AAAA,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAK3B,IAAM,iBAAN,cAA6B,kBAAyB;AAAA,EAC3D,WAAiB;AAAA,EAEjB,SAAS,OAAgB,UAA6B,CAAC,GAAU;AAC/D,UAAM,EAAE,yBAAyB,IAAI;AAGrC,QAAI,4BAA6B,UAAU;AAAY;AACvD,UAAM,IAAI,gBAAgB,oBAAoB;AAAA,EAChD;AACF;AAGO,IAAM,QAAQ,IAAI,eAAe;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -39,7 +39,7 @@ function countDecimals(n) {
|
|
|
39
39
|
}
|
|
40
40
|
var AnyNumberValidator = class extends import_types.AbstractValidator {
|
|
41
41
|
validate(value) {
|
|
42
|
-
(0, import_errors.assertValidation)(typeof value
|
|
42
|
+
(0, import_errors.assertValidation)(typeof value === "number", 'Value is not a "number"');
|
|
43
43
|
(0, import_errors.assertValidation)(!isNaN(value), 'Number is "NaN"');
|
|
44
44
|
return value;
|
|
45
45
|
}
|
|
@@ -114,12 +114,12 @@ var NumberValidator = class extends import_types.AbstractValidator {
|
|
|
114
114
|
this.multipleOf = multipleOf;
|
|
115
115
|
}
|
|
116
116
|
validate(value) {
|
|
117
|
-
if (typeof value
|
|
117
|
+
if (typeof value === "string" && this.fromString) {
|
|
118
118
|
const parsed = +`${value}`;
|
|
119
119
|
(0, import_errors.assertValidation)(!isNaN(parsed), "Number can not be parsed from string");
|
|
120
120
|
value = parsed;
|
|
121
121
|
}
|
|
122
|
-
(0, import_errors.assertValidation)(typeof value
|
|
122
|
+
(0, import_errors.assertValidation)(typeof value === "number", 'Value is not a "number"');
|
|
123
123
|
if (isNaN(value)) {
|
|
124
124
|
(0, import_errors.assertValidation)(this.allowNaN, 'Number is "NaN"');
|
|
125
125
|
return value;
|
|
@@ -127,11 +127,11 @@ var NumberValidator = class extends import_types.AbstractValidator {
|
|
|
127
127
|
(0, import_errors.assertValidation)(value >= this.minimum, `Number is less than ${this.minimum}`);
|
|
128
128
|
(0, import_errors.assertValidation)(value <= this.maximum, `Number is greater than ${this.maximum}`);
|
|
129
129
|
(0, import_errors.assertValidation)(
|
|
130
|
-
this.exclusiveMinimum
|
|
130
|
+
this.exclusiveMinimum === void 0 || value > this.exclusiveMinimum,
|
|
131
131
|
`Number is less than or equal to ${this.exclusiveMinimum}`
|
|
132
132
|
);
|
|
133
133
|
(0, import_errors.assertValidation)(
|
|
134
|
-
this.exclusiveMaximum
|
|
134
|
+
this.exclusiveMaximum === void 0 || value < this.exclusiveMaximum,
|
|
135
135
|
`Number is greater than or equal to ${this.exclusiveMaximum}`
|
|
136
136
|
);
|
|
137
137
|
(0, import_errors.assertValidation)(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/number.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAgE;AAChE,mBAAwD;AAMxD,IAAM,YAAY;AAClB,IAAM,aAAa,KAAK,IAAI,IAAI,SAAS;AAEzC,SAAS,cAAc,GAAmB;AAExC,QAAM,QAAQ,EAAE,cAAc,EAAE,MAAM,yBAAyB;AAC/D,MAAI,CAAE;AAAO,UAAM,IAAI,WAAW,sCAAsC,CAAC,GAAG;AAE5E,QAAM,UAAW,MAAM,CAAC,KAAK,KAAK,SAAS,IAAM,SAAS,MAAM,CAAC,CAAC;AAClE,SAAO,SAAS,IAAI,IAAI;AAC1B;AA6BO,IAAM,qBAAN,cAAiC,+BAA0B;AAAA,EAChE,SAAS,OAAwB;AAC/B,wCAAiB,OAAO,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -12,7 +12,7 @@ function countDecimals(n) {
|
|
|
12
12
|
}
|
|
13
13
|
var AnyNumberValidator = class extends AbstractValidator {
|
|
14
14
|
validate(value) {
|
|
15
|
-
assertValidation(typeof value
|
|
15
|
+
assertValidation(typeof value === "number", 'Value is not a "number"');
|
|
16
16
|
assertValidation(!isNaN(value), 'Number is "NaN"');
|
|
17
17
|
return value;
|
|
18
18
|
}
|
|
@@ -87,12 +87,12 @@ var NumberValidator = class extends AbstractValidator {
|
|
|
87
87
|
this.multipleOf = multipleOf;
|
|
88
88
|
}
|
|
89
89
|
validate(value) {
|
|
90
|
-
if (typeof value
|
|
90
|
+
if (typeof value === "string" && this.fromString) {
|
|
91
91
|
const parsed = +`${value}`;
|
|
92
92
|
assertValidation(!isNaN(parsed), "Number can not be parsed from string");
|
|
93
93
|
value = parsed;
|
|
94
94
|
}
|
|
95
|
-
assertValidation(typeof value
|
|
95
|
+
assertValidation(typeof value === "number", 'Value is not a "number"');
|
|
96
96
|
if (isNaN(value)) {
|
|
97
97
|
assertValidation(this.allowNaN, 'Number is "NaN"');
|
|
98
98
|
return value;
|
|
@@ -100,11 +100,11 @@ var NumberValidator = class extends AbstractValidator {
|
|
|
100
100
|
assertValidation(value >= this.minimum, `Number is less than ${this.minimum}`);
|
|
101
101
|
assertValidation(value <= this.maximum, `Number is greater than ${this.maximum}`);
|
|
102
102
|
assertValidation(
|
|
103
|
-
this.exclusiveMinimum
|
|
103
|
+
this.exclusiveMinimum === void 0 || value > this.exclusiveMinimum,
|
|
104
104
|
`Number is less than or equal to ${this.exclusiveMinimum}`
|
|
105
105
|
);
|
|
106
106
|
assertValidation(
|
|
107
|
-
this.exclusiveMaximum
|
|
107
|
+
this.exclusiveMaximum === void 0 || value < this.exclusiveMaximum,
|
|
108
108
|
`Number is greater than or equal to ${this.exclusiveMaximum}`
|
|
109
109
|
);
|
|
110
110
|
assertValidation(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/number.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,cAAc,kBAAkB,uBAAuB;AAChE,SAAS,mBAAmB,4BAA4B;AAMxD,IAAM,YAAY;AAClB,IAAM,aAAa,KAAK,IAAI,IAAI,SAAS;AAEzC,SAAS,cAAc,GAAmB;AAExC,QAAM,QAAQ,EAAE,cAAc,EAAE,MAAM,yBAAyB;AAC/D,MAAI,CAAE;AAAO,UAAM,IAAI,WAAW,sCAAsC,CAAC,GAAG;AAE5E,QAAM,UAAW,MAAM,CAAC,KAAK,KAAK,SAAS,IAAM,SAAS,MAAM,CAAC,CAAC;AAClE,SAAO,SAAS,IAAI,IAAI;AAC1B;AA6BO,IAAM,qBAAN,cAAiC,kBAA0B;AAAA,EAChE,SAAS,OAAwB;AAC/B,qBAAiB,OAAO,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|