exisjs 0.9.1 → 0.9.2
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/config/config.d.ts.map +1 -1
- package/dist/config/config.js +2 -1
- package/dist/config/config.js.map +1 -1
- package/dist/config/types.d.ts +5 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/docs/content/config.mdx +3 -1
- package/dist/docs/content/validation.mdx +33 -11
- package/dist/docs/reference/config.mdx +1 -0
- package/dist/docs/reference/sanitize.mdx +129 -134
- package/dist/docs/reference/validator.mdx +8 -3
- package/dist/router/route-scanner.d.ts +12 -4
- package/dist/router/route-scanner.d.ts.map +1 -1
- package/dist/router/route-scanner.js +46 -31
- package/dist/router/route-scanner.js.map +1 -1
- package/dist/sanitize/index.d.ts +29 -3
- package/dist/sanitize/index.d.ts.map +1 -1
- package/dist/sanitize/index.js +91 -32
- package/dist/sanitize/index.js.map +1 -1
- package/dist/server/adapters/bun-adapter.d.ts +1 -1
- package/dist/server/adapters/bun-adapter.d.ts.map +1 -1
- package/dist/server/adapters/bun-adapter.js.map +1 -1
- package/dist/server/bootstrapper.d.ts.map +1 -1
- package/dist/server/bootstrapper.js +1 -1
- package/dist/server/bootstrapper.js.map +1 -1
- package/dist/validator/builder.d.ts +12 -1
- package/dist/validator/builder.d.ts.map +1 -1
- package/dist/validator/builder.js +63 -24
- package/dist/validator/builder.js.map +1 -1
- package/dist/validator/compile.d.ts +7 -2
- package/dist/validator/compile.d.ts.map +1 -1
- package/dist/validator/compile.js +85 -54
- package/dist/validator/compile.js.map +1 -1
- package/dist/validator/engine.d.ts +58 -7
- package/dist/validator/engine.d.ts.map +1 -1
- package/dist/validator/engine.js +432 -525
- package/dist/validator/engine.js.map +1 -1
- package/dist/validator/error.d.ts.map +1 -1
- package/dist/validator/error.js +7 -0
- package/dist/validator/error.js.map +1 -1
- package/dist/validator/rules.d.ts +66 -7
- package/dist/validator/rules.d.ts.map +1 -1
- package/dist/validator/rules.js +435 -109
- package/dist/validator/rules.js.map +1 -1
- package/dist/validator/tex-types.d.ts +15 -0
- package/dist/validator/tex-types.d.ts.map +1 -1
- package/dist/validator/tex-types.js +127 -64
- package/dist/validator/tex-types.js.map +1 -1
- package/dist/validator/text.d.ts +2 -0
- package/dist/validator/text.d.ts.map +1 -1
- package/dist/validator/text.js +31 -13
- package/dist/validator/text.js.map +1 -1
- package/dist/validator/types.d.ts +15 -0
- package/dist/validator/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/sanitize/sanitize.d.ts +0 -33
- package/dist/sanitize/sanitize.d.ts.map +0 -1
- package/dist/sanitize/sanitize.js +0 -104
- package/dist/sanitize/sanitize.js.map +0 -1
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
import { type ResolveSchema } from './tex-types';
|
|
2
|
+
import { ValidatorError } from './error';
|
|
3
|
+
import type { ValidationErrorDescriptor } from './types';
|
|
4
|
+
/** Result of `safeParse()`: the data, or the errors instead of a throw. */
|
|
5
|
+
export type SafeParseResult<T> = {
|
|
6
|
+
success: true;
|
|
7
|
+
data: T;
|
|
8
|
+
errors?: undefined;
|
|
9
|
+
error?: undefined;
|
|
10
|
+
} | {
|
|
11
|
+
success: false;
|
|
12
|
+
data?: undefined;
|
|
13
|
+
errors: ValidationErrorDescriptor[];
|
|
14
|
+
error: ValidatorError;
|
|
15
|
+
};
|
|
2
16
|
/**
|
|
3
17
|
* The rule string for one field of an object schema. Shared by `tex.object`,
|
|
4
|
-
* `tex.array` and `extend` so a nested schema
|
|
5
|
-
* `nullable()` modifiers on every path.
|
|
18
|
+
* `tex.array`, `tex.record`, `tex.union` and `extend` so a nested schema
|
|
19
|
+
* keeps its `optional()` / `nullable()` modifiers on every path.
|
|
6
20
|
*/
|
|
7
21
|
export declare function fieldRule(key: string, value: unknown): string;
|
|
8
22
|
export declare class TexEngine<T = any> {
|
|
@@ -10,29 +24,49 @@ export declare class TexEngine<T = any> {
|
|
|
10
24
|
private rawSchema;
|
|
11
25
|
private validator;
|
|
12
26
|
private strict;
|
|
27
|
+
private _queryValidator?;
|
|
13
28
|
readonly _type: T;
|
|
14
29
|
_isOptional: boolean;
|
|
15
30
|
_isNullable: boolean;
|
|
16
|
-
private
|
|
31
|
+
private _objectRules;
|
|
32
|
+
/** @internal Read by the rule compiler when this schema is nested */
|
|
33
|
+
_objectCheck?: (v: any) => any;
|
|
17
34
|
constructor(schema: Record<string, string>, rawSchema: Record<string, any>, strict?: boolean, isOptional?: boolean);
|
|
18
35
|
private _fieldValidators?;
|
|
19
36
|
/**
|
|
20
37
|
* The compiled validator stops at the first problem, which keeps valid
|
|
21
|
-
* requests fast. Once a parse has failed, every
|
|
22
|
-
*
|
|
38
|
+
* requests fast. Once a parse has failed, every field is checked on its
|
|
39
|
+
* own, descending into nested objects, array items and record values, so
|
|
40
|
+
* the response lists every failing value (capped).
|
|
23
41
|
*/
|
|
24
42
|
private collectErrors;
|
|
25
|
-
/**
|
|
26
|
-
|
|
43
|
+
/** @internal Checks each field on its own; used after a failed parse */
|
|
44
|
+
_collectFields(data: Record<string, any>, query?: boolean): ValidationErrorDescriptor[];
|
|
27
45
|
getCompiledSchema(): Record<string, string>;
|
|
28
46
|
/** A copy with another shape that keeps strictness and modifiers */
|
|
29
47
|
private derive;
|
|
48
|
+
/** A copy with the same shape, keeping refine() rules */
|
|
49
|
+
private copy;
|
|
30
50
|
/** The field may be left out. */
|
|
31
51
|
optional(): TexEngine<T | undefined> & {
|
|
32
52
|
readonly __isOptional: true;
|
|
33
53
|
};
|
|
34
54
|
/** The field may be `null`. */
|
|
35
55
|
nullable(): TexEngine<T | null>;
|
|
56
|
+
/**
|
|
57
|
+
* A check across fields, run once every field is valid. `path` names the
|
|
58
|
+
* field the error is reported on (default: the object itself).
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* tex.object({ password: tex.string(), confirm: tex.string() })
|
|
63
|
+
* .refine((d) => d.password === d.confirm, { message: 'Passwords must match', path: 'confirm' })
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
refine(fn: (data: T) => boolean, message?: string | ((data: T) => string) | {
|
|
67
|
+
message?: string | ((data: T) => string);
|
|
68
|
+
path?: string;
|
|
69
|
+
}): TexEngine<T>;
|
|
36
70
|
/** The field may be left out or be `null`. */
|
|
37
71
|
nullish(): TexEngine<T | null | undefined> & {
|
|
38
72
|
readonly __isOptional: true;
|
|
@@ -43,8 +77,17 @@ export declare class TexEngine<T = any> {
|
|
|
43
77
|
transform<Out>(fn: (val: T) => Out): TexTransformedEngine<T, Out>;
|
|
44
78
|
pick<K extends keyof T>(keys: K[]): TexEngine<Pick<T, K>>;
|
|
45
79
|
omit<K extends keyof T>(keys: K[]): TexEngine<Omit<T, K>>;
|
|
80
|
+
/**
|
|
81
|
+
* Validates `data` and returns a new object with the declared fields only.
|
|
82
|
+
* The input is never modified. Throws `ValidatorError` listing every
|
|
83
|
+
* failing field.
|
|
84
|
+
*/
|
|
46
85
|
parse(data: any): T;
|
|
86
|
+
/** Like `parse()`, but returns `{ success, data }` or `{ success, errors }`. */
|
|
87
|
+
safeParse(data: any): SafeParseResult<T>;
|
|
88
|
+
/** Runs `parse()`, then every `refineAsync()` rule, nested ones included. */
|
|
47
89
|
parseAsync(data: any): Promise<T>;
|
|
90
|
+
safeParseAsync(data: any): Promise<SafeParseResult<T>>;
|
|
48
91
|
toMongoSchema(): Record<string, any>;
|
|
49
92
|
toOpenApi(): Record<string, any>;
|
|
50
93
|
}
|
|
@@ -54,7 +97,9 @@ export declare class TexTransformedEngine<In, Out> {
|
|
|
54
97
|
readonly _type: Out;
|
|
55
98
|
constructor(inner: TexEngine<In>, transformFn: (val: In) => Out);
|
|
56
99
|
parse(data: any): Out;
|
|
100
|
+
safeParse(data: any): SafeParseResult<Out>;
|
|
57
101
|
parseAsync(data: any): Promise<Out>;
|
|
102
|
+
safeParseAsync(data: any): Promise<SafeParseResult<Out>>;
|
|
58
103
|
toOpenApi(): Record<string, any>;
|
|
59
104
|
}
|
|
60
105
|
export declare class TexDiscriminatedUnionEngine<Discriminator extends string, Variants extends (TexEngine<any> | Record<string, any>)[]> {
|
|
@@ -62,9 +107,15 @@ export declare class TexDiscriminatedUnionEngine<Discriminator extends string, V
|
|
|
62
107
|
readonly variants: Variants;
|
|
63
108
|
readonly _type: Variants[number]['_type'];
|
|
64
109
|
private engines;
|
|
110
|
+
private tags;
|
|
65
111
|
constructor(discriminator: Discriminator, variants: Variants);
|
|
112
|
+
/** The variant whose discriminator matches `data`, if any */
|
|
113
|
+
variantFor(data: any): TexEngine<any> | undefined;
|
|
114
|
+
private noMatch;
|
|
66
115
|
parse(data: any): Variants[number]['_type'];
|
|
116
|
+
safeParse(data: any): SafeParseResult<Variants[number]['_type']>;
|
|
67
117
|
parseAsync(data: any): Promise<Variants[number]['_type']>;
|
|
118
|
+
safeParseAsync(data: any): Promise<SafeParseResult<Variants[number]['_type']>>;
|
|
68
119
|
toOpenApi(): Record<string, any>;
|
|
69
120
|
}
|
|
70
121
|
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/validator/engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/validator/engine.ts"],"names":[],"mappings":"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"}
|