exisjs 0.9.1 → 0.10.0-alpha.0
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 +3 -0
- package/bin/exis.js +76 -1
- 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 +16 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/docs/content/README.md +1 -0
- package/dist/docs/content/cli/commands.mdx +23 -1
- package/dist/docs/content/cli/usage.mdx +2 -1
- package/dist/docs/content/config.mdx +50 -4
- package/dist/docs/content/deployment.mdx +163 -0
- package/dist/docs/content/installation.mdx +1 -1
- package/dist/docs/content/introduction.mdx +3 -0
- package/dist/docs/content/validation.mdx +34 -12
- package/dist/docs/reference/config.mdx +3 -1
- package/dist/docs/reference/sanitize.mdx +129 -134
- package/dist/docs/reference/validator.mdx +12 -3
- package/dist/internal.d.ts +16 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +45 -0
- package/dist/internal.js.map +1 -0
- package/dist/{cli → lib}/resolve-aliases.d.ts.map +1 -1
- package/dist/{cli → lib}/resolve-aliases.js.map +1 -1
- package/dist/lib/start-command.d.ts +11 -0
- package/dist/lib/start-command.d.ts.map +1 -0
- package/dist/lib/start-command.js +79 -0
- package/dist/lib/start-command.js.map +1 -0
- package/dist/lib/start-server.js +4 -2
- package/dist/lib/start-server.js.map +1 -1
- package/dist/middleware/backpressure.d.ts +5 -0
- package/dist/middleware/backpressure.d.ts.map +1 -1
- package/dist/middleware/backpressure.js +66 -36
- package/dist/middleware/backpressure.js.map +1 -1
- 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 +65 -51
- 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/app.d.ts.map +1 -1
- package/dist/server/app.js +24 -1
- package/dist/server/app.js.map +1 -1
- package/dist/server/bootstrapper.d.ts.map +1 -1
- package/dist/server/bootstrapper.js +4 -2
- package/dist/server/bootstrapper.js.map +1 -1
- package/dist/server/cluster.d.ts.map +1 -1
- package/dist/server/cluster.js +3 -0
- package/dist/server/cluster.js.map +1 -1
- package/dist/server/metrics.d.ts +43 -0
- package/dist/server/metrics.d.ts.map +1 -0
- package/dist/server/metrics.js +254 -0
- package/dist/server/metrics.js.map +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +31 -3
- package/dist/utils/logger.js.map +1 -1
- package/dist/validator/builder.d.ts +32 -17
- package/dist/validator/builder.d.ts.map +1 -1
- package/dist/validator/builder.js +84 -25
- 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 +436 -522
- 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/index.d.ts +4 -1
- package/dist/validator/index.d.ts.map +1 -1
- package/dist/validator/index.js +5 -1
- package/dist/validator/index.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/tex.d.ts +1 -1
- package/dist/validator/tex.d.ts.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 +22 -0
- package/dist/validator/types.d.ts.map +1 -1
- package/package.json +81 -9
- package/dist/cli/commands/build.d.ts +0 -11
- package/dist/cli/commands/build.d.ts.map +0 -1
- package/dist/cli/commands/build.js +0 -344
- package/dist/cli/commands/build.js.map +0 -1
- package/dist/cli/commands/clean.d.ts +0 -5
- package/dist/cli/commands/clean.d.ts.map +0 -1
- package/dist/cli/commands/clean.js +0 -30
- package/dist/cli/commands/clean.js.map +0 -1
- package/dist/cli/commands/dev.d.ts +0 -21
- package/dist/cli/commands/dev.d.ts.map +0 -1
- package/dist/cli/commands/dev.js +0 -842
- package/dist/cli/commands/dev.js.map +0 -1
- package/dist/cli/commands/doctor.d.ts +0 -2
- package/dist/cli/commands/doctor.d.ts.map +0 -1
- package/dist/cli/commands/doctor.js +0 -228
- package/dist/cli/commands/doctor.js.map +0 -1
- package/dist/cli/commands/exports.d.ts +0 -2
- package/dist/cli/commands/exports.d.ts.map +0 -1
- package/dist/cli/commands/exports.js +0 -48
- package/dist/cli/commands/exports.js.map +0 -1
- package/dist/cli/commands/generate.d.ts +0 -33
- package/dist/cli/commands/generate.d.ts.map +0 -1
- package/dist/cli/commands/generate.js +0 -469
- package/dist/cli/commands/generate.js.map +0 -1
- package/dist/cli/commands/init.d.ts +0 -2
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js +0 -37
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/repl.d.ts +0 -6
- package/dist/cli/commands/repl.d.ts.map +0 -1
- package/dist/cli/commands/repl.js +0 -75
- package/dist/cli/commands/repl.js.map +0 -1
- package/dist/cli/commands/run.d.ts +0 -7
- package/dist/cli/commands/run.d.ts.map +0 -1
- package/dist/cli/commands/run.js +0 -101
- package/dist/cli/commands/run.js.map +0 -1
- package/dist/cli/commands/start.d.ts +0 -8
- package/dist/cli/commands/start.d.ts.map +0 -1
- package/dist/cli/commands/start.js +0 -155
- package/dist/cli/commands/start.js.map +0 -1
- package/dist/cli/commands/test.d.ts +0 -8
- package/dist/cli/commands/test.d.ts.map +0 -1
- package/dist/cli/commands/test.js +0 -165
- package/dist/cli/commands/test.js.map +0 -1
- package/dist/cli/index.d.ts +0 -3
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -268
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/manifest.d.ts +0 -4
- package/dist/cli/manifest.d.ts.map +0 -1
- package/dist/cli/manifest.js +0 -489
- package/dist/cli/manifest.js.map +0 -1
- package/dist/cli/routes.d.ts +0 -17
- package/dist/cli/routes.d.ts.map +0 -1
- package/dist/cli/routes.js +0 -317
- package/dist/cli/routes.js.map +0 -1
- package/dist/cli/utils.d.ts +0 -24
- package/dist/cli/utils.d.ts.map +0 -1
- package/dist/cli/utils.js +0 -54
- package/dist/cli/utils.js.map +0 -1
- package/dist/lib/inspect-routes.d.ts +0 -2
- package/dist/lib/inspect-routes.d.ts.map +0 -1
- package/dist/lib/inspect-routes.js +0 -150
- package/dist/lib/inspect-routes.js.map +0 -1
- package/dist/lib/start-repl.d.ts +0 -2
- package/dist/lib/start-repl.d.ts.map +0 -1
- package/dist/lib/start-repl.js +0 -120
- package/dist/lib/start-repl.js.map +0 -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
- /package/dist/{cli → lib}/resolve-aliases.d.ts +0 -0
- /package/dist/{cli → lib}/resolve-aliases.js +0 -0
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
import { TexString, TexNumber, TexBoolean, TexArray, TexEnum, TexLiteral, TexUnion, TexDate, TexRecord, TexAny, TexFile, ResolveSchema, type WithDefault, type ResolveInput } from './tex-types';
|
|
2
|
-
import type { TexBaseOptions, TexStringOptions, TexNumberOptions, TexBooleanOptions, TexArrayOptions, TexEnumOptions, TexObjectOptions, TexFileOptions, TexPasswordOptions, TexDateOptions } from './types';
|
|
2
|
+
import type { TexBaseOptions, TexStringOptions, TexNumberOptions, TexBooleanOptions, TexArrayOptions, TexEnumOptions, TexObjectOptions, TexFileOptions, TexPasswordOptions, TexDateOptions, TexUrlOptions } from './types';
|
|
3
3
|
import { TexEngine, TexDiscriminatedUnionEngine } from './engine';
|
|
4
|
+
type OptionalFlag<O> = O extends {
|
|
5
|
+
optional: true;
|
|
6
|
+
} | {
|
|
7
|
+
nullish: true;
|
|
8
|
+
} ? true : false;
|
|
9
|
+
type NullableFlag<O> = O extends {
|
|
10
|
+
nullable: true;
|
|
11
|
+
} | {
|
|
12
|
+
nullish: true;
|
|
13
|
+
} ? true : false;
|
|
14
|
+
/** What `tex.object(shape, options)` returns */
|
|
15
|
+
export type ObjectSchema<T extends Record<string, any>, O> = TexEngine<ResolveSchema<T> | (NullableFlag<O> extends true ? null : never) | (OptionalFlag<O> extends true ? undefined : never)> & {
|
|
16
|
+
readonly _input: ResolveInput<T>;
|
|
17
|
+
} & (OptionalFlag<O> extends true ? {
|
|
18
|
+
readonly __isOptional: true;
|
|
19
|
+
} : unknown);
|
|
4
20
|
/**
|
|
5
21
|
* Declarative schema builder; each schema compiles once into plain JS checks.
|
|
6
22
|
*/
|
|
@@ -17,6 +33,17 @@ export declare class TexBuilder {
|
|
|
17
33
|
* ```
|
|
18
34
|
*/
|
|
19
35
|
string<O extends TexStringOptions = TexStringOptions>(opts?: O): WithDefault<TexString<O['optional'] extends true ? true : false>, O>;
|
|
36
|
+
/**
|
|
37
|
+
* Defines an absolute URL schema. Only `http` and `https` are accepted
|
|
38
|
+
* unless `protocols` says otherwise.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* const website = tex.url({ trim: true })
|
|
43
|
+
* const callback = tex.url({ protocols: ['https'] })
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
url<O extends TexUrlOptions = TexUrlOptions>(opts?: O): WithDefault<TexString<O['optional'] extends true ? true : false>, O>;
|
|
20
47
|
/**
|
|
21
48
|
* Defines a number schema with bounds and optional auto-coercion from string query parameters.
|
|
22
49
|
*
|
|
@@ -195,9 +222,7 @@ export declare class TexBuilder {
|
|
|
195
222
|
* const user = UserSchema.parse(req.body)
|
|
196
223
|
* ```
|
|
197
224
|
*/
|
|
198
|
-
object<T extends Record<string, any>>(schema: T, opts?:
|
|
199
|
-
readonly _input: ResolveInput<T>;
|
|
200
|
-
};
|
|
225
|
+
object<T extends Record<string, any>, O extends TexObjectOptions = Record<never, never>>(schema: T, opts?: O): ObjectSchema<T, O>;
|
|
201
226
|
/**
|
|
202
227
|
* Dedicated Environment Schema parser (`tex.env`).
|
|
203
228
|
* Automatically coerces numbers, booleans, dates, and arrays from `process.env` string values,
|
|
@@ -240,7 +265,7 @@ export declare class TexBuilder {
|
|
|
240
265
|
pagination(options?: {
|
|
241
266
|
defaultLimit?: number;
|
|
242
267
|
maxLimit?: number;
|
|
243
|
-
}):
|
|
268
|
+
}): ObjectSchema<{
|
|
244
269
|
page: TexNumber<true> & {
|
|
245
270
|
__hasDefault: true;
|
|
246
271
|
};
|
|
@@ -249,17 +274,7 @@ export declare class TexBuilder {
|
|
|
249
274
|
};
|
|
250
275
|
sort: TexString<true>;
|
|
251
276
|
order: TexEnum<"asc" | "desc", true>;
|
|
252
|
-
}
|
|
253
|
-
readonly _input: ResolveInput<{
|
|
254
|
-
page: TexNumber<true> & {
|
|
255
|
-
__hasDefault: true;
|
|
256
|
-
};
|
|
257
|
-
limit: TexNumber<true> & {
|
|
258
|
-
__hasDefault: true;
|
|
259
|
-
};
|
|
260
|
-
sort: TexString<true>;
|
|
261
|
-
order: TexEnum<"asc" | "desc", true>;
|
|
262
|
-
}>;
|
|
263
|
-
};
|
|
277
|
+
}, Record<never, never>>;
|
|
264
278
|
}
|
|
279
|
+
export {};
|
|
265
280
|
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/validator/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,OAAO,EACP,UAAU,EACV,QAAQ,EACR,OAAO,EACP,SAAS,EACT,MAAM,EACN,OAAO,EACP,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,cAAc,
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/validator/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TexBuilder = void 0;
|
|
4
4
|
const tex_types_1 = require("./tex-types");
|
|
5
5
|
const engine_1 = require("./engine");
|
|
6
|
+
const rules_1 = require("./rules");
|
|
7
|
+
const OBJECT_OPTIONS = ['strict', 'optional', 'nullable', 'nullish'];
|
|
8
|
+
// Plain JavaScript gets no type error for a misspelled option, so refuse it
|
|
9
|
+
function checkObjectOptions(opts) {
|
|
10
|
+
if (opts === undefined)
|
|
11
|
+
return;
|
|
12
|
+
if (opts === null || typeof opts !== 'object' || Array.isArray(opts)) {
|
|
13
|
+
throw new TypeError('tex.object(): options must be an object');
|
|
14
|
+
}
|
|
15
|
+
for (const key of Object.keys(opts)) {
|
|
16
|
+
if (!OBJECT_OPTIONS.includes(key)) {
|
|
17
|
+
throw new TypeError(`tex.object(): unknown option "${key}". Supported: ${OBJECT_OPTIONS.join(', ')}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
// `length` and `pattern` for string-like schemas
|
|
22
|
+
function textChecks(opts) {
|
|
23
|
+
let out = '';
|
|
24
|
+
if (opts?.length !== undefined)
|
|
25
|
+
out += ` | length:${opts.length}`;
|
|
26
|
+
if (opts?.pattern) {
|
|
27
|
+
out += ` | pattern:${JSON.stringify([opts.pattern.source, opts.pattern.flags])}`;
|
|
28
|
+
}
|
|
29
|
+
return out;
|
|
30
|
+
}
|
|
6
31
|
/**
|
|
7
32
|
* Declarative schema builder; each schema compiles once into plain JS checks.
|
|
8
33
|
*/
|
|
@@ -52,7 +77,36 @@ class TexBuilder {
|
|
|
52
77
|
base += ' | preventSql';
|
|
53
78
|
if (opts?.preventTraversal)
|
|
54
79
|
base += ' | preventTraversal';
|
|
55
|
-
return new tex_types_1.TexType(base, opts?.default);
|
|
80
|
+
return new tex_types_1.TexType(base + textChecks(opts), opts?.default);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Defines an absolute URL schema. Only `http` and `https` are accepted
|
|
84
|
+
* unless `protocols` says otherwise.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* const website = tex.url({ trim: true })
|
|
89
|
+
* const callback = tex.url({ protocols: ['https'] })
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
url(opts) {
|
|
93
|
+
let base = 'url';
|
|
94
|
+
if (opts?.optional || opts?.default !== undefined)
|
|
95
|
+
base += '?';
|
|
96
|
+
if (opts?.nullable)
|
|
97
|
+
base += ' | nullable';
|
|
98
|
+
if (opts?.nullish)
|
|
99
|
+
base += ' | nullish';
|
|
100
|
+
if (opts?.trim)
|
|
101
|
+
base += ' | trim';
|
|
102
|
+
if (opts?.protocols?.length) {
|
|
103
|
+
base += ` | protocols:${opts.protocols.map((p) => p.replace(/:$/, '')).join(',')}`;
|
|
104
|
+
}
|
|
105
|
+
if (opts?.min !== undefined)
|
|
106
|
+
base += ` | min:${opts.min}`;
|
|
107
|
+
if (opts?.max !== undefined)
|
|
108
|
+
base += ` | max:${opts.max}`;
|
|
109
|
+
return new tex_types_1.TexType(base + textChecks(opts), opts?.default);
|
|
56
110
|
}
|
|
57
111
|
/**
|
|
58
112
|
* Defines a number schema with bounds and optional auto-coercion from string query parameters.
|
|
@@ -75,6 +129,8 @@ class TexBuilder {
|
|
|
75
129
|
base += ' | nullish';
|
|
76
130
|
if (opts?.coerce)
|
|
77
131
|
base += ' | coerce';
|
|
132
|
+
if (opts?.int)
|
|
133
|
+
base += ' | int';
|
|
78
134
|
if (opts?.min !== undefined)
|
|
79
135
|
base += ` | min:${opts.min}`;
|
|
80
136
|
if (opts?.max !== undefined)
|
|
@@ -267,7 +323,7 @@ class TexBuilder {
|
|
|
267
323
|
* ```
|
|
268
324
|
*/
|
|
269
325
|
enum(values, opts) {
|
|
270
|
-
let base = `enum:${
|
|
326
|
+
let base = `enum:${(0, rules_1.formatEnumValues)(values)}`;
|
|
271
327
|
if (opts?.optional || opts?.default !== undefined)
|
|
272
328
|
base += '?';
|
|
273
329
|
if (opts?.nullable)
|
|
@@ -280,7 +336,8 @@ class TexBuilder {
|
|
|
280
336
|
* Defines an exact literal value schema (e.g. `'v1'`, `42`, `true`).
|
|
281
337
|
*/
|
|
282
338
|
literal(value, opts) {
|
|
283
|
-
|
|
339
|
+
// JSON keeps the type: literal(42) is the number, literal('42') the text
|
|
340
|
+
let base = `literal:${JSON.stringify(value)}`;
|
|
284
341
|
if (opts?.optional)
|
|
285
342
|
base += '?';
|
|
286
343
|
if (opts?.nullable)
|
|
@@ -298,7 +355,7 @@ class TexBuilder {
|
|
|
298
355
|
* ```
|
|
299
356
|
*/
|
|
300
357
|
union(schemas, opts) {
|
|
301
|
-
const items = schemas.map((s) => (
|
|
358
|
+
const items = schemas.map((s) => (0, engine_1.fieldRule)('[option]', s));
|
|
302
359
|
let base = items.join(' || ');
|
|
303
360
|
if (opts?.optional)
|
|
304
361
|
base = `(${base})?`;
|
|
@@ -306,7 +363,9 @@ class TexBuilder {
|
|
|
306
363
|
base += ' | nullable';
|
|
307
364
|
if (opts?.nullish)
|
|
308
365
|
base += ' | nullish';
|
|
309
|
-
|
|
366
|
+
const res = new tex_types_1.TexType(base);
|
|
367
|
+
res._options = schemas;
|
|
368
|
+
return res;
|
|
310
369
|
}
|
|
311
370
|
/**
|
|
312
371
|
* Defines a date schema with bounds checking and automatic coercion from ISO strings or timestamps.
|
|
@@ -339,15 +398,16 @@ class TexBuilder {
|
|
|
339
398
|
* Defines a dynamic key-value record schema (e.g. `Record<string, T>`).
|
|
340
399
|
*/
|
|
341
400
|
record(schema, opts) {
|
|
342
|
-
|
|
343
|
-
let base = `record<${itemSchema}>`;
|
|
401
|
+
let base = `record<${(0, engine_1.fieldRule)('[value]', schema)}>`;
|
|
344
402
|
if (opts?.optional)
|
|
345
403
|
base += '?';
|
|
346
404
|
if (opts?.nullable)
|
|
347
405
|
base += ' | nullable';
|
|
348
406
|
if (opts?.nullish)
|
|
349
407
|
base += ' | nullish';
|
|
350
|
-
|
|
408
|
+
const res = new tex_types_1.TexType(base);
|
|
409
|
+
res._value = schema;
|
|
410
|
+
return res;
|
|
351
411
|
}
|
|
352
412
|
/**
|
|
353
413
|
* Defines an unconstrained pass-through schema.
|
|
@@ -427,6 +487,7 @@ class TexBuilder {
|
|
|
427
487
|
* ```
|
|
428
488
|
*/
|
|
429
489
|
object(schema, opts) {
|
|
490
|
+
checkObjectOptions(opts);
|
|
430
491
|
const compiledSchema = {};
|
|
431
492
|
const shape = {};
|
|
432
493
|
for (const [key, value] of Object.entries(schema)) {
|
|
@@ -439,7 +500,12 @@ class TexBuilder {
|
|
|
439
500
|
: value;
|
|
440
501
|
compiledSchema[key] = (0, engine_1.fieldRule)(key, shape[key]);
|
|
441
502
|
}
|
|
442
|
-
|
|
503
|
+
let engine = new engine_1.TexEngine(compiledSchema, shape, opts?.strict);
|
|
504
|
+
if (opts?.optional || opts?.nullish)
|
|
505
|
+
engine = engine.optional();
|
|
506
|
+
if (opts?.nullable || opts?.nullish)
|
|
507
|
+
engine = engine.nullable();
|
|
508
|
+
return engine;
|
|
443
509
|
}
|
|
444
510
|
/**
|
|
445
511
|
* Dedicated Environment Schema parser (`tex.env`).
|
|
@@ -464,23 +530,16 @@ class TexBuilder {
|
|
|
464
530
|
const coercedSchema = {};
|
|
465
531
|
for (const [key, value] of Object.entries(schema)) {
|
|
466
532
|
if (value instanceof tex_types_1.TexType) {
|
|
467
|
-
|
|
533
|
+
const raw = value._raw;
|
|
468
534
|
// Auto-inject coercion if not already present
|
|
469
|
-
|
|
470
|
-
raw.startsWith('
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
cloned.sanitizers = [...value.sanitizers];
|
|
478
|
-
cloned.refinements = [...value.refinements];
|
|
479
|
-
if (value._item) {
|
|
480
|
-
;
|
|
481
|
-
cloned._item = value._item;
|
|
482
|
-
}
|
|
483
|
-
coercedSchema[key] = cloned;
|
|
535
|
+
coercedSchema[key] =
|
|
536
|
+
(raw.startsWith('number') ||
|
|
537
|
+
raw.startsWith('boolean') ||
|
|
538
|
+
raw.startsWith('date') ||
|
|
539
|
+
raw.startsWith('array<')) &&
|
|
540
|
+
!raw.includes('coerce')
|
|
541
|
+
? value._withModifier('coerce')
|
|
542
|
+
: value;
|
|
484
543
|
}
|
|
485
544
|
else if (value instanceof engine_1.TexEngine) {
|
|
486
545
|
coercedSchema[key] = value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/validator/builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/validator/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Builds the validator TexEngine calls for every parse. `raw` holds the
|
|
3
|
+
* schema objects the rules were built from (sanitizers, refinements,
|
|
4
|
+
* defaults, nested schemas); `query` converts top-level number and boolean
|
|
5
|
+
* fields from text.
|
|
6
|
+
*/
|
|
7
|
+
export declare function compileSchema(schema: Record<string, string>, strict: boolean, raw?: Record<string, any>, query?: boolean): (data: any) => any;
|
|
3
8
|
//# sourceMappingURL=compile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/validator/compile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/validator/compile.ts"],"names":[],"mappings":"AAyVA;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,MAAM,EAAE,OAAO,EACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,UAAQ,GACZ,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAgBpB"}
|
|
@@ -6,23 +6,26 @@
|
|
|
6
6
|
// become nested blocks and loops, and the result is built as a single object
|
|
7
7
|
// literal. V8 optimizes this far better than a loop over check closures.
|
|
8
8
|
//
|
|
9
|
-
// Rules that are rare or involved (unions, records, passwords, text
|
|
9
|
+
// Rules that are rare or involved (unions, records, passwords, dates, text
|
|
10
10
|
// sanitizers...) are not inlined; the generated code calls the closure from
|
|
11
|
-
// rules.ts for them, so behavior is defined in exactly one place.
|
|
11
|
+
// rules.ts for them, so behavior is defined in exactly one place. Sanitizers,
|
|
12
|
+
// refinements and transforms are closures too, called around the inlined
|
|
13
|
+
// type check.
|
|
12
14
|
//
|
|
13
15
|
// Only schema authors' data reaches the generated source, and every string
|
|
14
|
-
// from it is embedded with JSON.stringify. Request data
|
|
15
|
-
// code. Where `new Function` is unavailable (strict CSP,
|
|
16
|
-
// the closure-based validator from rules.ts is used
|
|
16
|
+
// from it is embedded with JSON.stringify. Request data and default values are
|
|
17
|
+
// never part of the code. Where `new Function` is unavailable (strict CSP,
|
|
18
|
+
// some edge runtimes) the closure-based validator from rules.ts is used.
|
|
17
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
20
|
exports.compileSchema = compileSchema;
|
|
19
21
|
const rules_1 = require("./rules");
|
|
22
|
+
const error_1 = require("./error");
|
|
20
23
|
class Generator {
|
|
21
24
|
constructor() {
|
|
22
25
|
this.id = 0;
|
|
23
26
|
/** Closures called from generated code as c[n](value) */
|
|
24
27
|
this.checks = [];
|
|
25
|
-
/** Regexes
|
|
28
|
+
/** Regexes, Sets and default values referenced as x[n] */
|
|
26
29
|
this.refs = [];
|
|
27
30
|
}
|
|
28
31
|
next(prefix) {
|
|
@@ -35,10 +38,15 @@ class Generator {
|
|
|
35
38
|
fail(constraint, path) {
|
|
36
39
|
return `E("field",${JSON.stringify(constraint)},[${path.join(',')}])`;
|
|
37
40
|
}
|
|
41
|
+
/** Calls closure `fn` on `v`, attaching the path to what it throws */
|
|
42
|
+
call(fn, v, path) {
|
|
43
|
+
this.checks.push(fn);
|
|
44
|
+
return `try{${v}=c[${this.checks.length - 1}](${v})}catch(e){P(e,[${path.join(',')}])}`;
|
|
45
|
+
}
|
|
38
46
|
/** Validates the object in `src` and assigns the cleaned copy to `dest` */
|
|
39
|
-
object(schema, strict, src, dest, path) {
|
|
47
|
+
object(schema, strict, src, dest, path, raw, query = false) {
|
|
40
48
|
const keys = Object.keys(schema);
|
|
41
|
-
const rules =
|
|
49
|
+
const rules = (0, rules_1.compileFields)(schema, raw, query);
|
|
42
50
|
let code = '';
|
|
43
51
|
if (strict) {
|
|
44
52
|
const known = this.ref(new Set(keys));
|
|
@@ -53,24 +61,33 @@ class Generator {
|
|
|
53
61
|
const r = this.next('r');
|
|
54
62
|
const v = this.next('v');
|
|
55
63
|
results.push(r);
|
|
56
|
-
const
|
|
64
|
+
const hasDefault = rule.defaultRef !== undefined || rule.defaultValue !== undefined;
|
|
65
|
+
const canBeAbsent = rule.optional && !hasDefault;
|
|
57
66
|
if (canBeAbsent)
|
|
58
67
|
anyAbsent = true;
|
|
59
68
|
let body = `let ${v}=${src}[${key}];`;
|
|
60
|
-
|
|
61
|
-
if (rule.
|
|
62
|
-
|
|
69
|
+
// A blank form field counts as left out (or null when only nullable)
|
|
70
|
+
if (rule.optional || rule.nullable) {
|
|
71
|
+
const blank = rule.nullable && !rule.optional ? 'null' : 'undefined';
|
|
72
|
+
body += `if(typeof ${v}==="string"&&${v}.trim()==="")${v}=${blank};`;
|
|
63
73
|
}
|
|
64
|
-
|
|
65
|
-
|
|
74
|
+
if (hasDefault) {
|
|
75
|
+
const missing = rule.nullable
|
|
76
|
+
? `${v}===undefined`
|
|
77
|
+
: `${v}===undefined||${v}===null`;
|
|
78
|
+
const value = rule.defaultRef
|
|
79
|
+
? `R(${this.ref(rule.defaultRef.value)})`
|
|
80
|
+
: JSON.stringify(rule.defaultValue);
|
|
81
|
+
body += `if(${missing})${v}=${value};`;
|
|
66
82
|
}
|
|
67
|
-
|
|
68
|
-
|
|
83
|
+
if (rule.pre) {
|
|
84
|
+
body += `if(${v}!==undefined&&${v}!==null){${this.call(rule.pre, v, fieldPath)}}`;
|
|
69
85
|
}
|
|
70
|
-
const check = `${this.value(rule, v, fieldPath)}${r}=${v};`;
|
|
86
|
+
const check = `${this.value(rule, v, fieldPath, false)}${r}=${v};`;
|
|
87
|
+
const missing = `E("missing","",[${fieldPath.join(',')}]);`;
|
|
71
88
|
const present = canBeAbsent
|
|
72
89
|
? `if(${v}!==undefined&&${v}!==null){${check}}`
|
|
73
|
-
: `if(${v}===undefined||${v}===null){${
|
|
90
|
+
: `if(${v}===undefined||${v}===null){${missing}}${check}`;
|
|
74
91
|
body += rule.nullable
|
|
75
92
|
? `if(${v}===null)${r}=null;else{${present}}`
|
|
76
93
|
: present;
|
|
@@ -84,17 +101,26 @@ class Generator {
|
|
|
84
101
|
code += `${dest}={};`;
|
|
85
102
|
for (let i = 0; i < keys.length; i++) {
|
|
86
103
|
const assign = `${dest}[${JSON.stringify(keys[i])}]=${results[i]};`;
|
|
87
|
-
const optional = rules[i].optional &&
|
|
104
|
+
const optional = rules[i].optional &&
|
|
105
|
+
rules[i].defaultRef === undefined &&
|
|
106
|
+
rules[i].defaultValue === undefined;
|
|
88
107
|
code += optional ? `if(${results[i]}!==undefined)${assign}` : assign;
|
|
89
108
|
}
|
|
90
109
|
}
|
|
91
110
|
return code;
|
|
92
111
|
}
|
|
93
112
|
/** Validates the non-null value held in variable `v`, updating it in place */
|
|
94
|
-
value(rule, v, path) {
|
|
113
|
+
value(rule, v, path, withPre = true) {
|
|
114
|
+
let code = withPre && rule.pre ? this.call(rule.pre, v, path) : '';
|
|
115
|
+
code += rule.gen
|
|
116
|
+
? this.inline(rule, v, path)
|
|
117
|
+
: this.call(rule.base, v, path);
|
|
118
|
+
if (rule.post)
|
|
119
|
+
code += this.call(rule.post, v, path);
|
|
120
|
+
return code;
|
|
121
|
+
}
|
|
122
|
+
inline(rule, v, path) {
|
|
95
123
|
const gen = rule.gen;
|
|
96
|
-
if (!gen)
|
|
97
|
-
return this.delegate(rule, v, path);
|
|
98
124
|
switch (gen.kind) {
|
|
99
125
|
case 'pass':
|
|
100
126
|
return '';
|
|
@@ -107,6 +133,9 @@ class Generator {
|
|
|
107
133
|
code += `if(typeof ${v}==="string"&&${v}.trim()!==""){const n=Number(${v});if(Number.isFinite(n))${v}=n}`;
|
|
108
134
|
}
|
|
109
135
|
code += `if(typeof ${v}!=="number"||!Number.isFinite(${v}))${this.fail('must be a number', path)};`;
|
|
136
|
+
if (m.int) {
|
|
137
|
+
code += `if(!Number.isInteger(${v}))E("field","must be an integer",[${path.join(',')}],"INVALID_TYPE","integer");`;
|
|
138
|
+
}
|
|
110
139
|
if (m.min !== undefined) {
|
|
111
140
|
code += `if(${v}<${m.min})${this.fail(`must be >= ${m.min}`, path)};`;
|
|
112
141
|
}
|
|
@@ -116,16 +145,13 @@ class Generator {
|
|
|
116
145
|
return code;
|
|
117
146
|
}
|
|
118
147
|
case 'boolean': {
|
|
119
|
-
|
|
120
|
-
if (gen.m.coerce) {
|
|
121
|
-
code += `if(${v}==="true"||${v}==="1"||${v}===1)${v}=true;else if(${v}==="false"||${v}==="0"||${v}===0)${v}=false;`;
|
|
122
|
-
}
|
|
148
|
+
const code = gen.m.coerce ? `${v}=B(${v});` : '';
|
|
123
149
|
return (code +
|
|
124
150
|
`if(typeof ${v}!=="boolean")${this.fail('must be a boolean', path)};`);
|
|
125
151
|
}
|
|
126
152
|
case 'email': {
|
|
127
153
|
if (gen.m.mask)
|
|
128
|
-
return this.
|
|
154
|
+
return this.call(rule.base, v, path);
|
|
129
155
|
let code = `if(typeof ${v}!=="string")${this.fail('must be a string', path)};`;
|
|
130
156
|
if (gen.m.trim)
|
|
131
157
|
code += `${v}=${v}.trim();`;
|
|
@@ -143,14 +169,14 @@ class Generator {
|
|
|
143
169
|
const out = this.next('o');
|
|
144
170
|
return (`if(typeof ${v}==="string")${v}=J(${v},"{","}");` +
|
|
145
171
|
`if(${v}===null||typeof ${v}!=="object"||Array.isArray(${v}))${this.fail('must be an object', path)};` +
|
|
146
|
-
`let ${out};${this.object(gen.schema,
|
|
172
|
+
`let ${out};${this.object(gen.schema, gen.strict, v, out, path, gen.raw)}${v}=${out};`);
|
|
147
173
|
}
|
|
148
174
|
case 'array': {
|
|
149
175
|
const { item, m } = gen;
|
|
150
176
|
const arr = this.next('a');
|
|
151
177
|
const i = this.next('i');
|
|
152
178
|
const el = this.next('e');
|
|
153
|
-
let code = `if(!Array.isArray(${v}))${v}
|
|
179
|
+
let code = `if(!Array.isArray(${v}))${v}=${m.coerce ? 'C' : 'A'}(${v});` +
|
|
154
180
|
`if(!Array.isArray(${v}))${this.fail('must be an array', path)};`;
|
|
155
181
|
if (m.min !== undefined) {
|
|
156
182
|
code += `if(${v}.length<${m.min})${this.fail(`array must have at least ${m.min} items`, path)};`;
|
|
@@ -179,8 +205,9 @@ class Generator {
|
|
|
179
205
|
m.preventSql ||
|
|
180
206
|
m.preventTraversal ||
|
|
181
207
|
m.mask) {
|
|
182
|
-
return this.
|
|
208
|
+
return this.call(rule.base, v, path);
|
|
183
209
|
}
|
|
210
|
+
const p = `[${path.join(',')}]`;
|
|
184
211
|
let code = '';
|
|
185
212
|
if (m.coerce) {
|
|
186
213
|
code += `if(typeof ${v}==="number"||typeof ${v}==="boolean")${v}=String(${v});`;
|
|
@@ -198,57 +225,61 @@ class Generator {
|
|
|
198
225
|
if (m.max !== undefined) {
|
|
199
226
|
code += `if(${v}.length>${m.max})${this.fail(`must be at most ${m.max} characters`, path)};`;
|
|
200
227
|
}
|
|
228
|
+
if (m.length !== undefined) {
|
|
229
|
+
code += `if(${v}.length!==${m.length})E("field",${JSON.stringify(`must be exactly ${m.length} characters`)},${p},"INVALID_LENGTH");`;
|
|
230
|
+
}
|
|
231
|
+
if (m.pattern !== undefined) {
|
|
232
|
+
code += `if(!${this.ref(m.pattern)}.test(${v}))E("field",${JSON.stringify(rules_1.PATTERN_FAILED)},${p},"INVALID_FORMAT",${JSON.stringify(`match ${m.pattern}`)});`;
|
|
233
|
+
}
|
|
201
234
|
return code;
|
|
202
235
|
}
|
|
203
|
-
delegate(rule, v, path) {
|
|
204
|
-
this.checks.push(rule.check);
|
|
205
|
-
const n = this.checks.length - 1;
|
|
206
|
-
return `try{${v}=c[${n}](${v})}catch(e){P(e,[${path.join(',')}])}`;
|
|
207
|
-
}
|
|
208
236
|
}
|
|
209
237
|
// Helpers handed to the generated function
|
|
210
|
-
function throwRuleError(kind, detail, path) {
|
|
211
|
-
const err = new rules_1.RuleError(kind, detail);
|
|
238
|
+
function throwRuleError(kind, detail, path, code, expected) {
|
|
239
|
+
const err = new rules_1.RuleError(kind, detail, code, expected);
|
|
212
240
|
err.path.push(...path);
|
|
213
241
|
throw err;
|
|
214
242
|
}
|
|
215
243
|
function prefixAndRethrow(err, path) {
|
|
216
244
|
if (err instanceof rules_1.RuleError)
|
|
217
245
|
err.path.unshift(...path);
|
|
246
|
+
else if (err instanceof error_1.ValidatorError)
|
|
247
|
+
(0, rules_1.prefixErrors)(err, path);
|
|
218
248
|
throw err;
|
|
219
249
|
}
|
|
220
|
-
function generate(schema, strict) {
|
|
250
|
+
function generate(schema, strict, raw, query) {
|
|
221
251
|
const g = new Generator();
|
|
222
|
-
const body = `"use strict";return function texValidate(d){let o;${g.object(schema, strict, 'd', 'o', [])}return o}`;
|
|
223
|
-
const factory = new Function('c', 'x', 'E', 'P', 'J', 'A', 'D', body);
|
|
224
|
-
return factory(g.checks, g.refs, throwRuleError, prefixAndRethrow, rules_1.parseJsonString, rules_1.normalizeArrayInput, rules_1.dedupeItems);
|
|
252
|
+
const body = `"use strict";return function texValidate(d){let o;${g.object(schema, strict, 'd', 'o', [], raw, query)}return o}`;
|
|
253
|
+
const factory = new Function('c', 'x', 'E', 'P', 'J', 'A', 'C', 'D', 'B', 'R', body);
|
|
254
|
+
return factory(g.checks, g.refs, throwRuleError, prefixAndRethrow, rules_1.parseJsonString, rules_1.normalizeArrayInput, rules_1.coerceArrayInput, rules_1.dedupeItems, rules_1.coerceBoolean, rules_1.resolveDefault);
|
|
225
255
|
}
|
|
226
256
|
// Assigning out["__proto__"] would set a prototype instead of a property; such
|
|
227
257
|
// schemas (and their nested objects) stay on the interpreted path
|
|
228
258
|
function mentionsProto(schema) {
|
|
229
259
|
return Object.keys(schema).some((k) => k === '__proto__' || schema[k].includes('__proto__'));
|
|
230
260
|
}
|
|
231
|
-
/**
|
|
232
|
-
|
|
261
|
+
/**
|
|
262
|
+
* Builds the validator TexEngine calls for every parse. `raw` holds the
|
|
263
|
+
* schema objects the rules were built from (sanitizers, refinements,
|
|
264
|
+
* defaults, nested schemas); `query` converts top-level number and boolean
|
|
265
|
+
* fields from text.
|
|
266
|
+
*/
|
|
267
|
+
function compileSchema(schema, strict, raw, query = false) {
|
|
233
268
|
let validate;
|
|
234
269
|
try {
|
|
235
|
-
if (mentionsProto(schema))
|
|
236
|
-
return (0, rules_1.compileSchema)(schema, strict);
|
|
237
|
-
|
|
270
|
+
if (mentionsProto(schema)) {
|
|
271
|
+
return (0, rules_1.compileSchema)(schema, strict, raw, query);
|
|
272
|
+
}
|
|
273
|
+
validate = generate(schema, strict, raw, query);
|
|
238
274
|
}
|
|
239
275
|
catch {
|
|
240
|
-
return (0, rules_1.compileSchema)(schema, strict);
|
|
276
|
+
return (0, rules_1.compileSchema)(schema, strict, raw, query);
|
|
241
277
|
}
|
|
242
278
|
return (data) => {
|
|
243
279
|
if (data === null || typeof data !== 'object' || Array.isArray(data)) {
|
|
244
|
-
throw new
|
|
245
|
-
}
|
|
246
|
-
try {
|
|
247
|
-
return validate(data);
|
|
248
|
-
}
|
|
249
|
-
catch (err) {
|
|
250
|
-
throw err instanceof rules_1.RuleError ? (0, rules_1.toLegacyError)(err) : err;
|
|
280
|
+
throw new rules_1.RuleError('input', 'Input must be a JSON object');
|
|
251
281
|
}
|
|
282
|
+
return validate(data);
|
|
252
283
|
};
|
|
253
284
|
}
|
|
254
285
|
//# sourceMappingURL=compile.js.map
|