@modulify/validator 0.2.1 → 0.3.1
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 +29 -1
- package/README.md +12 -2
- package/dist/assert.cjs +99 -63
- package/dist/assert.d.cts +37 -0
- package/dist/assert.d.mts +37 -0
- package/dist/assert.d.ts +24 -3
- package/dist/assert.mjs +94 -64
- package/dist/assertions.cjs +283 -178
- package/dist/assertions.d.cts +56 -0
- package/dist/assertions.d.mts +56 -0
- package/dist/assertions.d.ts +43 -45
- package/dist/assertions.mjs +274 -201
- package/dist/checkers.cjs +23 -0
- package/dist/checkers.d.cts +8 -0
- package/dist/checkers.d.mts +8 -0
- package/dist/checkers.d.ts +1 -1
- package/dist/checkers.mjs +16 -0
- package/dist/combinators.cjs +305 -304
- package/dist/combinators.d.cts +16 -0
- package/dist/combinators.d.mts +16 -0
- package/dist/combinators.d.ts +15 -16
- package/dist/combinators.mjs +305 -314
- package/dist/constraints.cjs +23 -0
- package/dist/constraints.d.cts +4 -0
- package/dist/constraints.d.mts +4 -0
- package/dist/constraints.d.ts +2 -2
- package/dist/constraints.mjs +21 -0
- package/dist/extractors.cjs +6 -0
- package/dist/extractors.d.cts +2 -0
- package/dist/extractors.d.mts +2 -0
- package/dist/extractors.mjs +5 -0
- package/dist/index.cjs +140 -219
- package/dist/index.d.cts +12 -0
- package/dist/index.d.mts +12 -0
- package/dist/index.d.ts +9 -9
- package/dist/index.mjs +93 -222
- package/dist/json-schema.cjs +364 -489
- package/dist/json-schema.d.cts +14 -0
- package/dist/json-schema.d.mts +14 -0
- package/dist/json-schema.d.ts +3 -3
- package/dist/json-schema.mjs +365 -492
- package/dist/metadata.cjs +98 -7
- package/dist/metadata.d.cts +8 -0
- package/dist/metadata.d.mts +8 -0
- package/dist/metadata.d.ts +2 -2
- package/dist/metadata.mjs +93 -7
- package/dist/predicates.cjs +98 -41
- package/dist/predicates.d.cts +77 -0
- package/dist/predicates.d.mts +77 -0
- package/dist/predicates.d.ts +25 -4
- package/dist/predicates.mjs +92 -66
- package/dist/types/index.d.cts +984 -0
- package/dist/types/index.d.mts +984 -0
- package/dist/types/index.d.ts +984 -0
- package/dist/types/json-schema.d.cts +75 -0
- package/dist/types/json-schema.d.mts +75 -0
- package/dist/types/json-schema.d.ts +75 -0
- package/dist/violations.cjs +81 -0
- package/dist/violations.d.cts +29 -0
- package/dist/violations.d.mts +29 -0
- package/dist/violations.d.ts +1 -1
- package/dist/violations.mjs +80 -0
- package/docs/RELEASING.md +66 -0
- package/docs/en/00-index.md +2 -0
- package/docs/en/01-shape-api.md +35 -10
- package/docs/en/02-metadata-and-introspection.md +2 -1
- package/docs/en/03-violations.md +1 -1
- package/docs/en/04-json-schema-export.md +5 -0
- package/docs/en/05-public-api.md +35 -3
- package/docs/en/06-common-recipes.md +2 -1
- package/docs/en/07-ai-reference.md +5 -2
- package/docs/en/08-violation-code-types.md +28 -2
- package/docs/en/09-migration.md +75 -0
- package/docs/ru/00-index.md +2 -0
- package/docs/ru/01-shape-api.md +35 -10
- package/docs/ru/02-metadata-and-introspection.md +2 -1
- package/docs/ru/03-violations.md +1 -1
- package/docs/ru/04-json-schema-export.md +5 -0
- package/docs/ru/05-public-api.md +35 -3
- package/docs/ru/06-common-recipes.md +2 -1
- package/docs/ru/07-ai-reference.md +5 -2
- package/docs/ru/08-violation-code-types.md +28 -2
- package/docs/ru/09-migration.md +76 -0
- package/docs/ru/README.md +10 -2
- package/package.json +63 -37
- package/types/index.d.ts +275 -115
- package/dist/metadata.cjs.js +0 -130
- package/dist/metadata.es.js +0 -131
package/dist/assertions.cjs
CHANGED
|
@@ -1,187 +1,284 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
2
|
+
const require_assert = require("./assert.cjs");
|
|
3
|
+
const require_checkers = require("./checkers.cjs");
|
|
4
|
+
const require_extractors = require("./extractors.cjs");
|
|
5
|
+
const require_predicates = require("./predicates.cjs");
|
|
6
|
+
//#region src/assertions.ts
|
|
7
|
+
var buildLengthConstraints = (options) => {
|
|
8
|
+
const { exact = null, max = null, min = null, range = null } = options;
|
|
9
|
+
const constraints = [];
|
|
10
|
+
if (exact !== null) constraints.push([
|
|
11
|
+
require_extractors.length,
|
|
12
|
+
require_checkers.isEqual,
|
|
13
|
+
"length.exact",
|
|
14
|
+
exact
|
|
15
|
+
]);
|
|
16
|
+
if (max !== null) constraints.push([
|
|
17
|
+
require_extractors.length,
|
|
18
|
+
require_checkers.isLte,
|
|
19
|
+
"length.max",
|
|
20
|
+
max
|
|
21
|
+
]);
|
|
22
|
+
if (min !== null) constraints.push([
|
|
23
|
+
require_extractors.length,
|
|
24
|
+
require_checkers.isGte,
|
|
25
|
+
"length.min",
|
|
26
|
+
min
|
|
27
|
+
]);
|
|
28
|
+
if (range !== null) constraints.push([
|
|
29
|
+
require_extractors.length,
|
|
30
|
+
require_checkers.inRange,
|
|
31
|
+
"length.range",
|
|
32
|
+
range
|
|
33
|
+
]);
|
|
34
|
+
return constraints;
|
|
20
35
|
};
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const constraints = [];
|
|
50
|
-
if (exact !== null) constraints.push([length, isEqual, "length.exact", exact]);
|
|
51
|
-
if (max !== null) constraints.push([length, isLte, "length.max", max]);
|
|
52
|
-
if (min !== null) constraints.push([length, isGte, "length.min", min]);
|
|
53
|
-
if (range !== null) constraints.push([length, inRange, "length.range", range]);
|
|
54
|
-
return assert.assert(
|
|
55
|
-
(value) => predicates.isArray(value) || predicates.isString(value),
|
|
56
|
-
{
|
|
57
|
-
name: "hasLength",
|
|
58
|
-
bail,
|
|
59
|
-
code: "length.unsupported-type"
|
|
60
|
-
},
|
|
61
|
-
constraints
|
|
62
|
-
);
|
|
36
|
+
var buildSizeConstraints = (options) => {
|
|
37
|
+
const { exact = null, max = null, min = null, range = null } = options;
|
|
38
|
+
const constraints = [];
|
|
39
|
+
if (exact !== null) constraints.push([
|
|
40
|
+
require_extractors.size,
|
|
41
|
+
require_checkers.isEqual,
|
|
42
|
+
"size.exact",
|
|
43
|
+
exact
|
|
44
|
+
]);
|
|
45
|
+
if (max !== null) constraints.push([
|
|
46
|
+
require_extractors.size,
|
|
47
|
+
require_checkers.isLte,
|
|
48
|
+
"size.max",
|
|
49
|
+
max
|
|
50
|
+
]);
|
|
51
|
+
if (min !== null) constraints.push([
|
|
52
|
+
require_extractors.size,
|
|
53
|
+
require_checkers.isGte,
|
|
54
|
+
"size.min",
|
|
55
|
+
min
|
|
56
|
+
]);
|
|
57
|
+
if (range !== null) constraints.push([
|
|
58
|
+
require_extractors.size,
|
|
59
|
+
require_checkers.inRange,
|
|
60
|
+
"size.range",
|
|
61
|
+
range
|
|
62
|
+
]);
|
|
63
|
+
return constraints;
|
|
63
64
|
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
65
|
+
var buildValueConstraints = (options) => {
|
|
66
|
+
const { exact = null, max = null, min = null, range = null } = options;
|
|
67
|
+
const constraints = [];
|
|
68
|
+
if (exact !== null) constraints.push([
|
|
69
|
+
(value) => value,
|
|
70
|
+
require_checkers.isEqual,
|
|
71
|
+
"number.exact",
|
|
72
|
+
exact
|
|
73
|
+
]);
|
|
74
|
+
if (max !== null) constraints.push([
|
|
75
|
+
(value) => value,
|
|
76
|
+
require_checkers.isLte,
|
|
77
|
+
"number.max",
|
|
78
|
+
max
|
|
79
|
+
]);
|
|
80
|
+
if (min !== null) constraints.push([
|
|
81
|
+
(value) => value,
|
|
82
|
+
require_checkers.isGte,
|
|
83
|
+
"number.min",
|
|
84
|
+
min
|
|
85
|
+
]);
|
|
86
|
+
if (range !== null) constraints.push([
|
|
87
|
+
(value) => value,
|
|
88
|
+
require_checkers.inRange,
|
|
89
|
+
"number.range",
|
|
90
|
+
range
|
|
91
|
+
]);
|
|
92
|
+
return constraints;
|
|
85
93
|
};
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
94
|
+
var isBoolean = /* @__PURE__ */ require_assert.assert(require_predicates.isBoolean, {
|
|
95
|
+
name: "isBoolean",
|
|
96
|
+
bail: true,
|
|
97
|
+
code: "type.boolean"
|
|
98
|
+
});
|
|
99
|
+
var isBigInt = /* @__PURE__ */ require_assert.assert(require_predicates.isBigInt, {
|
|
100
|
+
name: "isBigInt",
|
|
101
|
+
bail: true,
|
|
102
|
+
code: "type.bigint"
|
|
103
|
+
});
|
|
104
|
+
var isBlob = /* @__PURE__ */ require_assert.assert(require_predicates.isBlob, {
|
|
105
|
+
name: "isBlob",
|
|
106
|
+
bail: true,
|
|
107
|
+
code: "type.blob"
|
|
108
|
+
});
|
|
109
|
+
var isDate = /* @__PURE__ */ require_assert.assert(require_predicates.isDate, {
|
|
110
|
+
name: "isDate",
|
|
111
|
+
bail: true,
|
|
112
|
+
code: "type.date"
|
|
113
|
+
});
|
|
114
|
+
var isDefined = /* @__PURE__ */ require_assert.assert((value) => value !== void 0, {
|
|
115
|
+
name: "isDefined",
|
|
116
|
+
bail: true,
|
|
117
|
+
code: "value.defined"
|
|
118
|
+
});
|
|
119
|
+
var isEmail = /* @__PURE__ */ require_assert.assert(require_predicates.isEmail, {
|
|
120
|
+
name: "isEmail",
|
|
121
|
+
bail: true,
|
|
122
|
+
code: "string.email"
|
|
123
|
+
});
|
|
124
|
+
var isError = /* @__PURE__ */ require_assert.assert(require_predicates.isError, {
|
|
125
|
+
name: "isError",
|
|
126
|
+
bail: true,
|
|
127
|
+
code: "type.error"
|
|
128
|
+
});
|
|
129
|
+
var isFiniteNumber = /* @__PURE__ */ require_assert.assert(require_predicates.isFiniteNumber, {
|
|
130
|
+
name: "isFiniteNumber",
|
|
131
|
+
bail: true,
|
|
132
|
+
code: "number.finite"
|
|
133
|
+
});
|
|
134
|
+
var isFile = /* @__PURE__ */ require_assert.assert(require_predicates.isFile, {
|
|
135
|
+
name: "isFile",
|
|
136
|
+
bail: true,
|
|
137
|
+
code: "type.file"
|
|
138
|
+
});
|
|
139
|
+
var isFunction = /* @__PURE__ */ require_assert.assert(require_predicates.isFunction, {
|
|
140
|
+
name: "isFunction",
|
|
141
|
+
bail: true,
|
|
142
|
+
code: "type.function"
|
|
143
|
+
});
|
|
144
|
+
var isInteger = /* @__PURE__ */ require_assert.assert(require_predicates.isInteger, {
|
|
145
|
+
name: "isInteger",
|
|
146
|
+
bail: true,
|
|
147
|
+
code: "number.integer"
|
|
148
|
+
});
|
|
149
|
+
var isMap = /* @__PURE__ */ require_assert.assert(require_predicates.isMap, {
|
|
150
|
+
name: "isMap",
|
|
151
|
+
bail: true,
|
|
152
|
+
code: "type.map"
|
|
153
|
+
});
|
|
154
|
+
var isNaN = /* @__PURE__ */ require_assert.assert(require_predicates.isNaN, {
|
|
155
|
+
name: "isNaN",
|
|
156
|
+
bail: true,
|
|
157
|
+
code: "number.nan"
|
|
158
|
+
});
|
|
159
|
+
var isNull = /* @__PURE__ */ require_assert.assert(require_predicates.isNull, {
|
|
160
|
+
name: "isNull",
|
|
161
|
+
bail: true,
|
|
162
|
+
code: "type.null"
|
|
163
|
+
});
|
|
164
|
+
var isNumber = /* @__PURE__ */ require_assert.assert(require_predicates.isNumber, {
|
|
165
|
+
name: "isNumber",
|
|
166
|
+
bail: true,
|
|
167
|
+
code: "type.number"
|
|
168
|
+
});
|
|
169
|
+
var isPromiseLike = /* @__PURE__ */ require_assert.assert(require_predicates.isPromiseLike, {
|
|
170
|
+
name: "isPromiseLike",
|
|
171
|
+
bail: true,
|
|
172
|
+
code: "type.promise-like"
|
|
173
|
+
});
|
|
174
|
+
var isRegExp = /* @__PURE__ */ require_assert.assert(require_predicates.isRegExp, {
|
|
175
|
+
name: "isRegExp",
|
|
176
|
+
bail: true,
|
|
177
|
+
code: "type.regexp"
|
|
178
|
+
});
|
|
179
|
+
var isSafeInteger = /* @__PURE__ */ require_assert.assert(require_predicates.isSafeInteger, {
|
|
180
|
+
name: "isSafeInteger",
|
|
181
|
+
bail: true,
|
|
182
|
+
code: "number.safe-integer"
|
|
183
|
+
});
|
|
184
|
+
var isSet = /* @__PURE__ */ require_assert.assert(require_predicates.isSet, {
|
|
185
|
+
name: "isSet",
|
|
186
|
+
bail: true,
|
|
187
|
+
code: "type.set"
|
|
188
|
+
});
|
|
189
|
+
var isString = /* @__PURE__ */ require_assert.assert(require_predicates.isString, {
|
|
190
|
+
name: "isString",
|
|
191
|
+
bail: true,
|
|
192
|
+
code: "type.string"
|
|
193
|
+
});
|
|
194
|
+
var isSymbol = /* @__PURE__ */ require_assert.assert(require_predicates.isSymbol, {
|
|
195
|
+
name: "isSymbol",
|
|
196
|
+
bail: true,
|
|
197
|
+
code: "type.symbol"
|
|
198
|
+
});
|
|
199
|
+
var isValidDate = /* @__PURE__ */ require_assert.assert(require_predicates.isValidDate, {
|
|
200
|
+
name: "isValidDate",
|
|
201
|
+
bail: true,
|
|
202
|
+
code: "date.valid"
|
|
203
|
+
});
|
|
204
|
+
var hasLength = (options = {}) => {
|
|
205
|
+
const { bail = false } = options;
|
|
206
|
+
const constraints = buildLengthConstraints(options);
|
|
207
|
+
return /* @__PURE__ */ require_assert.createRefinement({
|
|
208
|
+
name: "hasLength",
|
|
209
|
+
bail,
|
|
210
|
+
code: "length.unsupported-type"
|
|
211
|
+
}, constraints);
|
|
212
|
+
};
|
|
213
|
+
var hasSize = (options = {}) => {
|
|
214
|
+
const { bail = false } = options;
|
|
215
|
+
const constraints = buildSizeConstraints(options);
|
|
216
|
+
return /* @__PURE__ */ require_assert.createRefinement({
|
|
217
|
+
name: "hasSize",
|
|
218
|
+
bail,
|
|
219
|
+
code: "size.unsupported-type"
|
|
220
|
+
}, constraints);
|
|
221
|
+
};
|
|
222
|
+
var hasPattern = (pattern, { bail = false } = {}) => /* @__PURE__ */ require_assert.createRefinement({
|
|
223
|
+
name: "hasPattern",
|
|
224
|
+
bail,
|
|
225
|
+
code: "string.unsupported-type"
|
|
226
|
+
}, [[
|
|
227
|
+
(value) => value,
|
|
228
|
+
require_checkers.matchesPattern,
|
|
229
|
+
"string.pattern",
|
|
230
|
+
pattern
|
|
231
|
+
]]);
|
|
232
|
+
var startsWith = (prefix, { bail = false } = {}) => /* @__PURE__ */ require_assert.createRefinement({
|
|
233
|
+
name: "startsWith",
|
|
234
|
+
bail,
|
|
235
|
+
code: "string.unsupported-type"
|
|
236
|
+
}, [[
|
|
237
|
+
(value) => value,
|
|
238
|
+
require_checkers.startsWith,
|
|
239
|
+
"string.starts-with",
|
|
240
|
+
prefix
|
|
241
|
+
]]);
|
|
242
|
+
var endsWith = (suffix, { bail = false } = {}) => /* @__PURE__ */ require_assert.createRefinement({
|
|
243
|
+
name: "endsWith",
|
|
244
|
+
bail,
|
|
245
|
+
code: "string.unsupported-type"
|
|
246
|
+
}, [[
|
|
247
|
+
(value) => value,
|
|
248
|
+
require_checkers.endsWith,
|
|
249
|
+
"string.ends-with",
|
|
250
|
+
suffix
|
|
251
|
+
]]);
|
|
252
|
+
var hasValue = (options = {}) => {
|
|
253
|
+
const { bail = false } = options;
|
|
254
|
+
const constraints = buildValueConstraints(options);
|
|
255
|
+
return /* @__PURE__ */ require_assert.createRefinement({
|
|
256
|
+
name: "hasValue",
|
|
257
|
+
bail,
|
|
258
|
+
code: "number.unsupported-type"
|
|
259
|
+
}, constraints);
|
|
155
260
|
};
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
bail = false
|
|
175
|
-
} = {}) => {
|
|
176
|
-
const haystack = predicates.isArray(values) ? values : Object.values(values);
|
|
177
|
-
return assert.assert((value) => haystack.some((item) => equalTo(item, value)), {
|
|
178
|
-
name: "oneOf",
|
|
179
|
-
bail,
|
|
180
|
-
code: "value.one-of",
|
|
181
|
-
args: [haystack]
|
|
182
|
-
});
|
|
261
|
+
var multipleOf = (step, { bail = false } = {}) => /* @__PURE__ */ require_assert.createRefinement({
|
|
262
|
+
name: "multipleOf",
|
|
263
|
+
bail,
|
|
264
|
+
code: "number.unsupported-type"
|
|
265
|
+
}, [[
|
|
266
|
+
(value) => value,
|
|
267
|
+
require_checkers.isMultipleOf,
|
|
268
|
+
"number.multiple-of",
|
|
269
|
+
step
|
|
270
|
+
]]);
|
|
271
|
+
var oneOf = (values, { equalTo = (a, b) => a === b, bail = false } = {}) => {
|
|
272
|
+
const haystack = require_predicates.isArray(values) ? values : Object.values(values);
|
|
273
|
+
return /* @__PURE__ */ require_assert.assert((value) => haystack.some((item) => equalTo(item, value)), {
|
|
274
|
+
name: "oneOf",
|
|
275
|
+
bail,
|
|
276
|
+
code: "value.one-of",
|
|
277
|
+
args: [haystack]
|
|
278
|
+
});
|
|
183
279
|
};
|
|
184
|
-
|
|
280
|
+
//#endregion
|
|
281
|
+
exports.assert = require_assert.assert;
|
|
185
282
|
exports.endsWith = endsWith;
|
|
186
283
|
exports.hasLength = hasLength;
|
|
187
284
|
exports.hasPattern = hasPattern;
|
|
@@ -193,15 +290,23 @@ exports.isBoolean = isBoolean;
|
|
|
193
290
|
exports.isDate = isDate;
|
|
194
291
|
exports.isDefined = isDefined;
|
|
195
292
|
exports.isEmail = isEmail;
|
|
293
|
+
exports.isError = isError;
|
|
196
294
|
exports.isFile = isFile;
|
|
295
|
+
exports.isFiniteNumber = isFiniteNumber;
|
|
197
296
|
exports.isFunction = isFunction;
|
|
297
|
+
exports.isInteger = isInteger;
|
|
198
298
|
exports.isMap = isMap;
|
|
199
299
|
exports.isNaN = isNaN;
|
|
200
300
|
exports.isNull = isNull;
|
|
201
301
|
exports.isNumber = isNumber;
|
|
302
|
+
exports.isPromiseLike = isPromiseLike;
|
|
303
|
+
exports.isRegExp = isRegExp;
|
|
304
|
+
exports.isSafeInteger = isSafeInteger;
|
|
202
305
|
exports.isSet = isSet;
|
|
203
306
|
exports.isString = isString;
|
|
204
307
|
exports.isSymbol = isSymbol;
|
|
308
|
+
exports.isValidDate = isValidDate;
|
|
205
309
|
exports.multipleOf = multipleOf;
|
|
206
310
|
exports.oneOf = oneOf;
|
|
311
|
+
exports.refine = require_assert.refine;
|
|
207
312
|
exports.startsWith = startsWith;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { AssertionConstraint, Guard, Refinement, Extractor, Checker } from './types/index.cjs';
|
|
2
|
+
import { assert, refine } from './assert.cjs';
|
|
3
|
+
export { assert, refine, };
|
|
4
|
+
type Defined = {} | null;
|
|
5
|
+
type EmptyOptions = Record<never, never>;
|
|
6
|
+
type BoundedAssertionOptions = {
|
|
7
|
+
exact?: number | null;
|
|
8
|
+
max?: number | null;
|
|
9
|
+
min?: number | null;
|
|
10
|
+
range?: readonly [number, number] | null;
|
|
11
|
+
bail?: boolean;
|
|
12
|
+
};
|
|
13
|
+
type OptionNumber<O, K extends PropertyKey> = K extends keyof O ? Extract<O[K], number> : never;
|
|
14
|
+
type OptionRange<O, K extends PropertyKey> = K extends keyof O ? Extract<O[K], readonly [number, number] | [number, number]> extends infer R ? R extends readonly [infer Min extends number, infer Max extends number] ? readonly [Min, Max] : never : never : never;
|
|
15
|
+
type IncludeConstraint<Value, C extends AssertionConstraint> = [Value] extends [never] ? [] : [C];
|
|
16
|
+
export declare const isBoolean: Guard<boolean, [], "type.boolean", [], "isBoolean">;
|
|
17
|
+
export declare const isBigInt: Guard<bigint, [], "type.bigint", [], "isBigInt">;
|
|
18
|
+
export declare const isBlob: Guard<Blob, [], "type.blob", [], "isBlob">;
|
|
19
|
+
export declare const isDate: Guard<Date, [], "type.date", [], "isDate">;
|
|
20
|
+
export declare const isDefined: Guard<Defined, [], "value.defined", [], "isDefined">;
|
|
21
|
+
export declare const isEmail: Guard<string, [], "string.email", [], "isEmail">;
|
|
22
|
+
export declare const isError: Guard<Error, [], "type.error", [], "isError">;
|
|
23
|
+
export declare const isFiniteNumber: Guard<number, [], "number.finite", [], "isFiniteNumber">;
|
|
24
|
+
export declare const isFile: Guard<File, [], "type.file", [], "isFile">;
|
|
25
|
+
export declare const isFunction: Guard<(...args: never[]) => unknown, [], "type.function", [], "isFunction">;
|
|
26
|
+
export declare const isInteger: Guard<number, [], "number.integer", [], "isInteger">;
|
|
27
|
+
export declare const isMap: Guard<Map<unknown, unknown>, [], "type.map", [], "isMap">;
|
|
28
|
+
export declare const isNaN: Guard<number, [], "number.nan", [], "isNaN">;
|
|
29
|
+
export declare const isNull: Guard<null, [], "type.null", [], "isNull">;
|
|
30
|
+
export declare const isNumber: Guard<number, [], "type.number", [], "isNumber">;
|
|
31
|
+
export declare const isPromiseLike: Guard<PromiseLike<unknown>, [], "type.promise-like", [], "isPromiseLike">;
|
|
32
|
+
export declare const isRegExp: Guard<RegExp, [], "type.regexp", [], "isRegExp">;
|
|
33
|
+
export declare const isSafeInteger: Guard<number, [], "number.safe-integer", [], "isSafeInteger">;
|
|
34
|
+
export declare const isSet: Guard<Set<unknown>, [], "type.set", [], "isSet">;
|
|
35
|
+
export declare const isString: Guard<string, [], "type.string", [], "isString">;
|
|
36
|
+
export declare const isSymbol: Guard<symbol, [], "type.symbol", [], "isSymbol">;
|
|
37
|
+
export declare const isValidDate: Guard<Date, [], "date.valid", [], "isValidDate">;
|
|
38
|
+
export declare const hasLength: <const O extends BoundedAssertionOptions = EmptyOptions>(options?: O) => Refinement<[...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<string | unknown[], number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "length.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<string | unknown[], number>, Checker<number, [max: OptionNumber<O, "max">]>, "length.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<string | unknown[], number>, Checker<number, [min: OptionNumber<O, "min">]>, "length.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<string | unknown[], number>, Checker<number, [range: OptionRange<O, "range">]>, "length.range", range: OptionRange<O, "range">]>] extends infer T ? T extends [...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<string | unknown[], number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "length.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<string | unknown[], number>, Checker<number, [max: OptionNumber<O, "max">]>, "length.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<string | unknown[], number>, Checker<number, [min: OptionNumber<O, "min">]>, "length.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<string | unknown[], number>, Checker<number, [range: OptionRange<O, "range">]>, "length.range", range: OptionRange<O, "range">]>] ? T extends readonly [] ? unknown : (T[number] extends infer T_1 ? T_1 extends T[number] ? T_1 extends unknown ? (value: Parameters<T_1[0]>[0]) => void : never : never : never) extends (value: infer Input) => void ? Input : never : never : never, [...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<string | unknown[], number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "length.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<string | unknown[], number>, Checker<number, [max: OptionNumber<O, "max">]>, "length.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<string | unknown[], number>, Checker<number, [min: OptionNumber<O, "min">]>, "length.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<string | unknown[], number>, Checker<number, [range: OptionRange<O, "range">]>, "length.range", range: OptionRange<O, "range">]>], "length.unsupported-type", [], "hasLength">;
|
|
39
|
+
export declare const hasSize: <const O extends BoundedAssertionOptions = EmptyOptions>(options?: O) => Refinement<[...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "size.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [max: OptionNumber<O, "max">]>, "size.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [min: OptionNumber<O, "min">]>, "size.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [range: OptionRange<O, "range">]>, "size.range", range: OptionRange<O, "range">]>] extends infer T ? T extends [...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "size.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [max: OptionNumber<O, "max">]>, "size.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [min: OptionNumber<O, "min">]>, "size.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [range: OptionRange<O, "range">]>, "size.range", range: OptionRange<O, "range">]>] ? T extends readonly [] ? unknown : (T[number] extends infer T_1 ? T_1 extends T[number] ? T_1 extends unknown ? (value: Parameters<T_1[0]>[0]) => void : never : never : never) extends (value: infer Input) => void ? Input : never : never : never, [...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "size.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [max: OptionNumber<O, "max">]>, "size.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [min: OptionNumber<O, "min">]>, "size.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [range: OptionRange<O, "range">]>, "size.range", range: OptionRange<O, "range">]>], "size.unsupported-type", [], "hasSize">;
|
|
40
|
+
export declare const hasPattern: (pattern: RegExp, { bail, }?: {
|
|
41
|
+
bail?: boolean;
|
|
42
|
+
}) => Refinement<string, readonly [readonly [(value: string) => string, (value: string, pattern: RegExp) => boolean, "string.pattern", RegExp]], "string.unsupported-type", [], "hasPattern">;
|
|
43
|
+
export declare const startsWith: (prefix: string, { bail, }?: {
|
|
44
|
+
bail?: boolean;
|
|
45
|
+
}) => Refinement<string, readonly [readonly [(value: string) => string, (value: string, prefix: string) => boolean, "string.starts-with", string]], "string.unsupported-type", [], "startsWith">;
|
|
46
|
+
export declare const endsWith: (suffix: string, { bail, }?: {
|
|
47
|
+
bail?: boolean;
|
|
48
|
+
}) => Refinement<string, readonly [readonly [(value: string) => string, (value: string, suffix: string) => boolean, "string.ends-with", string]], "string.unsupported-type", [], "endsWith">;
|
|
49
|
+
export declare const hasValue: <const O extends BoundedAssertionOptions = EmptyOptions>(options?: O) => Refinement<[...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<number, number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "number.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<number, number>, Checker<number, [max: OptionNumber<O, "max">]>, "number.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<number, number>, Checker<number, [min: OptionNumber<O, "min">]>, "number.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<number, number>, Checker<number, [range: OptionRange<O, "range">]>, "number.range", range: OptionRange<O, "range">]>] extends infer T ? T extends [...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<number, number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "number.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<number, number>, Checker<number, [max: OptionNumber<O, "max">]>, "number.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<number, number>, Checker<number, [min: OptionNumber<O, "min">]>, "number.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<number, number>, Checker<number, [range: OptionRange<O, "range">]>, "number.range", range: OptionRange<O, "range">]>] ? T extends readonly [] ? unknown : (T[number] extends infer T_1 ? T_1 extends T[number] ? T_1 extends unknown ? (value: Parameters<T_1[0]>[0]) => void : never : never : never) extends (value: infer Input) => void ? Input : never : never : never, [...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<number, number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "number.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<number, number>, Checker<number, [max: OptionNumber<O, "max">]>, "number.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<number, number>, Checker<number, [min: OptionNumber<O, "min">]>, "number.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<number, number>, Checker<number, [range: OptionRange<O, "range">]>, "number.range", range: OptionRange<O, "range">]>], "number.unsupported-type", [], "hasValue">;
|
|
50
|
+
export declare const multipleOf: <const Step extends number>(step: Step, { bail, }?: {
|
|
51
|
+
bail?: boolean;
|
|
52
|
+
}) => Refinement<number, readonly [readonly [(value: number) => number, (value: number, step: number) => boolean, "number.multiple-of", Step]], "number.unsupported-type", [], "multipleOf">;
|
|
53
|
+
export declare const oneOf: <Actual = unknown>(values: Actual[] | Record<string, Actual>, { equalTo, bail, }?: {
|
|
54
|
+
equalTo?: (a: Actual, b: unknown) => boolean;
|
|
55
|
+
bail?: boolean;
|
|
56
|
+
}) => Guard<Actual, [], "value.one-of", readonly [Actual[]], "oneOf">;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { AssertionConstraint, Guard, Refinement, Extractor, Checker } from './types/index.mjs';
|
|
2
|
+
import { assert, refine } from './assert.mjs';
|
|
3
|
+
export { assert, refine, };
|
|
4
|
+
type Defined = {} | null;
|
|
5
|
+
type EmptyOptions = Record<never, never>;
|
|
6
|
+
type BoundedAssertionOptions = {
|
|
7
|
+
exact?: number | null;
|
|
8
|
+
max?: number | null;
|
|
9
|
+
min?: number | null;
|
|
10
|
+
range?: readonly [number, number] | null;
|
|
11
|
+
bail?: boolean;
|
|
12
|
+
};
|
|
13
|
+
type OptionNumber<O, K extends PropertyKey> = K extends keyof O ? Extract<O[K], number> : never;
|
|
14
|
+
type OptionRange<O, K extends PropertyKey> = K extends keyof O ? Extract<O[K], readonly [number, number] | [number, number]> extends infer R ? R extends readonly [infer Min extends number, infer Max extends number] ? readonly [Min, Max] : never : never : never;
|
|
15
|
+
type IncludeConstraint<Value, C extends AssertionConstraint> = [Value] extends [never] ? [] : [C];
|
|
16
|
+
export declare const isBoolean: Guard<boolean, [], "type.boolean", [], "isBoolean">;
|
|
17
|
+
export declare const isBigInt: Guard<bigint, [], "type.bigint", [], "isBigInt">;
|
|
18
|
+
export declare const isBlob: Guard<Blob, [], "type.blob", [], "isBlob">;
|
|
19
|
+
export declare const isDate: Guard<Date, [], "type.date", [], "isDate">;
|
|
20
|
+
export declare const isDefined: Guard<Defined, [], "value.defined", [], "isDefined">;
|
|
21
|
+
export declare const isEmail: Guard<string, [], "string.email", [], "isEmail">;
|
|
22
|
+
export declare const isError: Guard<Error, [], "type.error", [], "isError">;
|
|
23
|
+
export declare const isFiniteNumber: Guard<number, [], "number.finite", [], "isFiniteNumber">;
|
|
24
|
+
export declare const isFile: Guard<File, [], "type.file", [], "isFile">;
|
|
25
|
+
export declare const isFunction: Guard<(...args: never[]) => unknown, [], "type.function", [], "isFunction">;
|
|
26
|
+
export declare const isInteger: Guard<number, [], "number.integer", [], "isInteger">;
|
|
27
|
+
export declare const isMap: Guard<Map<unknown, unknown>, [], "type.map", [], "isMap">;
|
|
28
|
+
export declare const isNaN: Guard<number, [], "number.nan", [], "isNaN">;
|
|
29
|
+
export declare const isNull: Guard<null, [], "type.null", [], "isNull">;
|
|
30
|
+
export declare const isNumber: Guard<number, [], "type.number", [], "isNumber">;
|
|
31
|
+
export declare const isPromiseLike: Guard<PromiseLike<unknown>, [], "type.promise-like", [], "isPromiseLike">;
|
|
32
|
+
export declare const isRegExp: Guard<RegExp, [], "type.regexp", [], "isRegExp">;
|
|
33
|
+
export declare const isSafeInteger: Guard<number, [], "number.safe-integer", [], "isSafeInteger">;
|
|
34
|
+
export declare const isSet: Guard<Set<unknown>, [], "type.set", [], "isSet">;
|
|
35
|
+
export declare const isString: Guard<string, [], "type.string", [], "isString">;
|
|
36
|
+
export declare const isSymbol: Guard<symbol, [], "type.symbol", [], "isSymbol">;
|
|
37
|
+
export declare const isValidDate: Guard<Date, [], "date.valid", [], "isValidDate">;
|
|
38
|
+
export declare const hasLength: <const O extends BoundedAssertionOptions = EmptyOptions>(options?: O) => Refinement<[...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<string | unknown[], number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "length.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<string | unknown[], number>, Checker<number, [max: OptionNumber<O, "max">]>, "length.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<string | unknown[], number>, Checker<number, [min: OptionNumber<O, "min">]>, "length.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<string | unknown[], number>, Checker<number, [range: OptionRange<O, "range">]>, "length.range", range: OptionRange<O, "range">]>] extends infer T ? T extends [...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<string | unknown[], number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "length.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<string | unknown[], number>, Checker<number, [max: OptionNumber<O, "max">]>, "length.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<string | unknown[], number>, Checker<number, [min: OptionNumber<O, "min">]>, "length.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<string | unknown[], number>, Checker<number, [range: OptionRange<O, "range">]>, "length.range", range: OptionRange<O, "range">]>] ? T extends readonly [] ? unknown : (T[number] extends infer T_1 ? T_1 extends T[number] ? T_1 extends unknown ? (value: Parameters<T_1[0]>[0]) => void : never : never : never) extends (value: infer Input) => void ? Input : never : never : never, [...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<string | unknown[], number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "length.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<string | unknown[], number>, Checker<number, [max: OptionNumber<O, "max">]>, "length.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<string | unknown[], number>, Checker<number, [min: OptionNumber<O, "min">]>, "length.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<string | unknown[], number>, Checker<number, [range: OptionRange<O, "range">]>, "length.range", range: OptionRange<O, "range">]>], "length.unsupported-type", [], "hasLength">;
|
|
39
|
+
export declare const hasSize: <const O extends BoundedAssertionOptions = EmptyOptions>(options?: O) => Refinement<[...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "size.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [max: OptionNumber<O, "max">]>, "size.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [min: OptionNumber<O, "min">]>, "size.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [range: OptionRange<O, "range">]>, "size.range", range: OptionRange<O, "range">]>] extends infer T ? T extends [...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "size.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [max: OptionNumber<O, "max">]>, "size.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [min: OptionNumber<O, "min">]>, "size.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [range: OptionRange<O, "range">]>, "size.range", range: OptionRange<O, "range">]>] ? T extends readonly [] ? unknown : (T[number] extends infer T_1 ? T_1 extends T[number] ? T_1 extends unknown ? (value: Parameters<T_1[0]>[0]) => void : never : never : never) extends (value: infer Input) => void ? Input : never : never : never, [...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "size.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [max: OptionNumber<O, "max">]>, "size.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [min: OptionNumber<O, "min">]>, "size.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<Map<unknown, unknown> | Set<unknown>, number>, Checker<number, [range: OptionRange<O, "range">]>, "size.range", range: OptionRange<O, "range">]>], "size.unsupported-type", [], "hasSize">;
|
|
40
|
+
export declare const hasPattern: (pattern: RegExp, { bail, }?: {
|
|
41
|
+
bail?: boolean;
|
|
42
|
+
}) => Refinement<string, readonly [readonly [(value: string) => string, (value: string, pattern: RegExp) => boolean, "string.pattern", RegExp]], "string.unsupported-type", [], "hasPattern">;
|
|
43
|
+
export declare const startsWith: (prefix: string, { bail, }?: {
|
|
44
|
+
bail?: boolean;
|
|
45
|
+
}) => Refinement<string, readonly [readonly [(value: string) => string, (value: string, prefix: string) => boolean, "string.starts-with", string]], "string.unsupported-type", [], "startsWith">;
|
|
46
|
+
export declare const endsWith: (suffix: string, { bail, }?: {
|
|
47
|
+
bail?: boolean;
|
|
48
|
+
}) => Refinement<string, readonly [readonly [(value: string) => string, (value: string, suffix: string) => boolean, "string.ends-with", string]], "string.unsupported-type", [], "endsWith">;
|
|
49
|
+
export declare const hasValue: <const O extends BoundedAssertionOptions = EmptyOptions>(options?: O) => Refinement<[...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<number, number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "number.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<number, number>, Checker<number, [max: OptionNumber<O, "max">]>, "number.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<number, number>, Checker<number, [min: OptionNumber<O, "min">]>, "number.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<number, number>, Checker<number, [range: OptionRange<O, "range">]>, "number.range", range: OptionRange<O, "range">]>] extends infer T ? T extends [...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<number, number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "number.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<number, number>, Checker<number, [max: OptionNumber<O, "max">]>, "number.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<number, number>, Checker<number, [min: OptionNumber<O, "min">]>, "number.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<number, number>, Checker<number, [range: OptionRange<O, "range">]>, "number.range", range: OptionRange<O, "range">]>] ? T extends readonly [] ? unknown : (T[number] extends infer T_1 ? T_1 extends T[number] ? T_1 extends unknown ? (value: Parameters<T_1[0]>[0]) => void : never : never : never) extends (value: infer Input) => void ? Input : never : never : never, [...IncludeConstraint<OptionNumber<O, "exact">, readonly [ Extractor<number, number>, Checker<number, [exact: OptionNumber<O, "exact">]>, "number.exact", exact: OptionNumber<O, "exact">]>, ...IncludeConstraint<OptionNumber<O, "max">, readonly [ Extractor<number, number>, Checker<number, [max: OptionNumber<O, "max">]>, "number.max", max: OptionNumber<O, "max">]>, ...IncludeConstraint<OptionNumber<O, "min">, readonly [ Extractor<number, number>, Checker<number, [min: OptionNumber<O, "min">]>, "number.min", min: OptionNumber<O, "min">]>, ...IncludeConstraint<OptionRange<O, "range">, readonly [ Extractor<number, number>, Checker<number, [range: OptionRange<O, "range">]>, "number.range", range: OptionRange<O, "range">]>], "number.unsupported-type", [], "hasValue">;
|
|
50
|
+
export declare const multipleOf: <const Step extends number>(step: Step, { bail, }?: {
|
|
51
|
+
bail?: boolean;
|
|
52
|
+
}) => Refinement<number, readonly [readonly [(value: number) => number, (value: number, step: number) => boolean, "number.multiple-of", Step]], "number.unsupported-type", [], "multipleOf">;
|
|
53
|
+
export declare const oneOf: <Actual = unknown>(values: Actual[] | Record<string, Actual>, { equalTo, bail, }?: {
|
|
54
|
+
equalTo?: (a: Actual, b: unknown) => boolean;
|
|
55
|
+
bail?: boolean;
|
|
56
|
+
}) => Guard<Actual, [], "value.one-of", readonly [Actual[]], "oneOf">;
|