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.
Files changed (171) hide show
  1. package/README.md +3 -0
  2. package/bin/exis.js +76 -1
  3. package/dist/config/config.d.ts.map +1 -1
  4. package/dist/config/config.js +2 -1
  5. package/dist/config/config.js.map +1 -1
  6. package/dist/config/types.d.ts +16 -2
  7. package/dist/config/types.d.ts.map +1 -1
  8. package/dist/docs/content/README.md +1 -0
  9. package/dist/docs/content/cli/commands.mdx +23 -1
  10. package/dist/docs/content/cli/usage.mdx +2 -1
  11. package/dist/docs/content/config.mdx +50 -4
  12. package/dist/docs/content/deployment.mdx +163 -0
  13. package/dist/docs/content/installation.mdx +1 -1
  14. package/dist/docs/content/introduction.mdx +3 -0
  15. package/dist/docs/content/validation.mdx +34 -12
  16. package/dist/docs/reference/config.mdx +3 -1
  17. package/dist/docs/reference/sanitize.mdx +129 -134
  18. package/dist/docs/reference/validator.mdx +12 -3
  19. package/dist/internal.d.ts +16 -0
  20. package/dist/internal.d.ts.map +1 -0
  21. package/dist/internal.js +45 -0
  22. package/dist/internal.js.map +1 -0
  23. package/dist/{cli → lib}/resolve-aliases.d.ts.map +1 -1
  24. package/dist/{cli → lib}/resolve-aliases.js.map +1 -1
  25. package/dist/lib/start-command.d.ts +11 -0
  26. package/dist/lib/start-command.d.ts.map +1 -0
  27. package/dist/lib/start-command.js +79 -0
  28. package/dist/lib/start-command.js.map +1 -0
  29. package/dist/lib/start-server.js +4 -2
  30. package/dist/lib/start-server.js.map +1 -1
  31. package/dist/middleware/backpressure.d.ts +5 -0
  32. package/dist/middleware/backpressure.d.ts.map +1 -1
  33. package/dist/middleware/backpressure.js +66 -36
  34. package/dist/middleware/backpressure.js.map +1 -1
  35. package/dist/router/route-scanner.d.ts +12 -4
  36. package/dist/router/route-scanner.d.ts.map +1 -1
  37. package/dist/router/route-scanner.js +65 -51
  38. package/dist/router/route-scanner.js.map +1 -1
  39. package/dist/sanitize/index.d.ts +29 -3
  40. package/dist/sanitize/index.d.ts.map +1 -1
  41. package/dist/sanitize/index.js +91 -32
  42. package/dist/sanitize/index.js.map +1 -1
  43. package/dist/server/adapters/bun-adapter.d.ts +1 -1
  44. package/dist/server/adapters/bun-adapter.d.ts.map +1 -1
  45. package/dist/server/adapters/bun-adapter.js.map +1 -1
  46. package/dist/server/app.d.ts.map +1 -1
  47. package/dist/server/app.js +24 -1
  48. package/dist/server/app.js.map +1 -1
  49. package/dist/server/bootstrapper.d.ts.map +1 -1
  50. package/dist/server/bootstrapper.js +4 -2
  51. package/dist/server/bootstrapper.js.map +1 -1
  52. package/dist/server/cluster.d.ts.map +1 -1
  53. package/dist/server/cluster.js +3 -0
  54. package/dist/server/cluster.js.map +1 -1
  55. package/dist/server/metrics.d.ts +43 -0
  56. package/dist/server/metrics.d.ts.map +1 -0
  57. package/dist/server/metrics.js +254 -0
  58. package/dist/server/metrics.js.map +1 -0
  59. package/dist/utils/logger.d.ts.map +1 -1
  60. package/dist/utils/logger.js +31 -3
  61. package/dist/utils/logger.js.map +1 -1
  62. package/dist/validator/builder.d.ts +32 -17
  63. package/dist/validator/builder.d.ts.map +1 -1
  64. package/dist/validator/builder.js +84 -25
  65. package/dist/validator/builder.js.map +1 -1
  66. package/dist/validator/compile.d.ts +7 -2
  67. package/dist/validator/compile.d.ts.map +1 -1
  68. package/dist/validator/compile.js +85 -54
  69. package/dist/validator/compile.js.map +1 -1
  70. package/dist/validator/engine.d.ts +58 -7
  71. package/dist/validator/engine.d.ts.map +1 -1
  72. package/dist/validator/engine.js +436 -522
  73. package/dist/validator/engine.js.map +1 -1
  74. package/dist/validator/error.d.ts.map +1 -1
  75. package/dist/validator/error.js +7 -0
  76. package/dist/validator/error.js.map +1 -1
  77. package/dist/validator/index.d.ts +4 -1
  78. package/dist/validator/index.d.ts.map +1 -1
  79. package/dist/validator/index.js +5 -1
  80. package/dist/validator/index.js.map +1 -1
  81. package/dist/validator/rules.d.ts +66 -7
  82. package/dist/validator/rules.d.ts.map +1 -1
  83. package/dist/validator/rules.js +435 -109
  84. package/dist/validator/rules.js.map +1 -1
  85. package/dist/validator/tex-types.d.ts +15 -0
  86. package/dist/validator/tex-types.d.ts.map +1 -1
  87. package/dist/validator/tex-types.js +127 -64
  88. package/dist/validator/tex-types.js.map +1 -1
  89. package/dist/validator/tex.d.ts +1 -1
  90. package/dist/validator/tex.d.ts.map +1 -1
  91. package/dist/validator/text.d.ts +2 -0
  92. package/dist/validator/text.d.ts.map +1 -1
  93. package/dist/validator/text.js +31 -13
  94. package/dist/validator/text.js.map +1 -1
  95. package/dist/validator/types.d.ts +22 -0
  96. package/dist/validator/types.d.ts.map +1 -1
  97. package/package.json +81 -9
  98. package/dist/cli/commands/build.d.ts +0 -11
  99. package/dist/cli/commands/build.d.ts.map +0 -1
  100. package/dist/cli/commands/build.js +0 -344
  101. package/dist/cli/commands/build.js.map +0 -1
  102. package/dist/cli/commands/clean.d.ts +0 -5
  103. package/dist/cli/commands/clean.d.ts.map +0 -1
  104. package/dist/cli/commands/clean.js +0 -30
  105. package/dist/cli/commands/clean.js.map +0 -1
  106. package/dist/cli/commands/dev.d.ts +0 -21
  107. package/dist/cli/commands/dev.d.ts.map +0 -1
  108. package/dist/cli/commands/dev.js +0 -842
  109. package/dist/cli/commands/dev.js.map +0 -1
  110. package/dist/cli/commands/doctor.d.ts +0 -2
  111. package/dist/cli/commands/doctor.d.ts.map +0 -1
  112. package/dist/cli/commands/doctor.js +0 -228
  113. package/dist/cli/commands/doctor.js.map +0 -1
  114. package/dist/cli/commands/exports.d.ts +0 -2
  115. package/dist/cli/commands/exports.d.ts.map +0 -1
  116. package/dist/cli/commands/exports.js +0 -48
  117. package/dist/cli/commands/exports.js.map +0 -1
  118. package/dist/cli/commands/generate.d.ts +0 -33
  119. package/dist/cli/commands/generate.d.ts.map +0 -1
  120. package/dist/cli/commands/generate.js +0 -469
  121. package/dist/cli/commands/generate.js.map +0 -1
  122. package/dist/cli/commands/init.d.ts +0 -2
  123. package/dist/cli/commands/init.d.ts.map +0 -1
  124. package/dist/cli/commands/init.js +0 -37
  125. package/dist/cli/commands/init.js.map +0 -1
  126. package/dist/cli/commands/repl.d.ts +0 -6
  127. package/dist/cli/commands/repl.d.ts.map +0 -1
  128. package/dist/cli/commands/repl.js +0 -75
  129. package/dist/cli/commands/repl.js.map +0 -1
  130. package/dist/cli/commands/run.d.ts +0 -7
  131. package/dist/cli/commands/run.d.ts.map +0 -1
  132. package/dist/cli/commands/run.js +0 -101
  133. package/dist/cli/commands/run.js.map +0 -1
  134. package/dist/cli/commands/start.d.ts +0 -8
  135. package/dist/cli/commands/start.d.ts.map +0 -1
  136. package/dist/cli/commands/start.js +0 -155
  137. package/dist/cli/commands/start.js.map +0 -1
  138. package/dist/cli/commands/test.d.ts +0 -8
  139. package/dist/cli/commands/test.d.ts.map +0 -1
  140. package/dist/cli/commands/test.js +0 -165
  141. package/dist/cli/commands/test.js.map +0 -1
  142. package/dist/cli/index.d.ts +0 -3
  143. package/dist/cli/index.d.ts.map +0 -1
  144. package/dist/cli/index.js +0 -268
  145. package/dist/cli/index.js.map +0 -1
  146. package/dist/cli/manifest.d.ts +0 -4
  147. package/dist/cli/manifest.d.ts.map +0 -1
  148. package/dist/cli/manifest.js +0 -489
  149. package/dist/cli/manifest.js.map +0 -1
  150. package/dist/cli/routes.d.ts +0 -17
  151. package/dist/cli/routes.d.ts.map +0 -1
  152. package/dist/cli/routes.js +0 -317
  153. package/dist/cli/routes.js.map +0 -1
  154. package/dist/cli/utils.d.ts +0 -24
  155. package/dist/cli/utils.d.ts.map +0 -1
  156. package/dist/cli/utils.js +0 -54
  157. package/dist/cli/utils.js.map +0 -1
  158. package/dist/lib/inspect-routes.d.ts +0 -2
  159. package/dist/lib/inspect-routes.d.ts.map +0 -1
  160. package/dist/lib/inspect-routes.js +0 -150
  161. package/dist/lib/inspect-routes.js.map +0 -1
  162. package/dist/lib/start-repl.d.ts +0 -2
  163. package/dist/lib/start-repl.d.ts.map +0 -1
  164. package/dist/lib/start-repl.js +0 -120
  165. package/dist/lib/start-repl.js.map +0 -1
  166. package/dist/sanitize/sanitize.d.ts +0 -33
  167. package/dist/sanitize/sanitize.d.ts.map +0 -1
  168. package/dist/sanitize/sanitize.js +0 -104
  169. package/dist/sanitize/sanitize.js.map +0 -1
  170. /package/dist/{cli → lib}/resolve-aliases.d.ts +0 -0
  171. /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?: TexObjectOptions): TexEngine<ResolveSchema<T>> & {
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
- }): TexEngine<ResolveSchema<{
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":"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"}
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:${values.join(',')}`;
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
- let base = `literal:${value}`;
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) => (s instanceof tex_types_1.TexType ? s._raw : 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
- return new tex_types_1.TexType(base);
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
- const itemSchema = schema instanceof tex_types_1.TexType ? schema._raw : schema;
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
- return new tex_types_1.TexType(base);
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
- return new engine_1.TexEngine(compiledSchema, shape, opts?.strict);
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
- let raw = value._raw;
533
+ const raw = value._raw;
468
534
  // Auto-inject coercion if not already present
469
- if ((raw.startsWith('number') ||
470
- raw.startsWith('boolean') ||
471
- raw.startsWith('date') ||
472
- raw.startsWith('array<')) &&
473
- !raw.includes('coerce')) {
474
- raw = `${raw} | coerce`;
475
- }
476
- const cloned = new tex_types_1.TexType(raw, value.defaultValue);
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
- /** Builds the validator TexEngine calls for every parse */
2
- export declare function compileSchema(schema: Record<string, string>, strict: boolean): (data: any) => any;
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":"AA0RA,2DAA2D;AAC3D,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,MAAM,EAAE,OAAO,GACd,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAkBpB"}
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 is never part of the
15
- // code. Where `new Function` is unavailable (strict CSP, some edge runtimes)
16
- // the closure-based validator from rules.ts is used instead.
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 and Sets referenced from generated code as x[n] */
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 = keys.map((k) => (0, rules_1.compileRule)(schema[k]));
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 canBeAbsent = rule.optional && rule.defaultValue === undefined;
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
- let onMissing;
61
- if (rule.defaultValue !== undefined) {
62
- onMissing = `${v}=${JSON.stringify(rule.defaultValue)};`;
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
- else if (rule.optional) {
65
- onMissing = '';
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
- else {
68
- onMissing = `E("missing","",[${fieldPath.join(',')}]);`;
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){${onMissing}}${check}`;
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 && rules[i].defaultValue === undefined;
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
- let code = '';
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.delegate(rule, v, path);
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, false, v, out, path)}${v}=${out};`);
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}=A(${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.delegate(rule, v, path);
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
- /** Builds the validator TexEngine calls for every parse */
232
- function compileSchema(schema, strict) {
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
- validate = generate(schema, strict);
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 Error('Input must be a JSON object');
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