@forklaunch/validator 0.3.10 → 0.3.12

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.
@@ -25,7 +25,7 @@ export type ParseResult<T> = {
25
25
  * @template ParseFunction - The function type for parsing a value against a schema.
26
26
  * @template OpenAPIFunction - The function type for converting a schema into an OpenAPI schema object.
27
27
  */
28
- export interface SchemaValidator<CompilationFunction = <T>(schema: T) => unknown, SchematicFunction = <T>(schema: T) => unknown, OptionalFunction = <T>(schema: T) => unknown, ArrayFunction = <T>(schema: T) => unknown, UnionFunction = <T>(schemas: T[]) => unknown, LiteralFunction = <T extends LiteralSchema>(schema: T) => unknown, ValidationFunction = <T>(schema: T, value: unknown) => boolean, ParseFunction = <T>(schema: T, value: unknown) => ParseResult<SchemaResolve<T>>, OpenAPIFunction = <T>(schema: T) => SchemaObject> {
28
+ export interface SchemaValidator<CompilationFunction = <T>(schema: T) => unknown, SchematicFunction = <T>(schema: T) => unknown, OptionalFunction = <T>(schema: T) => unknown, ArrayFunction = <T>(schema: T) => unknown, UnionFunction = <T>(schemas: T[]) => unknown, LiteralFunction = <T extends LiteralSchema>(schema: T) => unknown, EnumFunction = <T extends LiteralSchema>(schemaEnum: Record<string, T>) => unknown, SchemaGuardFunction = <T>(value: unknown) => value is T, ValidationFunction = <T>(schema: T, value: unknown) => boolean, ParseFunction = <T>(schema: T, value: unknown) => ParseResult<SchemaResolve<T>>, OpenAPIFunction = <T>(schema: T) => SchemaObject> {
29
29
  /**
30
30
  * The type of the schema validator. Meant to be used with non-null assertions.
31
31
  */
@@ -132,6 +132,20 @@ export interface SchemaValidator<CompilationFunction = <T>(schema: T) => unknown
132
132
  * @returns {unknown} - The literal schema.
133
133
  */
134
134
  literal: LiteralFunction;
135
+ /**
136
+ * Creates an enum schema from a record of literal values.
137
+ *
138
+ * @param {Record<string, T>} schemaEnum - The enum schema.
139
+ * @returns {unknown} - The enum schema.
140
+ */
141
+ enum_: EnumFunction;
142
+ /**
143
+ * Checks if a value is a schema.
144
+ *
145
+ * @param {unknown} value - The value to check.
146
+ * @returns {boolean} - Whether the value is a schema.
147
+ */
148
+ isSchema: SchemaGuardFunction;
135
149
  /**
136
150
  * Validates a value against a schema.
137
151
  *
@@ -159,7 +173,7 @@ export interface SchemaValidator<CompilationFunction = <T>(schema: T) => unknown
159
173
  /**
160
174
  * Type representing any schema validator.
161
175
  */
162
- export type AnySchemaValidator = SchemaValidator<unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown> & {
176
+ export type AnySchemaValidator = SchemaValidator<unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown> & {
163
177
  /**
164
178
  * The type of the schema resolver.
165
179
  */
@@ -1 +1 @@
1
- {"version":3,"file":"schema.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/schema.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/schema.types.ts"],"names":[],"mappings":"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"}
@@ -4,90 +4,96 @@ import { TypeboxSchemaValidator } from './typeboxSchemaValidator';
4
4
  * @returns {TypeboxSchemaValidator} The TypeboxSchemaValidator instance.
5
5
  */
6
6
  export declare const SchemaValidator: () => TypeboxSchemaValidator;
7
- declare const StaticSchemaValidator: TypeboxSchemaValidator;
8
7
  /**
9
8
  * TypeBox schema definition for string type.
10
9
  */
11
- export declare const string: typeof StaticSchemaValidator.string;
10
+ export declare const string: import("@sinclair/typebox").TString;
12
11
  /**
13
12
  * TypeBox schema definition for UUID type.
14
13
  */
15
- export declare const uuid: typeof StaticSchemaValidator.uuid;
14
+ export declare const uuid: import("@sinclair/typebox").TString;
16
15
  /**
17
16
  * TypeBox schema definition for URI type.
18
17
  */
19
- export declare const uri: typeof StaticSchemaValidator.uri;
18
+ export declare const uri: import("@sinclair/typebox").TString;
20
19
  /**
21
20
  * TypeBox schema definition for email type.
22
21
  */
23
- export declare const email: typeof StaticSchemaValidator.email;
22
+ export declare const email: import("@sinclair/typebox").TString;
24
23
  /**
25
24
  * TypeBox schema definition for number type.
26
25
  */
27
- export declare const number: typeof StaticSchemaValidator.number;
26
+ export declare const number: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TString, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TNull, import("@sinclair/typebox").TDate, import("@sinclair/typebox").TBigInt]>, number>;
28
27
  /**
29
28
  * TypeBox schema definition for bigint type.
30
29
  */
31
- export declare const bigint: typeof StaticSchemaValidator.bigint;
30
+ export declare const bigint: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TString, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TDate]>, bigint>;
32
31
  /**
33
32
  * TypeBox schema definition for boolean type.
34
33
  */
35
- export declare const boolean: typeof StaticSchemaValidator.boolean;
34
+ export declare const boolean: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TString]>, boolean | undefined>;
36
35
  /**
37
36
  * TypeBox schema definition for date type.
38
37
  */
39
- export declare const date: typeof StaticSchemaValidator.date;
38
+ export declare const date: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TDate, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TString, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TNull]>, Date>;
40
39
  /**
41
40
  * TypeBox schema definition for symbol type.
42
41
  */
