@cleverbrush/schema 0.0.0-beta-20260410073748
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/README.md +1409 -0
- package/dist/builders/AnySchemaBuilder.d.ts +116 -0
- package/dist/builders/AnySchemaBuilder.js +2 -0
- package/dist/builders/AnySchemaBuilder.js.map +1 -0
- package/dist/builders/ArraySchemaBuilder.d.ts +214 -0
- package/dist/builders/ArraySchemaBuilder.js +2 -0
- package/dist/builders/ArraySchemaBuilder.js.map +1 -0
- package/dist/builders/BooleanSchemaBuilder.d.ts +146 -0
- package/dist/builders/BooleanSchemaBuilder.js +2 -0
- package/dist/builders/BooleanSchemaBuilder.js.map +1 -0
- package/dist/builders/DateSchemaBuilder.d.ts +277 -0
- package/dist/builders/DateSchemaBuilder.js +2 -0
- package/dist/builders/DateSchemaBuilder.js.map +1 -0
- package/dist/builders/ExternSchemaBuilder.d.ts +200 -0
- package/dist/builders/ExternSchemaBuilder.js +2 -0
- package/dist/builders/ExternSchemaBuilder.js.map +1 -0
- package/dist/builders/FunctionSchemaBuilder.d.ts +246 -0
- package/dist/builders/FunctionSchemaBuilder.js +2 -0
- package/dist/builders/FunctionSchemaBuilder.js.map +1 -0
- package/dist/builders/LazySchemaBuilder.d.ts +167 -0
- package/dist/builders/NullSchemaBuilder.d.ts +162 -0
- package/dist/builders/NumberSchemaBuilder.d.ts +273 -0
- package/dist/builders/NumberSchemaBuilder.js +2 -0
- package/dist/builders/NumberSchemaBuilder.js.map +1 -0
- package/dist/builders/ObjectSchemaBuilder.d.ts +517 -0
- package/dist/builders/ObjectSchemaBuilder.js +2 -0
- package/dist/builders/ObjectSchemaBuilder.js.map +1 -0
- package/dist/builders/PropertyValidationResult.d.ts +68 -0
- package/dist/builders/RecordSchemaBuilder.d.ts +341 -0
- package/dist/builders/RecordSchemaBuilder.js +2 -0
- package/dist/builders/RecordSchemaBuilder.js.map +1 -0
- package/dist/builders/SchemaBuilder.d.ts +947 -0
- package/dist/builders/StringSchemaBuilder.d.ts +291 -0
- package/dist/builders/StringSchemaBuilder.js +2 -0
- package/dist/builders/StringSchemaBuilder.js.map +1 -0
- package/dist/builders/TupleSchemaBuilder.d.ts +248 -0
- package/dist/builders/TupleSchemaBuilder.js +2 -0
- package/dist/builders/TupleSchemaBuilder.js.map +1 -0
- package/dist/builders/UnionSchemaBuilder.d.ts +227 -0
- package/dist/builders/UnionSchemaBuilder.js +2 -0
- package/dist/builders/UnionSchemaBuilder.js.map +1 -0
- package/dist/chunk-CTP4RHDG.js +2 -0
- package/dist/chunk-CTP4RHDG.js.map +1 -0
- package/dist/chunk-FWUEUW2N.js +2 -0
- package/dist/chunk-FWUEUW2N.js.map +1 -0
- package/dist/chunk-IJ6FO37G.js +2 -0
- package/dist/chunk-IJ6FO37G.js.map +1 -0
- package/dist/chunk-KESLT5EE.js +2 -0
- package/dist/chunk-KESLT5EE.js.map +1 -0
- package/dist/chunk-KFTO7TMB.js +2 -0
- package/dist/chunk-KFTO7TMB.js.map +1 -0
- package/dist/chunk-MKAYFPAR.js +2 -0
- package/dist/chunk-MKAYFPAR.js.map +1 -0
- package/dist/chunk-NXPH3ZUW.js +2 -0
- package/dist/chunk-NXPH3ZUW.js.map +1 -0
- package/dist/chunk-OOPF7RXS.js +2 -0
- package/dist/chunk-OOPF7RXS.js.map +1 -0
- package/dist/chunk-S5TC6NSU.js +2 -0
- package/dist/chunk-S5TC6NSU.js.map +1 -0
- package/dist/chunk-YWBNVHR6.js +2 -0
- package/dist/chunk-YWBNVHR6.js.map +1 -0
- package/dist/chunk-Z72HXYKX.js +2 -0
- package/dist/chunk-Z72HXYKX.js.map +1 -0
- package/dist/chunk-Z7QZ7IXT.js +2 -0
- package/dist/chunk-Z7QZ7IXT.js.map +1 -0
- package/dist/chunk-ZAN4ZHCJ.js +2 -0
- package/dist/chunk-ZAN4ZHCJ.js.map +1 -0
- package/dist/chunk-ZUPYV5TI.js +2 -0
- package/dist/chunk-ZUPYV5TI.js.map +1 -0
- package/dist/core.d.ts +23 -0
- package/dist/core.js +2 -0
- package/dist/core.js.map +1 -0
- package/dist/extension.d.ts +413 -0
- package/dist/extensions/array.d.ts +112 -0
- package/dist/extensions/enum.d.ts +190 -0
- package/dist/extensions/index.d.ts +108 -0
- package/dist/extensions/nullable.d.ts +26 -0
- package/dist/extensions/number.d.ts +228 -0
- package/dist/extensions/string.d.ts +332 -0
- package/dist/extensions/util.d.ts +45 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/transaction.d.ts +69 -0
- package/package.json +104 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { type BRAND, type PreprocessorEntry, SchemaBuilder, type ValidationContext, type ValidationErrorMessageProvider, type ValidationResult, type ValidatorEntry } from './SchemaBuilder.js';
|
|
2
|
+
type NumberSchemaBuilderCreateProps<T = number, R extends boolean = true> = Partial<ReturnType<NumberSchemaBuilder<T, R, any>['introspect']>>;
|
|
3
|
+
/**
|
|
4
|
+
* Number schema builder class. Allows to create Number schemas.
|
|
5
|
+
* Can be required or optional, can be restricted to be equal to a certain value,
|
|
6
|
+
* can be restricted to be in a certain range, can be restricted to be integer.
|
|
7
|
+
*
|
|
8
|
+
* **NOTE** this class is exported only to give opportunity to extend it
|
|
9
|
+
* by inheriting. It is not recommended to create an instance of this class
|
|
10
|
+
* directly. Use {@link number | number()} function instead.
|
|
11
|
+
*
|
|
12
|
+
* @example ```ts
|
|
13
|
+
* const schema = number().equals(42);
|
|
14
|
+
* const result = schema.validate(42);
|
|
15
|
+
* // result.valid === true
|
|
16
|
+
* // result.object === 42
|
|
17
|
+
* ```
|
|
18
|
+
* @example ```ts
|
|
19
|
+
* const schema = number();
|
|
20
|
+
* const result = schema.validate('42');
|
|
21
|
+
* // result.valid === false
|
|
22
|
+
* // result.errors[0].message === 'is expected to be a number'
|
|
23
|
+
* ```
|
|
24
|
+
* @example ```ts
|
|
25
|
+
* const schema = number().min(0).max(100);
|
|
26
|
+
* const result = schema.validate(42);
|
|
27
|
+
* // result.valid === true
|
|
28
|
+
* // result.object === 42
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @example ```ts
|
|
32
|
+
* const schema = number().min(0).max(100);
|
|
33
|
+
* const result = schema.validate(142.5);
|
|
34
|
+
* // result.valid === false
|
|
35
|
+
* // result.errors[0].message === 'is expected to be less than or equal to 100'
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @see {@link number}
|
|
39
|
+
*/
|
|
40
|
+
export declare class NumberSchemaBuilder<TResult = number, TRequired extends boolean = true, TNullable extends boolean = false, THasDefault extends boolean = false, TExtensions = {}> extends SchemaBuilder<TResult, TRequired, TNullable, THasDefault, TExtensions> {
|
|
41
|
+
#private;
|
|
42
|
+
/**
|
|
43
|
+
* @hidden
|
|
44
|
+
*/
|
|
45
|
+
static create(props: NumberSchemaBuilderCreateProps): NumberSchemaBuilder<number, true, false, false, {}>;
|
|
46
|
+
protected constructor(props: NumberSchemaBuilderCreateProps);
|
|
47
|
+
introspect(): {
|
|
48
|
+
/**
|
|
49
|
+
* Min valid value (if defined).
|
|
50
|
+
*/
|
|
51
|
+
min: number | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* Min valid value error message provider.
|
|
54
|
+
* If not provided, default error message will be used.
|
|
55
|
+
*/
|
|
56
|
+
minValidationErrorMessageProvider: ValidationErrorMessageProvider<NumberSchemaBuilder<TResult, TRequired, false, false, {}>>;
|
|
57
|
+
/**
|
|
58
|
+
* Max valid value (if defined).
|
|
59
|
+
*/
|
|
60
|
+
max: number | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Max valid value error message provider.
|
|
63
|
+
* If not provided, default error message will be used.
|
|
64
|
+
*/
|
|
65
|
+
maxValidationErrorMessageProvider: ValidationErrorMessageProvider<NumberSchemaBuilder<TResult, TRequired, false, false, {}>>;
|
|
66
|
+
/**
|
|
67
|
+
* Make sure that object is not `NaN`. `true` by default.
|
|
68
|
+
*/
|
|
69
|
+
ensureNotNaN: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* EnsureNotNaN error message provider.
|
|
72
|
+
* If not provided, default error message will be used.
|
|
73
|
+
*/
|
|
74
|
+
ensureNotNaNErrorMessageProvider: ValidationErrorMessageProvider<NumberSchemaBuilder<TResult, TRequired, false, false, {}>>;
|
|
75
|
+
/**
|
|
76
|
+
* Make sure that object is not different kinds of `infinity`. `true` by default.
|
|
77
|
+
*/
|
|
78
|
+
ensureIsFinite: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* EnsureIsFinite error message provider.
|
|
81
|
+
*/
|
|
82
|
+
ensureIsFiniteErrorMessageProvider: ValidationErrorMessageProvider<NumberSchemaBuilder<TResult, TRequired, false, false, {}>>;
|
|
83
|
+
/**
|
|
84
|
+
* If set, restrict object to be equal to a certain value.
|
|
85
|
+
*/
|
|
86
|
+
equalsTo: number | undefined;
|
|
87
|
+
/**
|
|
88
|
+
* EqualsTo error message provider.
|
|
89
|
+
* If not provided, default error message will be used.
|
|
90
|
+
*/
|
|
91
|
+
equalsToValidationErrorMessageProvider: ValidationErrorMessageProvider<NumberSchemaBuilder<TResult, TRequired, false, false, {}>>;
|
|
92
|
+
/**
|
|
93
|
+
* Allow only integer values (floating point values will be rejected
|
|
94
|
+
* as invalid)
|
|
95
|
+
*/
|
|
96
|
+
isInteger: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* EnsureIsInteger error message provider.
|
|
99
|
+
*/
|
|
100
|
+
ensureIsIntegerErrorMessageProvider: ValidationErrorMessageProvider<NumberSchemaBuilder<TResult, TRequired, false, false, {}>>;
|
|
101
|
+
/**
|
|
102
|
+
* Array of preprocessor functions
|
|
103
|
+
*/
|
|
104
|
+
preprocessors: PreprocessorEntry<TResult>[];
|
|
105
|
+
/**
|
|
106
|
+
* Array of validator functions
|
|
107
|
+
*/
|
|
108
|
+
validators: ValidatorEntry<TResult>[];
|
|
109
|
+
type: string;
|
|
110
|
+
isRequired: boolean;
|
|
111
|
+
isNullable: boolean;
|
|
112
|
+
isReadonly: boolean;
|
|
113
|
+
requiredValidationErrorMessageProvider: ValidationErrorMessageProvider<SchemaBuilder<any, any, any, any, any>>;
|
|
114
|
+
extensions: {
|
|
115
|
+
[x: string]: unknown;
|
|
116
|
+
};
|
|
117
|
+
hasDefault: boolean;
|
|
118
|
+
defaultValue: TResult | (() => TResult) | undefined;
|
|
119
|
+
description: string | undefined;
|
|
120
|
+
hasCatch: boolean;
|
|
121
|
+
catchValue: TResult | (() => TResult) | undefined;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* @inheritdoc
|
|
125
|
+
*/
|
|
126
|
+
hasType<T>(_notUsed?: T): NumberSchemaBuilder<T, true, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
127
|
+
/**
|
|
128
|
+
* @inheritdoc
|
|
129
|
+
*/
|
|
130
|
+
clearHasType(): NumberSchemaBuilder<number, TRequired, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
131
|
+
/** {@inheritDoc SchemaBuilder.validate} */
|
|
132
|
+
validate(object: TResult, context?: ValidationContext): ValidationResult<TResult>;
|
|
133
|
+
/** {@inheritDoc SchemaBuilder.validateAsync} */
|
|
134
|
+
validateAsync(object: TResult, context?: ValidationContext): Promise<ValidationResult<TResult>>;
|
|
135
|
+
/**
|
|
136
|
+
* Performs synchronous validation of number schema over `object`.
|
|
137
|
+
* Throws if any preprocessor, validator, or error message provider returns a Promise.
|
|
138
|
+
* @param context Optional `ValidationContext` settings.
|
|
139
|
+
*/
|
|
140
|
+
protected _validate(object: TResult, context?: ValidationContext): ValidationResult<TResult>;
|
|
141
|
+
/**
|
|
142
|
+
* Performs async validation of number schema over `object`.
|
|
143
|
+
* Supports async preprocessors, validators, and error message providers.
|
|
144
|
+
* @param context Optional `ValidationContext` settings.
|
|
145
|
+
*/
|
|
146
|
+
protected _validateAsync(object: TResult, context?: ValidationContext): Promise<ValidationResult<TResult>>;
|
|
147
|
+
protected createFromProps<T, TReq extends boolean>(props: NumberSchemaBuilderCreateProps<T, TReq>): this;
|
|
148
|
+
/**
|
|
149
|
+
* Restricts number to be equal to `value`.
|
|
150
|
+
*/
|
|
151
|
+
equals<T extends number>(value: T,
|
|
152
|
+
/**
|
|
153
|
+
* Custom error message provider.
|
|
154
|
+
*/
|
|
155
|
+
errorMessage?: ValidationErrorMessageProvider<NumberSchemaBuilder<TResult, TRequired>>): NumberSchemaBuilder<T, TRequired, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
156
|
+
/**
|
|
157
|
+
* Clear `equals()` call.
|
|
158
|
+
*/
|
|
159
|
+
clearEquals(): NumberSchemaBuilder<number, TRequired, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
160
|
+
/**
|
|
161
|
+
* @deprecated Use {@link clearIsInteger} instead.
|
|
162
|
+
* Float values will be considered as valid after this call.
|
|
163
|
+
*/
|
|
164
|
+
isFloat(): NumberSchemaBuilder<TResult, TRequired, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
165
|
+
/**
|
|
166
|
+
* Clear `isInteger()` call.
|
|
167
|
+
*/
|
|
168
|
+
clearIsInteger(): NumberSchemaBuilder<TResult, TRequired, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
169
|
+
/**
|
|
170
|
+
* Only integer values will be considered as valid after this call.
|
|
171
|
+
*/
|
|
172
|
+
isInteger(
|
|
173
|
+
/**
|
|
174
|
+
* Custom error message provider.
|
|
175
|
+
*/
|
|
176
|
+
errorMessage?: ValidationErrorMessageProvider<NumberSchemaBuilder<TResult, TRequired>>): NumberSchemaBuilder<TResult, TRequired, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
177
|
+
/**
|
|
178
|
+
* @hidden
|
|
179
|
+
*/
|
|
180
|
+
required(errorMessage?: ValidationErrorMessageProvider): NumberSchemaBuilder<TResult, true, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
181
|
+
/**
|
|
182
|
+
* @hidden
|
|
183
|
+
*/
|
|
184
|
+
optional(): NumberSchemaBuilder<TResult, false, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
185
|
+
/**
|
|
186
|
+
* @hidden
|
|
187
|
+
*/
|
|
188
|
+
default(value: TResult | (() => TResult)): NumberSchemaBuilder<TResult, true, TNullable, true, TExtensions> & TExtensions;
|
|
189
|
+
/**
|
|
190
|
+
* @hidden
|
|
191
|
+
*/
|
|
192
|
+
clearDefault(): NumberSchemaBuilder<TResult, TRequired, TNullable, false, TExtensions> & TExtensions;
|
|
193
|
+
/**
|
|
194
|
+
* @hidden
|
|
195
|
+
*/
|
|
196
|
+
brand<TBrand extends string | symbol>(_name?: TBrand): NumberSchemaBuilder<TResult & {
|
|
197
|
+
readonly [K in BRAND]: TBrand;
|
|
198
|
+
}, TRequired, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
199
|
+
/**
|
|
200
|
+
* Marks the inferred type as `Readonly<number>`. Since numbers are
|
|
201
|
+
* already immutable this is an identity operation, but it sets the
|
|
202
|
+
* `isReadonly` introspection flag for tooling consistency.
|
|
203
|
+
*
|
|
204
|
+
* @see {@link SchemaBuilder.readonly}
|
|
205
|
+
*/
|
|
206
|
+
readonly(): NumberSchemaBuilder<Readonly<TResult>, TRequired, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
207
|
+
/**
|
|
208
|
+
* Do not accept NaN value
|
|
209
|
+
*/
|
|
210
|
+
notNaN(
|
|
211
|
+
/**
|
|
212
|
+
* Custom error message provider.
|
|
213
|
+
*/
|
|
214
|
+
errorMessage?: ValidationErrorMessageProvider<NumberSchemaBuilder<TResult, TRequired>>): NumberSchemaBuilder<TResult, TRequired, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
215
|
+
/**
|
|
216
|
+
* Consider NaN value as valid
|
|
217
|
+
*/
|
|
218
|
+
canBeNaN(): NumberSchemaBuilder<TResult, TRequired, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
219
|
+
/**
|
|
220
|
+
* Do not accept `Infinity`.
|
|
221
|
+
*/
|
|
222
|
+
isFinite(
|
|
223
|
+
/**
|
|
224
|
+
* Custom error message provider.
|
|
225
|
+
*/
|
|
226
|
+
errorMessage?: ValidationErrorMessageProvider<NumberSchemaBuilder<TResult, TRequired>>): NumberSchemaBuilder<TResult, TRequired, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
227
|
+
/**
|
|
228
|
+
* Consider `Infinity` as valid.
|
|
229
|
+
*/
|
|
230
|
+
canBeInfinite(): NumberSchemaBuilder<TResult, TRequired, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
231
|
+
/**
|
|
232
|
+
* Restrict number to be at least `minValue`.
|
|
233
|
+
*/
|
|
234
|
+
min(minValue: number,
|
|
235
|
+
/**
|
|
236
|
+
* Custom error message provider.
|
|
237
|
+
*/
|
|
238
|
+
errorMessage?: ValidationErrorMessageProvider<NumberSchemaBuilder<TResult, TRequired>>): NumberSchemaBuilder<TResult, TRequired, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
239
|
+
/**
|
|
240
|
+
* Clear `min()` call.
|
|
241
|
+
*/
|
|
242
|
+
clearMin(): NumberSchemaBuilder<TResult, TRequired, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
243
|
+
/**
|
|
244
|
+
* Restrict number to be no more than `maxValue`.
|
|
245
|
+
*/
|
|
246
|
+
max(maxValue: number,
|
|
247
|
+
/**
|
|
248
|
+
* Custom error message provider.
|
|
249
|
+
*/
|
|
250
|
+
errorMessage?: ValidationErrorMessageProvider<NumberSchemaBuilder<TResult, TRequired>>): NumberSchemaBuilder<TResult, TRequired, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
251
|
+
/**
|
|
252
|
+
* Clear `max()` call.
|
|
253
|
+
*/
|
|
254
|
+
clearMax(): NumberSchemaBuilder<TResult, TRequired, TNullable, THasDefault, TExtensions> & TExtensions;
|
|
255
|
+
/**
|
|
256
|
+
* @hidden
|
|
257
|
+
*/
|
|
258
|
+
nullable(): NumberSchemaBuilder<TResult, TRequired, true, THasDefault, TExtensions> & TExtensions;
|
|
259
|
+
/**
|
|
260
|
+
* @hidden
|
|
261
|
+
*/
|
|
262
|
+
notNullable(): NumberSchemaBuilder<TResult, TRequired, false, THasDefault, TExtensions> & TExtensions;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Creates a number schema restricted to `equals` value.
|
|
266
|
+
* @param equals string value
|
|
267
|
+
*/
|
|
268
|
+
export declare function number<T extends number>(equals: T): NumberSchemaBuilder<T, true>;
|
|
269
|
+
/**
|
|
270
|
+
* Creates a number schema.
|
|
271
|
+
*/
|
|
272
|
+
export declare function number(): NumberSchemaBuilder<number, true>;
|
|
273
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|