exisjs 0.7.11 → 0.7.13
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 +195 -39
- package/dist/cli/commands/dev.d.ts +4 -0
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +136 -32
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/run.d.ts +7 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +99 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/index.js +29 -13
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/manifest.d.ts.map +1 -1
- package/dist/cli/manifest.js +18 -3
- package/dist/cli/manifest.js.map +1 -1
- package/dist/cli/routes.d.ts +6 -0
- package/dist/cli/routes.d.ts.map +1 -1
- package/dist/cli/routes.js +224 -135
- package/dist/cli/routes.js.map +1 -1
- package/dist/config/config.d.ts +2 -1
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js.map +1 -1
- package/dist/config/types.d.ts +30 -9
- package/dist/config/types.d.ts.map +1 -1
- package/dist/database/lifecycle.d.ts +6 -1
- package/dist/database/lifecycle.d.ts.map +1 -1
- package/dist/database/lifecycle.js +15 -4
- package/dist/database/lifecycle.js.map +1 -1
- package/dist/decorators/params.d.ts +21 -0
- package/dist/decorators/params.d.ts.map +1 -1
- package/dist/decorators/params.js +21 -1
- package/dist/decorators/params.js.map +1 -1
- package/dist/di/container.d.ts +15 -6
- package/dist/di/container.d.ts.map +1 -1
- package/dist/di/container.js +26 -3
- package/dist/di/container.js.map +1 -1
- package/dist/di/index.d.ts +1 -1
- package/dist/di/index.d.ts.map +1 -1
- package/dist/di/index.js.map +1 -1
- package/dist/di/inject.d.ts +2 -1
- package/dist/di/inject.d.ts.map +1 -1
- package/dist/di/inject.js +2 -1
- package/dist/di/inject.js.map +1 -1
- package/dist/docs/BENCHMARKS.md +4 -4
- package/dist/docs/content/README.md +43 -44
- package/dist/docs/content/boundaries.mdx +141 -48
- package/dist/docs/content/cli/commands.mdx +161 -107
- package/dist/docs/content/cli/overview.mdx +61 -46
- package/dist/docs/content/cli/usage.mdx +107 -30
- package/dist/docs/content/config.mdx +145 -147
- package/dist/docs/content/controllers.mdx +193 -464
- package/dist/docs/content/cron.mdx +183 -69
- package/dist/docs/content/decorators.mdx +449 -154
- package/dist/docs/content/errors.mdx +202 -305
- package/dist/docs/content/exisjs-mcp.mdx +59 -49
- package/dist/docs/content/installation.mdx +243 -157
- package/dist/docs/content/introduction.mdx +220 -48
- package/dist/docs/content/middleware.mdx +171 -497
- package/dist/docs/content/modules.mdx +141 -83
- package/dist/docs/content/providers.mdx +216 -180
- package/dist/docs/content/requests.mdx +168 -488
- package/dist/docs/content/responses.mdx +200 -533
- package/dist/docs/content/routing.mdx +239 -558
- package/dist/docs/content/security.mdx +233 -57
- package/dist/docs/content/structure.mdx +151 -240
- package/dist/docs/content/swagger.mdx +192 -91
- package/dist/docs/content/testing.mdx +205 -74
- package/dist/docs/content/validation.mdx +479 -341
- package/dist/docs/reference/README.md +34 -2
- package/dist/docs/reference/config.mdx +277 -73
- package/dist/docs/reference/context.mdx +197 -106
- package/dist/docs/reference/cron.mdx +266 -152
- package/dist/docs/reference/database.mdx +135 -53
- package/dist/docs/reference/decorators.mdx +234 -116
- package/dist/docs/reference/di.mdx +146 -112
- package/dist/docs/reference/error.mdx +155 -178
- package/dist/docs/reference/exis.mdx +141 -70
- package/dist/docs/reference/logger.mdx +110 -126
- package/dist/docs/reference/middleware.mdx +235 -158
- package/dist/docs/reference/plugin.mdx +136 -64
- package/dist/docs/reference/router.mdx +277 -251
- package/dist/docs/reference/sanitize.mdx +91 -87
- package/dist/docs/reference/swagger.mdx +280 -100
- package/dist/docs/reference/testing.mdx +223 -89
- package/dist/docs/reference/validator.mdx +194 -206
- package/dist/lib/inspect-routes.d.ts +2 -0
- package/dist/lib/inspect-routes.d.ts.map +1 -0
- package/dist/lib/inspect-routes.js +148 -0
- package/dist/lib/inspect-routes.js.map +1 -0
- package/dist/lib/start-server.js +13 -8
- package/dist/lib/start-server.js.map +1 -1
- package/dist/module/module.d.ts +6 -3
- package/dist/module/module.d.ts.map +1 -1
- package/dist/module/module.js +17 -3
- package/dist/module/module.js.map +1 -1
- package/dist/router/controller-registrar.d.ts.map +1 -1
- package/dist/router/controller-registrar.js +26 -4
- package/dist/router/controller-registrar.js.map +1 -1
- package/dist/router/scanner/cron-mounter.d.ts.map +1 -1
- package/dist/router/scanner/cron-mounter.js +9 -2
- package/dist/router/scanner/cron-mounter.js.map +1 -1
- package/dist/server/app.d.ts +3 -1
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +29 -8
- package/dist/server/app.js.map +1 -1
- package/dist/server/define.d.ts.map +1 -1
- package/dist/server/define.js +5 -0
- package/dist/server/define.js.map +1 -1
- package/dist/server/request.d.ts +2 -0
- package/dist/server/request.d.ts.map +1 -1
- package/dist/server/request.js +11 -0
- package/dist/server/request.js.map +1 -1
- package/dist/swagger/generator.d.ts.map +1 -1
- package/dist/swagger/generator.js +130 -10
- package/dist/swagger/generator.js.map +1 -1
- package/dist/telemetry/index.d.ts +12 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +121 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/testing/client.d.ts +1 -0
- package/dist/testing/client.d.ts.map +1 -1
- package/dist/testing/client.js +4 -1
- package/dist/testing/client.js.map +1 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +20 -4
- package/dist/testing/index.js.map +1 -1
- package/dist/validator/builder.d.ts +26 -1
- package/dist/validator/builder.d.ts.map +1 -1
- package/dist/validator/builder.js +31 -0
- package/dist/validator/builder.js.map +1 -1
- package/dist/validator/engine.d.ts +23 -0
- package/dist/validator/engine.d.ts.map +1 -1
- package/dist/validator/engine.js +228 -31
- package/dist/validator/engine.js.map +1 -1
- package/dist/validator/index.d.ts +8 -4
- package/dist/validator/index.d.ts.map +1 -1
- package/dist/validator/index.js +4 -1
- package/dist/validator/index.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 +102 -0
- 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/tex.js +3 -1
- package/dist/validator/tex.js.map +1 -1
- package/dist/validator/types.d.ts +1 -0
- package/dist/validator/types.d.ts.map +1 -1
- package/package.json +47 -14
- package/dist/docs/content/dataloader.mdx +0 -170
- package/dist/docs/reference/dataloader.mdx +0 -91
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"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"}
|
package/dist/testing/index.js
CHANGED
|
@@ -213,11 +213,27 @@ function createTestContext(appInput) {
|
|
|
213
213
|
console.error('UNHANDLED REJECTION DETECTED:', reason);
|
|
214
214
|
});
|
|
215
215
|
(0, exports.before)(async () => {
|
|
216
|
-
if (typeof app.
|
|
217
|
-
await app.
|
|
216
|
+
if (typeof app.boot === 'function') {
|
|
217
|
+
const bootedApp = await app.boot();
|
|
218
|
+
if (bootedApp)
|
|
219
|
+
app = bootedApp;
|
|
218
220
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
+
else {
|
|
222
|
+
if (typeof app.create === 'function') {
|
|
223
|
+
await app.create();
|
|
224
|
+
}
|
|
225
|
+
if (typeof app.onStartHook === 'function') {
|
|
226
|
+
await app.onStartHook(app);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
try {
|
|
230
|
+
const { DatabaseManager } = await Promise.resolve().then(() => __importStar(require('../database/lifecycle')));
|
|
231
|
+
if (DatabaseManager.size > 0) {
|
|
232
|
+
await DatabaseManager.connectAll();
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
catch {
|
|
236
|
+
// ignore
|
|
221
237
|
}
|
|
222
238
|
// Wait for Mongoose to finish connecting to prevent node:test race conditions
|
|
223
239
|
// where tests finish faster than the DB connection, causing node:test to cancel them.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,0CAEC;AAiID,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TexString, TexNumber, TexBoolean, TexArray, TexEnum, TexLiteral, TexUnion, TexDate, TexRecord, TexAny, TexFile, ResolveSchema } from './tex-types';
|
|
2
2
|
import type { TexBaseOptions, TexStringOptions, TexNumberOptions, TexBooleanOptions, TexArrayOptions, TexEnumOptions, TexObjectOptions, TexFileOptions, TexPasswordOptions, TexDateOptions } from './types';
|
|
3
|
-
import { TexEngine } from './engine';
|
|
3
|
+
import { TexEngine, TexDiscriminatedUnionEngine } from './engine';
|
|
4
4
|
/**
|
|
5
5
|
* Ultra-high performance declarative schema builder powered by the native Rust validator.
|
|
6
6
|
*/
|
|
@@ -152,6 +152,31 @@ export declare class TexBuilder {
|
|
|
152
152
|
* Defines a file upload validation schema.
|
|
153
153
|
*/
|
|
154
154
|
file<O extends TexFileOptions = TexFileOptions>(opts?: O): TexFile<O['optional'] extends true ? true : false>;
|
|
155
|
+
/**
|
|
156
|
+
* Defines a discriminated union schema matching one of multiple object variants by a discriminator property.
|
|
157
|
+
*
|
|
158
|
+
* @param discriminator Property name identifying the variant (e.g. `'type'` or `'kind'`)
|
|
159
|
+
* @param variants Array of candidate TexEngine or object schemas
|
|
160
|
+
* @returns Strongly typed `TexDiscriminatedUnionEngine`
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```ts
|
|
164
|
+
* const ActionSchema = tex.discriminatedUnion('type', [
|
|
165
|
+
* tex.object({ type: tex.literal('create'), name: tex.string() }),
|
|
166
|
+
* tex.object({ type: tex.literal('delete'), id: tex.number() })
|
|
167
|
+
* ])
|
|
168
|
+
* ```
|
|
169
|
+
*/
|
|
170
|
+
discriminatedUnion<Discriminator extends string, Variants extends (TexEngine<any> | Record<string, any>)[]>(discriminator: Discriminator, variants: Variants): TexDiscriminatedUnionEngine<Discriminator, Variants>;
|
|
171
|
+
/**
|
|
172
|
+
* Coercion primitives namespace for query parameters, headers, and form-data.
|
|
173
|
+
*/
|
|
174
|
+
get coerce(): {
|
|
175
|
+
number: (opts?: TexNumberOptions) => TexNumber<false>;
|
|
176
|
+
boolean: (opts?: TexBooleanOptions) => TexBoolean<false>;
|
|
177
|
+
date: (opts?: TexDateOptions) => TexDate<false>;
|
|
178
|
+
string: (opts?: TexStringOptions) => TexString<false>;
|
|
179
|
+
};
|
|
155
180
|
/**
|
|
156
181
|
* Compiles an object structure into a fast `TexEngine` validator instance.
|
|
157
182
|
*
|
|
@@ -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,EACd,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,EACf,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/validator/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,8 @@ class TexBuilder {
|
|
|
26
26
|
base += ' | nullable';
|
|
27
27
|
if (opts?.nullish)
|
|
28
28
|
base += ' | nullish';
|
|
29
|
+
if (opts?.coerce)
|
|
30
|
+
base += ' | coerce';
|
|
29
31
|
if (opts?.min !== undefined)
|
|
30
32
|
base += ` | min:${opts.min}`;
|
|
31
33
|
if (opts?.max !== undefined)
|
|
@@ -382,6 +384,35 @@ class TexBuilder {
|
|
|
382
384
|
base += ` | mimeTypes:${opts.mimeTypes.join(',')}`;
|
|
383
385
|
return new tex_types_1.TexType(base);
|
|
384
386
|
}
|
|
387
|
+
/**
|
|
388
|
+
* Defines a discriminated union schema matching one of multiple object variants by a discriminator property.
|
|
389
|
+
*
|
|
390
|
+
* @param discriminator Property name identifying the variant (e.g. `'type'` or `'kind'`)
|
|
391
|
+
* @param variants Array of candidate TexEngine or object schemas
|
|
392
|
+
* @returns Strongly typed `TexDiscriminatedUnionEngine`
|
|
393
|
+
*
|
|
394
|
+
* @example
|
|
395
|
+
* ```ts
|
|
396
|
+
* const ActionSchema = tex.discriminatedUnion('type', [
|
|
397
|
+
* tex.object({ type: tex.literal('create'), name: tex.string() }),
|
|
398
|
+
* tex.object({ type: tex.literal('delete'), id: tex.number() })
|
|
399
|
+
* ])
|
|
400
|
+
* ```
|
|
401
|
+
*/
|
|
402
|
+
discriminatedUnion(discriminator, variants) {
|
|
403
|
+
return new engine_1.TexDiscriminatedUnionEngine(discriminator, variants);
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Coercion primitives namespace for query parameters, headers, and form-data.
|
|
407
|
+
*/
|
|
408
|
+
get coerce() {
|
|
409
|
+
return {
|
|
410
|
+
number: (opts) => this.number({ ...opts, coerce: true }),
|
|
411
|
+
boolean: (opts) => this.boolean({ ...opts, coerce: true }),
|
|
412
|
+
date: (opts) => this.date({ ...opts, coerce: true }),
|
|
413
|
+
string: (opts) => this.string({ ...opts, coerce: true }),
|
|
414
|
+
};
|
|
415
|
+
}
|
|
385
416
|
/**
|
|
386
417
|
* Compiles an object structure into a fast `TexEngine` validator instance.
|
|
387
418
|
*
|
|
@@ -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,4 @@
|
|
|
1
|
+
import { type ResolveSchema } from './tex-types';
|
|
1
2
|
export declare class TexEngine<T = any> {
|
|
2
3
|
private schema;
|
|
3
4
|
private rawSchema;
|
|
@@ -9,6 +10,9 @@ export declare class TexEngine<T = any> {
|
|
|
9
10
|
getCompiledSchema(): Record<string, string>;
|
|
10
11
|
optional(): TexEngine<T | undefined>;
|
|
11
12
|
partial(): TexEngine<Partial<T>>;
|
|
13
|
+
extend<E extends Record<string, any>>(extension: E): TexEngine<T & ResolveSchema<E>>;
|
|
14
|
+
merge<Other>(other: TexEngine<Other>): TexEngine<T & Other>;
|
|
15
|
+
transform<Out>(fn: (val: T) => Out): TexTransformedEngine<T, Out>;
|
|
12
16
|
pick<K extends keyof T>(keys: K[]): TexEngine<Pick<T, K>>;
|
|
13
17
|
omit<K extends keyof T>(keys: K[]): TexEngine<Omit<T, K>>;
|
|
14
18
|
parse(data: any): T;
|
|
@@ -16,4 +20,23 @@ export declare class TexEngine<T = any> {
|
|
|
16
20
|
toMongoSchema(): Record<string, any>;
|
|
17
21
|
toOpenApi(): Record<string, any>;
|
|
18
22
|
}
|
|
23
|
+
export declare class TexTransformedEngine<In, Out> {
|
|
24
|
+
readonly inner: TexEngine<In>;
|
|
25
|
+
readonly transformFn: (val: In) => Out;
|
|
26
|
+
readonly _type: Out;
|
|
27
|
+
constructor(inner: TexEngine<In>, transformFn: (val: In) => Out);
|
|
28
|
+
parse(data: any): Out;
|
|
29
|
+
parseAsync(data: any): Promise<Out>;
|
|
30
|
+
toOpenApi(): Record<string, any>;
|
|
31
|
+
}
|
|
32
|
+
export declare class TexDiscriminatedUnionEngine<Discriminator extends string, Variants extends (TexEngine<any> | Record<string, any>)[]> {
|
|
33
|
+
readonly discriminator: Discriminator;
|
|
34
|
+
readonly variants: Variants;
|
|
35
|
+
readonly _type: Variants[number]['_type'];
|
|
36
|
+
private engines;
|
|
37
|
+
constructor(discriminator: Discriminator, variants: Variants);
|
|
38
|
+
parse(data: any): Variants[number]['_type'];
|
|
39
|
+
parseAsync(data: any): Promise<Variants[number]['_type']>;
|
|
40
|
+
toOpenApi(): Record<string, any>;
|
|
41
|
+
}
|
|
19
42
|
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/validator/engine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/validator/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/validator/engine.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TexEngine = void 0;
|
|
3
|
+
exports.TexDiscriminatedUnionEngine = exports.TexTransformedEngine = exports.TexEngine = void 0;
|
|
4
4
|
const rs_1 = require("@exisjs/rs");
|
|
5
5
|
const tex_types_1 = require("./tex-types");
|
|
6
6
|
const error_1 = require("./error");
|
|
@@ -39,6 +39,33 @@ class TexEngine {
|
|
|
39
39
|
}
|
|
40
40
|
return new TexEngine(newSchema, newRaw, this.strict, this._isOptional);
|
|
41
41
|
}
|
|
42
|
+
extend(extension) {
|
|
43
|
+
const newSchema = { ...this.schema };
|
|
44
|
+
const newRaw = { ...this.rawSchema };
|
|
45
|
+
for (const [key, val] of Object.entries(extension)) {
|
|
46
|
+
if (val instanceof TexEngine) {
|
|
47
|
+
newSchema[key] = `object<${JSON.stringify(val.getCompiledSchema())}>`;
|
|
48
|
+
newRaw[key] = val;
|
|
49
|
+
}
|
|
50
|
+
else if (val instanceof tex_types_1.TexType) {
|
|
51
|
+
newSchema[key] = val._raw;
|
|
52
|
+
newRaw[key] = val;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
newSchema[key] = val;
|
|
56
|
+
newRaw[key] = val;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return new TexEngine(newSchema, newRaw, this.strict, this._isOptional);
|
|
60
|
+
}
|
|
61
|
+
merge(other) {
|
|
62
|
+
const newSchema = { ...this.schema, ...other.getCompiledSchema() };
|
|
63
|
+
const newRaw = { ...this.rawSchema, ...other.rawSchema };
|
|
64
|
+
return new TexEngine(newSchema, newRaw, this.strict, this._isOptional);
|
|
65
|
+
}
|
|
66
|
+
transform(fn) {
|
|
67
|
+
return new TexTransformedEngine(this, fn);
|
|
68
|
+
}
|
|
42
69
|
pick(keys) {
|
|
43
70
|
const newSchema = {};
|
|
44
71
|
const newRaw = {};
|
|
@@ -173,6 +200,11 @@ class TexEngine {
|
|
|
173
200
|
}
|
|
174
201
|
}
|
|
175
202
|
}
|
|
203
|
+
if (val instanceof tex_types_1.TexType && val._raw.startsWith('string')) {
|
|
204
|
+
if (val._raw.includes('coerce') && typeof data[key] !== 'string') {
|
|
205
|
+
data[key] = String(data[key]);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
176
208
|
if (val instanceof tex_types_1.TexType && val._raw.startsWith('number')) {
|
|
177
209
|
if (val._raw.includes('coerce') || this._isQueryOrParam) {
|
|
178
210
|
if (typeof data[key] === 'string' && data[key].trim() !== '') {
|
|
@@ -495,10 +527,22 @@ class TexEngine {
|
|
|
495
527
|
}
|
|
496
528
|
if (errors.length > 0)
|
|
497
529
|
throw new error_1.ValidatorError(errors);
|
|
530
|
+
// 4. Post-validation field transformations
|
|
531
|
+
if (parsedData && typeof parsedData === 'object') {
|
|
532
|
+
for (const [key, val] of Object.entries(this.rawSchema)) {
|
|
533
|
+
if (parsedData[key] !== undefined) {
|
|
534
|
+
if (val instanceof tex_types_1.TexType && val.transformations.length > 0) {
|
|
535
|
+
for (const t of val.transformations) {
|
|
536
|
+
parsedData[key] = t(parsedData[key]);
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
}
|
|
498
542
|
return parsedData;
|
|
499
543
|
}
|
|
500
544
|
async parseAsync(data) {
|
|
501
|
-
const parsed = this.parse(data); // Handles sync sanitizers + rust + sync refine
|
|
545
|
+
const parsed = this.parse(data); // Handles sync sanitizers + rust + sync refine + transformations
|
|
502
546
|
const errors = [];
|
|
503
547
|
if (parsed && typeof parsed === 'object') {
|
|
504
548
|
await Promise.all(Object.entries(this.rawSchema).map(async ([key, val]) => {
|
|
@@ -566,38 +610,49 @@ class TexEngine {
|
|
|
566
610
|
toOpenApi() {
|
|
567
611
|
const properties = {};
|
|
568
612
|
const required = [];
|
|
569
|
-
for (const [key,
|
|
613
|
+
for (const [key, rawVal] of Object.entries(this.rawSchema)) {
|
|
614
|
+
const rawDef = this.schema[key] || '';
|
|
570
615
|
const typeStr = rawDef.split('|')[0].trim();
|
|
571
|
-
const isOptional = typeStr.endsWith('?')
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
baseType.startsWith('password')) {
|
|
578
|
-
prop.type = 'string';
|
|
579
|
-
}
|
|
580
|
-
else if (baseType.startsWith('email')) {
|
|
581
|
-
prop.type = 'string';
|
|
582
|
-
prop.format = 'email';
|
|
583
|
-
}
|
|
584
|
-
else if (baseType.startsWith('number')) {
|
|
585
|
-
prop.type = 'number';
|
|
586
|
-
}
|
|
587
|
-
else if (baseType.startsWith('boolean')) {
|
|
588
|
-
prop.type = 'boolean';
|
|
589
|
-
}
|
|
590
|
-
else if (baseType.startsWith('date')) {
|
|
591
|
-
prop.type = 'string';
|
|
592
|
-
}
|
|
593
|
-
else if (baseType.startsWith('array<')) {
|
|
594
|
-
prop.type = 'array';
|
|
595
|
-
}
|
|
596
|
-
else if (baseType.startsWith('enum:')) {
|
|
597
|
-
prop.type = 'string';
|
|
616
|
+
const isOptional = typeStr.endsWith('?') ||
|
|
617
|
+
rawDef.includes('optional') ||
|
|
618
|
+
rawVal?._isOptional;
|
|
619
|
+
let prop;
|
|
620
|
+
if (rawVal && typeof rawVal.toOpenApi === 'function') {
|
|
621
|
+
prop = rawVal.toOpenApi();
|
|
598
622
|
}
|
|
599
623
|
else {
|
|
600
|
-
|
|
624
|
+
const baseType = typeStr.replace('?', '');
|
|
625
|
+
prop = {};
|
|
626
|
+
if (baseType.startsWith('string') ||
|
|
627
|
+
baseType.startsWith('uuid') ||
|
|
628
|
+
baseType.startsWith('cuid') ||
|
|
629
|
+
baseType.startsWith('password')) {
|
|
630
|
+
prop.type = 'string';
|
|
631
|
+
}
|
|
632
|
+
else if (baseType.startsWith('email')) {
|
|
633
|
+
prop.type = 'string';
|
|
634
|
+
prop.format = 'email';
|
|
635
|
+
}
|
|
636
|
+
else if (baseType.startsWith('number')) {
|
|
637
|
+
prop.type = 'number';
|
|
638
|
+
}
|
|
639
|
+
else if (baseType.startsWith('boolean')) {
|
|
640
|
+
prop.type = 'boolean';
|
|
641
|
+
}
|
|
642
|
+
else if (baseType.startsWith('date')) {
|
|
643
|
+
prop.type = 'string';
|
|
644
|
+
prop.format = 'date-time';
|
|
645
|
+
}
|
|
646
|
+
else if (baseType.startsWith('array<')) {
|
|
647
|
+
prop.type = 'array';
|
|
648
|
+
}
|
|
649
|
+
else if (baseType.startsWith('enum:')) {
|
|
650
|
+
prop.type = 'string';
|
|
651
|
+
prop.enum = baseType.replace('enum:', '').split(',');
|
|
652
|
+
}
|
|
653
|
+
else {
|
|
654
|
+
prop.type = 'object';
|
|
655
|
+
}
|
|
601
656
|
}
|
|
602
657
|
properties[key] = prop;
|
|
603
658
|
if (!isOptional)
|
|
@@ -610,4 +665,146 @@ class TexEngine {
|
|
|
610
665
|
}
|
|
611
666
|
}
|
|
612
667
|
exports.TexEngine = TexEngine;
|
|
668
|
+
class TexTransformedEngine {
|
|
669
|
+
constructor(inner, transformFn) {
|
|
670
|
+
this.inner = inner;
|
|
671
|
+
this.transformFn = transformFn;
|
|
672
|
+
}
|
|
673
|
+
parse(data) {
|
|
674
|
+
const validated = this.inner.parse(data);
|
|
675
|
+
return this.transformFn(validated);
|
|
676
|
+
}
|
|
677
|
+
async parseAsync(data) {
|
|
678
|
+
const validated = await this.inner.parseAsync(data);
|
|
679
|
+
return this.transformFn(validated);
|
|
680
|
+
}
|
|
681
|
+
toOpenApi() {
|
|
682
|
+
return this.inner.toOpenApi();
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
exports.TexTransformedEngine = TexTransformedEngine;
|
|
686
|
+
class TexDiscriminatedUnionEngine {
|
|
687
|
+
constructor(discriminator, variants) {
|
|
688
|
+
this.discriminator = discriminator;
|
|
689
|
+
this.variants = variants;
|
|
690
|
+
this.engines = variants.map((v) => v instanceof TexEngine
|
|
691
|
+
? v
|
|
692
|
+
: new TexEngine(Object.fromEntries(Object.entries(v).map(([k, val]) => [
|
|
693
|
+
k,
|
|
694
|
+
val instanceof tex_types_1.TexType ? val._raw : String(val),
|
|
695
|
+
])), v));
|
|
696
|
+
}
|
|
697
|
+
parse(data) {
|
|
698
|
+
if (!data || typeof data !== 'object') {
|
|
699
|
+
throw new error_1.ValidatorError([
|
|
700
|
+
{
|
|
701
|
+
path: '',
|
|
702
|
+
message: 'Expected an object for discriminated union payload',
|
|
703
|
+
expected: 'object',
|
|
704
|
+
received: (0, error_1.formatReceivedValue)(data),
|
|
705
|
+
code: 'INVALID_TYPE',
|
|
706
|
+
},
|
|
707
|
+
]);
|
|
708
|
+
}
|
|
709
|
+
const tagValue = data[this.discriminator];
|
|
710
|
+
if (tagValue === undefined) {
|
|
711
|
+
throw new error_1.ValidatorError([
|
|
712
|
+
{
|
|
713
|
+
path: this.discriminator,
|
|
714
|
+
message: `Missing discriminator field '${this.discriminator}'`,
|
|
715
|
+
expected: 'string | number',
|
|
716
|
+
received: 'undefined',
|
|
717
|
+
code: 'MISSING_DISCRIMINATOR',
|
|
718
|
+
},
|
|
719
|
+
]);
|
|
720
|
+
}
|
|
721
|
+
for (const engine of this.engines) {
|
|
722
|
+
const rawField = engine.rawSchema?.[this.discriminator];
|
|
723
|
+
let matches = false;
|
|
724
|
+
if (rawField instanceof tex_types_1.TexType) {
|
|
725
|
+
if (rawField._raw.startsWith('literal:')) {
|
|
726
|
+
const literalVal = rawField._raw
|
|
727
|
+
.replace('literal:', '')
|
|
728
|
+
.split('|')[0]
|
|
729
|
+
.trim();
|
|
730
|
+
if (String(tagValue) === literalVal)
|
|
731
|
+
matches = true;
|
|
732
|
+
}
|
|
733
|
+
else if (rawField._raw.startsWith('enum:')) {
|
|
734
|
+
const allowed = rawField._raw
|
|
735
|
+
.replace('enum:', '')
|
|
736
|
+
.split('|')[0]
|
|
737
|
+
.trim()
|
|
738
|
+
.split(',');
|
|
739
|
+
if (allowed.includes(String(tagValue)))
|
|
740
|
+
matches = true;
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
else if (typeof rawField === 'string' &&
|
|
744
|
+
rawField.startsWith('literal:')) {
|
|
745
|
+
const literalVal = rawField.replace('literal:', '').split('|')[0].trim();
|
|
746
|
+
if (String(tagValue) === literalVal)
|
|
747
|
+
matches = true;
|
|
748
|
+
}
|
|
749
|
+
if (matches) {
|
|
750
|
+
return engine.parse(data);
|
|
751
|
+
}
|
|
752
|
+
}
|
|
753
|
+
throw new error_1.ValidatorError([
|
|
754
|
+
{
|
|
755
|
+
path: this.discriminator,
|
|
756
|
+
message: `Invalid discriminator value '${tagValue}' for field '${this.discriminator}'`,
|
|
757
|
+
expected: 'one of matching variant discriminators',
|
|
758
|
+
received: (0, error_1.formatReceivedValue)(tagValue),
|
|
759
|
+
code: 'INVALID_DISCRIMINATOR_VALUE',
|
|
760
|
+
},
|
|
761
|
+
]);
|
|
762
|
+
}
|
|
763
|
+
async parseAsync(data) {
|
|
764
|
+
if (!data || typeof data !== 'object') {
|
|
765
|
+
return this.parse(data);
|
|
766
|
+
}
|
|
767
|
+
const tagValue = data[this.discriminator];
|
|
768
|
+
if (tagValue === undefined) {
|
|
769
|
+
return this.parse(data);
|
|
770
|
+
}
|
|
771
|
+
for (const engine of this.engines) {
|
|
772
|
+
const rawField = engine.rawSchema?.[this.discriminator];
|
|
773
|
+
let matches = false;
|
|
774
|
+
if (rawField instanceof tex_types_1.TexType) {
|
|
775
|
+
if (rawField._raw.startsWith('literal:')) {
|
|
776
|
+
const literalVal = rawField._raw
|
|
777
|
+
.replace('literal:', '')
|
|
778
|
+
.split('|')[0]
|
|
779
|
+
.trim();
|
|
780
|
+
if (String(tagValue) === literalVal)
|
|
781
|
+
matches = true;
|
|
782
|
+
}
|
|
783
|
+
else if (rawField._raw.startsWith('enum:')) {
|
|
784
|
+
const allowed = rawField._raw
|
|
785
|
+
.replace('enum:', '')
|
|
786
|
+
.split('|')[0]
|
|
787
|
+
.trim()
|
|
788
|
+
.split(',');
|
|
789
|
+
if (allowed.includes(String(tagValue)))
|
|
790
|
+
matches = true;
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
if (matches) {
|
|
794
|
+
return engine.parseAsync(data);
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
return this.parse(data);
|
|
798
|
+
}
|
|
799
|
+
toOpenApi() {
|
|
800
|
+
const oneOf = this.engines.map((e) => e.toOpenApi());
|
|
801
|
+
return {
|
|
802
|
+
oneOf,
|
|
803
|
+
discriminator: {
|
|
804
|
+
propertyName: this.discriminator,
|
|
805
|
+
},
|
|
806
|
+
};
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
exports.TexDiscriminatedUnionEngine = TexDiscriminatedUnionEngine;
|
|
613
810
|
//# sourceMappingURL=engine.js.map
|