43
- export declare const symbol: typeof StaticSchemaValidator.symbol;
42
+ export declare const symbol: import("@sinclair/typebox").TSymbol;
44
43
  /**
45
44
  * TypeBox schema definition for undefined, null, void types.
46
45
  */
47
- export declare const nullish: typeof StaticSchemaValidator.nullish;
46
+ export declare const nullish: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TVoid, import("@sinclair/typebox").TNull, import("@sinclair/typebox").TUndefined]>;
48
47
  /**
49
48
  * TypeBox schema definition for any type.
50
49
  */
51
- export declare const any: typeof StaticSchemaValidator.any;
50
+ export declare const any: import("@sinclair/typebox").TAny;
52
51
  /**
53
52
  * TypeBox schema definition for unknown type.
54
53
  */
55
- export declare const unknown: typeof StaticSchemaValidator.unknown;
54
+ export declare const unknown: import("@sinclair/typebox").TUnknown;
56
55
  /**
57
56
  * TypeBox schema definition for never type.
58
57
  */
59
- export declare const never: typeof StaticSchemaValidator.never;
58
+ export declare const never: import("@sinclair/typebox").TNever;
60
59
  /**
61
60
  * Transforms valid schema into TypeBox schema.
62
61
  */
63
- export declare const schemify: typeof StaticSchemaValidator.schemify;
62
+ export declare const schemify: <T extends import("./types/schema.types").TIdiomaticSchema>(schema: T) => import("./types/schema.types").TResolve<T>;
64
63
  /**
65
64
  * Makes a valid schema optional.
66
65
  */
67
- export declare const optional: typeof StaticSchemaValidator.optional;
66
+ export declare const optional: <T extends import("./types/schema.types").TIdiomaticSchema>(schema: T) => import("@sinclair/typebox").TOptional<import("./types/schema.types").TResolve<T>>;
68
67
  /**
69
68
  * Defines an array for a valid schema.
70
69
  */
71
- export declare const array: typeof StaticSchemaValidator.array;
70
+ export declare const array: <T extends import("./types/schema.types").TIdiomaticSchema>(schema: T) => import("@sinclair/typebox").TArray<import("./types/schema.types").TResolve<T>>;
72
71
  /**
73
72
  * Defines a union for a valid schema.
74
73
  */
75
- export declare const union: typeof StaticSchemaValidator.union;
74
+ export declare const union: <T extends import("./types/schema.types").TUnionContainer>(schemas: [...T]) => import("@sinclair/typebox").TUnion<import("./types/schema.types").UnionTResolve<T>>;
76
75
  /**
77
76
  * Defines a literal for a valid schema.
78
77
  */
79
- export declare const literal: typeof StaticSchemaValidator.literal;
78
+ export declare const literal: <T extends import("../..").LiteralSchema>(value: T) => import("@sinclair/typebox").TLiteral<T>;
79
+ /**
80
+ * Defines an enum for a valid schema.
81
+ */
82
+ export declare const enum_: <T extends import("../..").LiteralSchema>(schemaEnum: Record<string, T>) => import("@sinclair/typebox").TUnion<import("./types/schema.types").UnionTResolve<T[]>>;
83
+ /**
84
+ * Checks if a value is a TypeBox schema.
85
+ */
86
+ export declare const isSchema: (value: unknown) => value is import("@sinclair/typebox").TSchema;
80
87
  /**
81
88
  * Validates a value against a valid schema.
82
89
  */
83
- export declare const validate: typeof StaticSchemaValidator.validate;
90
+ export declare const validate: <T extends import("./types/schema.types").TIdiomaticSchema | import("@sinclair/typebox").TSchema>(schema: T | import("@sinclair/typebox/compiler").TypeCheck<import("./types/schema.types").TResolve<T>>, value: unknown) => boolean;
84
91
  /**
85
92
  * Parses a value against a valid schema.
86
93
  */
87
- export declare const parse: typeof StaticSchemaValidator.parse;
94
+ export declare const parse: <T extends import("./types/schema.types").TIdiomaticSchema | import("@sinclair/typebox").TSchema>(schema: T | import("@sinclair/typebox/compiler").TypeCheck<import("./types/schema.types").TResolve<T>>, value: unknown) => import("../..").ParseResult<import("./types/schema.types").TResolve<T>>;
88
95
  /**
89
96
  * Generates an OpenAPI schema object from a valid schema.
90
97
  */
91
- export declare const openapi: typeof StaticSchemaValidator.openapi;
92
- export {};
98
+ export declare const openapi: <T extends import("./types/schema.types").TIdiomaticSchema | import("@sinclair/typebox").TSchema>(schema: T) => import("openapi3-ts/oas31").SchemaObject;
93
99
  //# sourceMappingURL=staticSchemaValidator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"staticSchemaValidator.d.ts","sourceRoot":"","sources":["../../../src/typebox/staticSchemaValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,eAAe,8BAAqC,CAAC;AAElE,QAAA,MAAM,qBAAqB,wBAAoB,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,qBAAqB,CAAC,MACpB,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,OAAO,qBAAqB,CAAC,IACpB,CAAC;AAE7B;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE,OAAO,qBAAqB,CAAC,GAA+B,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAAO,qBAAqB,CAAC,KACpB,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,qBAAqB,CAAC,MACpB,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,qBAAqB,CAAC,MACpB,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAO,qBAAqB,CAAC,OACpB,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,OAAO,qBAAqB,CAAC,IACpB,CAAC;AAE7B;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,qBAAqB,CAAC,MACpB,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAO,qBAAqB,CAAC,OACpB,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE,OAAO,qBAAqB,CAAC,GAA+B,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAO,qBAAqB,CAAC,OACpB,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAAO,qBAAqB,CAAC,KACpB,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,qBAAqB,CAAC,QACQ,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,qBAAqB,CAAC,QACQ,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAAO,qBAAqB,CAAC,KACQ,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAAO,qBAAqB,CAAC,KACQ,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAO,qBAAqB,CAAC,OACQ,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,qBAAqB,CAAC,QACQ,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAAO,qBAAqB,CAAC,KACQ,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAO,qBAAqB,CAAC,OACQ,CAAC"}
1
+ {"version":3,"file":"staticSchemaValidator.d.ts","sourceRoot":"","sources":["../../../src/typebox/staticSchemaValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,eAAe,8BAAqC,CAAC;AAIlE;;GAEG;AACH,eAAO,MAAM,MAAM,qCAA+B,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,IAAI,qCAA6B,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,GAAG,qCAA4B,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,KAAK,qCAA8B,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,MAAM,iTAA+B,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,MAAM,8QAA+B,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,OAAO,8KAAgC,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,IAAI,0QAA6B,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,MAAM,qCAA+B,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,OAAO,oJAAgC,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,GAAG,kCAA4B,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,OAAO,sCAAgC,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,KAAK,oCAA8B,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,QAAQ,sHAEpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,6JAEpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,0JAA0D,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,KAAK,oKAA0D,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,OAAO,gGAEnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,mKAA0D,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,QAAQ,kEAEpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,sOAEpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,sSAA0D,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,OAAO,0JAEnB,CAAC"}
@@ -77,6 +77,14 @@ export const union = StaticSchemaValidator.union.bind(StaticSchemaValidator);
77
77
  * Defines a literal for a valid schema.
78
78
  */
79
79
  export const literal = StaticSchemaValidator.literal.bind(StaticSchemaValidator);
80
+ /**
81
+ * Defines an enum for a valid schema.
82
+ */
83
+ export const enum_ = StaticSchemaValidator.enum_.bind(StaticSchemaValidator);
84
+ /**
85
+ * Checks if a value is a TypeBox schema.
86
+ */
87
+ export const isSchema = StaticSchemaValidator.isSchema.bind(StaticSchemaValidator);
80
88
  /**
81
89
  * Validates a value against a valid schema.
82
90
  */
@@ -13,7 +13,7 @@ import { TIdiomaticSchema, TObject, TResolve, TUnionContainer, UnionTResolve } f
13
13
  * Class representing a TypeBox schema definition.
14
14
  * @implements {SchemaValidator}
15
15
  */
16
- export declare class TypeboxSchemaValidator implements SV<(<T extends TObject<TProperties>>(schema: T) => TypeCheck<T>), <T extends TIdiomaticSchema>(schema: T) => TResolve<T>, <T extends TIdiomaticSchema>(schema: T) => TOptional<TResolve<T>>, <T extends TIdiomaticSchema>(schema: T) => TArray<TResolve<T>>, <T extends TUnionContainer>(schemas: [...T]) => TUnion<UnionTResolve<T>>, <T extends LiteralSchema>(value: T) => TLiteral<T>, <T extends TIdiomaticSchema>(schema: T, value: unknown) => boolean, <T extends TIdiomaticSchema>(schema: T, value: unknown) => ParseResult<TResolve<T>>, <T extends TIdiomaticSchema>(schema: T) => SchemaObject> {
16
+ export declare class TypeboxSchemaValidator implements SV<(<T extends TObject<TProperties>>(schema: T) => TypeCheck<T>), <T extends TIdiomaticSchema>(schema: T) => TResolve<T>, <T extends TIdiomaticSchema>(schema: T) => TOptional<TResolve<T>>, <T extends TIdiomaticSchema>(schema: T) => TArray<TResolve<T>>, <T extends TUnionContainer>(schemas: [...T]) => TUnion<UnionTResolve<T>>, <T extends LiteralSchema>(value: T) => TLiteral<T>, <T extends LiteralSchema>(schemaEnum: Record<string, T>) => TUnion<UnionTResolve<T[]>>, (value: unknown) => value is TSchema, <T extends TIdiomaticSchema>(schema: T, value: unknown) => boolean, <T extends TIdiomaticSchema>(schema: T, value: unknown) => ParseResult<TResolve<T>>, <T extends TIdiomaticSchema>(schema: T) => SchemaObject> {
17
17
  _Type: 'TypeBox';
18
18
  _SchemaCatchall: TKind;
19
19
  _ValidSchemaObject: TObject<TProperties> | TArray<TObject<TProperties>>;
@@ -84,6 +84,18 @@ export declare class TypeboxSchemaValidator implements SV<(<T extends TObject<TP
84
84
  * @returns {TLiteral<T>} The literal schema.
85
85
  */
86
86
  literal<T extends LiteralSchema>(value: T): TLiteral<T>;
87
+ /**
88
+ * Create an enum schema.
89
+ * @param {Record<string, LiteralSchema>} schemaEnum - The enum schema.
90
+ * @returns {TUnion<UnionTResolve<T[]>>} The enum schema.
91
+ */
92
+ enum_<T extends LiteralSchema>(schemaEnum: Record<string, T>): TUnion<UnionTResolve<T[]>>;
93
+ /**
94
+ * Check if a value is a TypeBox object schema.
95
+ * @param {unknown} value - The value to check.
96
+ * @returns {boolean} True if the value is a TypeBox object schema.
97
+ */
98
+ isSchema(value: unknown): value is TSchema;
87
99
  /**
88
100
  * Validate a value against a schema.
89
101
  *
@@ -1 +1 @@
1
- {"version":3,"file":"typeboxSchemaValidator.d.ts","sourceRoot":"","sources":["../../../src/typebox/typeboxSchemaValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typeboxSchemaValidator.d.ts","sourceRoot":"","sources":["../../../src/typebox/typeboxSchemaValidator.ts"],"names":[],"mappings":"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"}
@@ -152,6 +152,9 @@ export class TypeboxSchemaValidator {
152
152
  if (Object.hasOwn(schema, 'errorType')) {
153
153
  return schema.errorType;
154
154
  }
155
+ else if (KindGuard.IsLiteral(schema)) {
156
+ return schema.const;
157
+ }
155
158
  return schema[Kind].toLowerCase();
156
159
  }
157
160
  /**
@@ -254,9 +257,25 @@ export class TypeboxSchemaValidator {
254
257
  */
255
258
  literal(value) {
256
259
  return Type.Literal(value, {
257
- errorType: `literal "${value}"`
260
+ errorType: value
258
261
  });
259
262
  }
263
+ /**
264
+ * Create an enum schema.
265
+ * @param {Record<string, LiteralSchema>} schemaEnum - The enum schema.
266
+ * @returns {TUnion<UnionTResolve<T[]>>} The enum schema.
267
+ */
268
+ enum_(schemaEnum) {
269
+ return this.union(Object.values(schemaEnum));
270
+ }
271
+ /**
272
+ * Check if a value is a TypeBox object schema.
273
+ * @param {unknown} value - The value to check.
274
+ * @returns {boolean} True if the value is a TypeBox object schema.
275
+ */
276
+ isSchema(value) {
277
+ return KindGuard.IsSchema(value);
278
+ }
260
279
  /**
261
280
  * Validate a value against a schema.
262
281
  *
@@ -4,90 +4,96 @@ import { ZodSchemaValidator } from './zodSchemaValidator';
4
4
  * @returns {ZodSchemaValidator} The ZodSchemaValidator instance.
5
5
  */
6
6
  export declare const SchemaValidator: () => ZodSchemaValidator;
7
- declare const StaticSchemaValidator: ZodSchemaValidator;
8
7
  /**
9
8
  * Zod schema definition for string type.
10
9
  */
11
- export declare const string: typeof StaticSchemaValidator.string;
10
+ export declare const string: import("zod").ZodString;
12
11
  /**
13
12
  * Zod schema definition for UUID type.
14
13
  */
15
- export declare const uuid: typeof StaticSchemaValidator.uuid;
14
+ export declare const uuid: import("zod").ZodString;
16
15
  /**
17
16
  * Zod schema definition for email type.
18
17
  */
19
- export declare const email: typeof StaticSchemaValidator.email;
18
+ export declare const email: import("zod").ZodString;
20
19
  /**
21
20
  * Zod schema definition for URI type.
22
21
  */
23
- export declare const uri: typeof StaticSchemaValidator.uri;
22
+ export declare const uri: import("zod").ZodString;
24
23
  /**
25
24
  * Zod schema definition for number type.
26
25
  */
27
- export declare const number: typeof StaticSchemaValidator.number;
26
+ export declare const number: import("zod").ZodNumber;
28
27
  /**
29
28
  * Zod schema definition for bigint type.
30
29
  */
31
- export declare const bigint: typeof StaticSchemaValidator.bigint;
30
+ export declare const bigint: import("zod").ZodBigInt;
32
31
  /**
33
32
  * Zod schema definition for boolean type.
34
33
  */
35
- export declare const boolean: typeof StaticSchemaValidator.boolean;
34
+ export declare const boolean: import("zod").ZodEffects<import("zod").ZodBoolean, boolean, unknown>;
36
35
  /**
37
36
  * Zod schema definition for date type.
38
37
  */
39
- export declare const date: typeof StaticSchemaValidator.date;
38
+ export declare const date: import("zod").ZodDate;
40
39
  /**
41
40
  * Zod schema definition for symbol type.
42
41
  */
43
- export declare const symbol: typeof StaticSchemaValidator.symbol;
42
+ export declare const symbol: import("zod").ZodSymbol;
44
43
  /**
45
44
  * Zod schema definition for undefined, null, void types.
46
45
  */
47
- export declare const nullish: typeof StaticSchemaValidator.nullish;
46
+ export declare const nullish: import("zod").ZodUnion<[import("zod").ZodVoid, import("zod").ZodNull, import("zod").ZodUndefined]>;
48
47
  /**
49
48
  * Zod schema definition for any type.
50
49
  */
51
- export declare const any: typeof StaticSchemaValidator.any;
50
+ export declare const any: import("zod").ZodAny;
52
51
  /**
53
52
  * Zod schema definition for unknown type.
54
53
  */
55
- export declare const unknown: typeof StaticSchemaValidator.unknown;
54
+ export declare const unknown: import("zod").ZodUnknown;
56
55
  /**
57
56
  * Zod schema definition for never type.
58
57
  */
59
- export declare const never: typeof StaticSchemaValidator.never;
58
+ export declare const never: import("zod").ZodNever;
60
59
  /**
61
60
  * Transforms valid schema into Zod schema.
62
61
  */
63
- export declare const schemify: typeof StaticSchemaValidator.schemify;
62
+ export declare const schemify: <T extends import("./types/schema.types").ZodIdiomaticSchema>(schema: T) => import("./types/schema.types").ZodResolve<T>;
64
63
  /**
65
64
  * Makes a valid schema optional.
66
65
  */
67
- export declare const optional: typeof StaticSchemaValidator.optional;
66
+ export declare const optional: <T extends import("./types/schema.types").ZodIdiomaticSchema>(schema: T) => import("zod").ZodOptional<import("./types/schema.types").ZodResolve<T>>;
68
67
  /**
69
68
  * Defines an array for a valid schema.
70
69
  */
71
- export declare const array: typeof StaticSchemaValidator.array;
70
+ export declare const array: <T extends import("./types/schema.types").ZodIdiomaticSchema>(schema: T) => import("zod").ZodArray<import("./types/schema.types").ZodResolve<T>>;
72
71
  /**
73
72
  * Defines a union for a valid schema.
74
73
  */
75
- export declare const union: typeof StaticSchemaValidator.union;
74
+ export declare const union: <T extends import("./types/schema.types").ZodUnionContainer>(schemas: T) => import("zod").ZodUnion<import("./types/schema.types").UnionZodResolve<T>>;
76
75
  /**
77
76
  * Defines a literal for a valid schema.
78
77
  */
79
- export declare const literal: typeof StaticSchemaValidator.literal;
78
+ export declare const literal: <T extends import("../..").LiteralSchema>(value: T) => import("zod").ZodLiteral<import("./types/schema.types").ZodResolve<T>>;
79
+ /**
80
+ * Defines an enum for a valid schema.
81
+ */
82
+ export declare const enum_: <T extends import("../..").LiteralSchema>(schemaEnum: Record<string, T>) => import("zod").ZodUnion<import("./types/schema.types").UnionZodResolve<[T, T, ...T[]]>>;
83
+ /**
84
+ * Checks if a value is a Zod schema.
85
+ */
86
+ export declare const isSchema: (value: unknown) => value is import("zod").ZodSchema;
80
87
  /**
81
88
  * Validates a value against a valid schema.
82
89
  */
83
- export declare const validate: typeof StaticSchemaValidator.validate;
90
+ export declare const validate: <T extends import("./types/schema.types").ZodCatchall>(schema: T, value: unknown) => boolean;
84
91
  /**
85
92
  * Parses a value to be conformant to a particular schema.
86
93
  */
87
- export declare const parse: typeof StaticSchemaValidator.parse;
94
+ export declare const parse: <T extends import("./types/schema.types").ZodCatchall>(schema: T, value: unknown) => import("../..").ParseResult<import("./types/schema.types").ZodResolve<T>>;
88
95
  /**
89
96
  * Generates an OpenAPI schema object from a valid schema.
90
97
  */
91
- export declare const openapi: typeof StaticSchemaValidator.openapi;
92
- export {};
98
+ export declare const openapi: <T extends import("./types/schema.types").ZodIdiomaticSchema>(schema: T) => import("openapi3-ts/oas31").SchemaObject;
93
99
  //# sourceMappingURL=staticSchemaValidator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"staticSchemaValidator.d.ts","sourceRoot":"","sources":["../../../src/zod/staticSchemaValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,eAAe,0BAAiC,CAAC;AAE9D,QAAA,MAAM,qBAAqB,oBAAoB,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,qBAAqB,CAAC,MACpB,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,OAAO,qBAAqB,CAAC,IACpB,CAAC;AAE7B;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAAO,qBAAqB,CAAC,KACpB,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE,OAAO,qBAAqB,CAAC,GAA+B,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,qBAAqB,CAAC,MACpB,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,qBAAqB,CAAC,MACpB,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAO,qBAAqB,CAAC,OACpB,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,OAAO,qBAAqB,CAAC,IACpB,CAAC;AAE7B;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,qBAAqB,CAAC,MACpB,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAO,qBAAqB,CAAC,OACpB,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE,OAAO,qBAAqB,CAAC,GAA+B,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAO,qBAAqB,CAAC,OACpB,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAAO,qBAAqB,CAAC,KACpB,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,qBAAqB,CAAC,QACQ,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,qBAAqB,CAAC,QACQ,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAAO,qBAAqB,CAAC,KACQ,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAAO,qBAAqB,CAAC,KACQ,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAO,qBAAqB,CAAC,OACQ,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,qBAAqB,CAAC,QACQ,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAAO,qBAAqB,CAAC,KACQ,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAO,qBAAqB,CAAC,OACQ,CAAC"}
1
+ {"version":3,"file":"staticSchemaValidator.d.ts","sourceRoot":"","sources":["../../../src/zod/staticSchemaValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,eAAe,0BAAiC,CAAC;AAI9D;;GAEG;AACH,eAAO,MAAM,MAAM,yBAA+B,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,IAAI,yBAA6B,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,KAAK,yBAA8B,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,GAAG,yBAA4B,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,MAAM,yBAA+B,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,MAAM,yBAA+B,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,OAAO,sEAAgC,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,IAAI,uBAA6B,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,MAAM,yBAA+B,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,OAAO,oGAAgC,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,GAAG,sBAA4B,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,OAAO,0BAAgC,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,KAAK,wBAA8B,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,QAAQ,0HAEpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,qJAEpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,kJAA0D,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,KAAK,uJAA0D,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,OAAO,+HAEnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,oKAA0D,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,QAAQ,sDAEpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,8FAEpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,gKAA0D,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,OAAO,sHAEnB,CAAC"}
@@ -77,6 +77,14 @@ export const union = StaticSchemaValidator.union.bind(StaticSchemaValidator);
77
77
  * Defines a literal for a valid schema.
78
78
  */
79
79
  export const literal = StaticSchemaValidator.literal.bind(StaticSchemaValidator);
80
+ /**
81
+ * Defines an enum for a valid schema.
82
+ */
83
+ export const enum_ = StaticSchemaValidator.enum_.bind(StaticSchemaValidator);
84
+ /**
85
+ * Checks if a value is a Zod schema.
86
+ */
87
+ export const isSchema = StaticSchemaValidator.isSchema.bind(StaticSchemaValidator);
80
88
  /**
81
89
  * Validates a value against a valid schema.
82
90
  */
@@ -12,7 +12,7 @@ import { UnionZodResolve, ZodCatchall, ZodIdiomaticSchema, ZodResolve, ZodUnionC
12
12
  * Class representing a Zod schema definition.
13
13
  * @implements {StaticSchemaValidator}
14
14
  */
15
- export declare class ZodSchemaValidator implements SV<(<T extends ZodObject<ZodRawShape>>(schema: T) => ZodResolve<T>), <T extends ZodIdiomaticSchema>(schema: T) => ZodResolve<T>, <T extends ZodIdiomaticSchema>(schema: T) => ZodOptional<ZodResolve<T>>, <T extends ZodIdiomaticSchema>(schema: T) => ZodArray<ZodResolve<T>>, <T extends ZodUnionContainer>(schemas: T) => ZodUnion<UnionZodResolve<T>>, <T extends LiteralSchema>(value: T) => ZodLiteral<ZodResolve<T>>, <T extends ZodCatchall>(schema: T, value: unknown) => boolean, <T extends ZodCatchall>(schema: T, value: unknown) => ParseResult<ZodResolve<T>>, <T extends ZodIdiomaticSchema>(schema: T) => SchemaObject> {
15
+ export declare class ZodSchemaValidator implements SV<(<T extends ZodObject<ZodRawShape>>(schema: T) => ZodResolve<T>), <T extends ZodIdiomaticSchema>(schema: T) => ZodResolve<T>, <T extends ZodIdiomaticSchema>(schema: T) => ZodOptional<ZodResolve<T>>, <T extends ZodIdiomaticSchema>(schema: T) => ZodArray<ZodResolve<T>>, <T extends ZodUnionContainer>(schemas: T) => ZodUnion<UnionZodResolve<T>>, <T extends LiteralSchema>(value: T) => ZodLiteral<ZodResolve<T>>, <T extends LiteralSchema>(schemaEnum: Record<string, T>) => ZodUnion<UnionZodResolve<[T, T, ...T[]]>>, (value: unknown) => value is ZodType, <T extends ZodCatchall>(schema: T, value: unknown) => boolean, <T extends ZodCatchall>(schema: T, value: unknown) => ParseResult<ZodResolve<T>>, <T extends ZodIdiomaticSchema>(schema: T) => SchemaObject> {
16
16
  _Type: 'Zod';
17
17
  _SchemaCatchall: ZodType;
18
18
  _ValidSchemaObject: ZodObject<ZodRawShape> | ZodArray<ZodObject<ZodRawShape>>;
@@ -73,6 +73,18 @@ export declare class ZodSchemaValidator implements SV<(<T extends ZodObject<ZodR
73
73
  * @returns {ZodLiteral<ZodResolve<T>>} The literal schema.
74
74
  */
75
75
  literal<T extends LiteralSchema>(value: T): ZodLiteral<ZodResolve<T>>;
76
+ /**
77
+ * Create an enum schema.
78
+ * @param {Record<string, LiteralSchema>} schemaEnum - The enum schema.
79
+ * @returns {ZodUnion<UnionZodResolve<[T, T, ...T[]]>>} The enum schema.
80
+ */
81
+ enum_<T extends LiteralSchema>(schemaEnum: Record<string, T>): ZodUnion<UnionZodResolve<[T, T, ...T[]]>>;
82
+ /**
83
+ * Checks if a value is a Zod schema.
84
+ * @param {unknown} value - The value to check.
85
+ * @returns {boolean} True if the value is a Zod schema.
86
+ */
87
+ isSchema(value: unknown): value is ZodType;
76
88
  /**
77
89
  * Validate a value against a schema.
78
90
  * @param {ZodCatchall} schema - The schema to validate against.
@@ -1 +1 @@
1
- {"version":3,"file":"zodSchemaValidator.d.ts","sourceRoot":"","sources":["../../../src/zod/zodSchemaValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zodSchemaValidator.d.ts","sourceRoot":"","sources":["../../../src/zod/zodSchemaValidator.ts"],"names":[],"mappings":"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"}
@@ -116,16 +116,13 @@ export class ZodSchemaValidator {
116
116
  * @returns {ZodUnion<UnionZodResolve<T>>} The union schema.
117
117
  */
118
118
  union(schemas) {
119
- if (schemas.length < 2) {
120
- throw new Error('Union must have at least two schemas');
121
- }
122
- const unionTypes = schemas.map((schema) => {
119
+ const resolvedSchemas = schemas.map((schema) => {
123
120
  if (schema instanceof ZodType) {
124
121
  return schema;
125
122
  }
126
123
  return this.schemify(schema);
127
124
  });
128
- return z.union(unionTypes);
125
+ return z.union(resolvedSchemas);
129
126
  }
130
127
  /**
131
128
  * Create a literal schema.
@@ -135,6 +132,22 @@ export class ZodSchemaValidator {
135
132
  literal(value) {
136
133
  return z.literal(value);
137
134
  }
135
+ /**
136
+ * Create an enum schema.
137
+ * @param {Record<string, LiteralSchema>} schemaEnum - The enum schema.
138
+ * @returns {ZodUnion<UnionZodResolve<[T, T, ...T[]]>>} The enum schema.
139
+ */
140
+ enum_(schemaEnum) {
141
+ return this.union(Object.values(schemaEnum));
142
+ }
143
+ /**
144
+ * Checks if a value is a Zod schema.
145
+ * @param {unknown} value - The value to check.
146
+ * @returns {boolean} True if the value is a Zod schema.
147
+ */
148
+ isSchema(value) {
149
+ return value instanceof ZodType;
150
+ }
138
151
  /**
139
152
  * Validate a value against a schema.
140
153
  * @param {ZodCatchall} schema - The schema to validate against.
@@ -1,5 +1,5 @@
1
1
  import { Type } from '@sinclair/typebox';
2
- import { array, number, openapi, optional, parse, schemify, string, union, validate } from '../../src/typebox/staticSchemaValidator';
2
+ import { array, enum_, isSchema, number, openapi, optional, parse, schemify, string, union, validate } from '../../src/typebox/staticSchemaValidator';
3
3
  import { compare } from '../utils/compare';
4
4
  describe('typebox schema validator tests', () => {
5
5
  let schema;
@@ -145,6 +145,40 @@ describe('typebox schema validator tests', () => {
145
145
  hello: Type.Literal('world')
146
146
  }));
147
147
  });
148
+ test('enum', async () => {
149
+ let TestSingleEnum;
150
+ (function (TestSingleEnum) {
151
+ TestSingleEnum["WORLD"] = "world";
152
+ })(TestSingleEnum || (TestSingleEnum = {}));
153
+ const schemified = enum_(TestSingleEnum);
154
+ compare(schemified, Type.Literal('world', {
155
+ errorType: 'any of world',
156
+ errorSuffix: true
157
+ }));
158
+ let TestMultipleEnum;
159
+ (function (TestMultipleEnum) {
160
+ TestMultipleEnum["WORLD"] = "world";
161
+ TestMultipleEnum["HELLO"] = "hello";
162
+ })(TestMultipleEnum || (TestMultipleEnum = {}));
163
+ const schemifiedMultiple = enum_(TestMultipleEnum);
164
+ compare(schemifiedMultiple, Type.Union([Type.Literal('world'), Type.Literal('hello')], {
165
+ errorType: 'any of world, hello',
166
+ errorSuffix: true
167
+ }));
168
+ });
169
+ test('isSchema', () => {
170
+ expect(isSchema(Type.String())).toBe(true);
171
+ expect(isSchema(Type.Number())).toBe(true);
172
+ expect(isSchema(Type.Object({
173
+ foo: Type.String()
174
+ }))).toBe(true);
175
+ expect(isSchema(Type.Array(Type.String()))).toBe(true);
176
+ expect(isSchema('not a schema')).toBe(false);
177
+ expect(isSchema(42)).toBe(false);
178
+ expect(isSchema({})).toBe(false);
179
+ expect(isSchema(null)).toBe(false);
180
+ expect(isSchema(undefined)).toBe(false);
181
+ });
148
182
  test('validate', async () => {
149
183
  validate(schemified, {
150
184
  hello: {
@@ -1,8 +1,8 @@
1
1
  export const compare = (received, expected) => {
2
2
  switch (typeof received) {
3
3
  case 'bigint':
4
- return expect(received).toBe(expected);
4
+ return expect(expected).toEqual(received);
5
5
  default:
6
- return expect(JSON.stringify(received)).toBe(JSON.stringify(expected));
6
+ return expect(JSON.stringify(expected)).toEqual(JSON.stringify(received));
7
7
  }
8
8
  };