@forklaunch/validator 0.1.6 → 0.1.8

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 (40) hide show
  1. package/dist/index.d.ts +2 -2
  2. package/dist/tests/typebox/equality.test.js +41 -41
  3. package/dist/tests/typebox/equality.test.js.map +1 -1
  4. package/dist/tests/typebox/largeSchema.test.js +34 -34
  5. package/dist/tests/typebox/largeSchema.test.js.map +1 -1
  6. package/dist/tests/zod/equality.test.js +1 -1
  7. package/dist/tests/zod/equality.test.js.map +1 -1
  8. package/dist/tests/zod/largeSchema.test.js +34 -34
  9. package/dist/tests/zod/largeSchema.test.js.map +1 -1
  10. package/dist/typebox/index.d.ts +148 -2
  11. package/dist/typebox/index.js +191 -16
  12. package/dist/typebox/index.js.map +1 -1
  13. package/dist/zod/index.d.ts +145 -2
  14. package/dist/zod/index.js +189 -16
  15. package/dist/zod/index.js.map +1 -1
  16. package/package.json +11 -5
  17. package/dist/interfaces/schemaDefinition.interfaces.d.ts +0 -21
  18. package/dist/interfaces/schemaDefinition.interfaces.js +0 -3
  19. package/dist/interfaces/schemaDefinition.interfaces.js.map +0 -1
  20. package/dist/interfaces/schemaProvider.interfaces.d.ts +0 -23
  21. package/dist/interfaces/schemaProvider.interfaces.js +0 -3
  22. package/dist/interfaces/schemaProvider.interfaces.js.map +0 -1
  23. package/dist/typebox/typebox.d.ts +0 -148
  24. package/dist/typebox/typebox.js +0 -194
  25. package/dist/typebox/typebox.js.map +0 -1
  26. package/dist/typebox.d.ts +0 -148
  27. package/dist/typebox.js +0 -194
  28. package/dist/typebox.js.map +0 -1
  29. package/dist/types/typebox.schema.types.d.ts +0 -63
  30. package/dist/types/typebox.schema.types.js +0 -3
  31. package/dist/types/typebox.schema.types.js.map +0 -1
  32. package/dist/types/zod.schema.types.d.ts +0 -65
  33. package/dist/types/zod.schema.types.js +0 -3
  34. package/dist/types/zod.schema.types.js.map +0 -1
  35. package/dist/zod/zod.d.ts +0 -145
  36. package/dist/zod/zod.js +0 -192
  37. package/dist/zod/zod.js.map +0 -1
  38. package/dist/zod.d.ts +0 -145
  39. package/dist/zod.js +0 -192
  40. package/dist/zod.js.map +0 -1
@@ -1,19 +1,194 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
2
+ /**
3
+ * This module provides a TypeScript-based schema definition using the TypeBox library.
4
+ * It includes various types, schema creation, validation, and OpenAPI integration.
5
+ *
6
+ * @module TypeboxSchemaValidator
7
+ */
16
8
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./typebox"), exports);
18
- __exportStar(require("./types/typebox.schema.types"), exports);
9
+ exports.openapi = exports.validate = exports.literal = exports.union = exports.array = exports.optional = exports.schemify = exports.never = exports.unknown = exports.any = exports.empty = exports.symbol = exports.date = exports.boolean = exports.bigint = exports.number = exports.string = exports.TypeboxSchema = exports.TypeboxSchemaValidator = void 0;
10
+ const typebox_1 = require("@sinclair/typebox");
11
+ const value_1 = require("@sinclair/typebox/value");
12
+ /**
13
+ * Class representing a TypeBox schema definition.
14
+ * @implements {SchemaValidator}
15
+ */
16
+ class TypeboxSchemaValidator {
17
+ string = typebox_1.Type.String();
18
+ number = typebox_1.Type.Number();
19
+ bigint = typebox_1.Type.BigInt();
20
+ boolean = typebox_1.Type.Boolean();
21
+ date = typebox_1.Type.Date();
22
+ symbol = typebox_1.Type.Symbol();
23
+ empty = typebox_1.Type.Union([typebox_1.Type.Void(), typebox_1.Type.Null(), typebox_1.Type.Undefined()]);
24
+ any = typebox_1.Type.Any();
25
+ unknown = typebox_1.Type.Unknown();
26
+ never = typebox_1.Type.Never();
27
+ /**
28
+ * Convert a schema to a TypeBox schema.
29
+ * @param {TIdiomaticSchema} schema - The schema to convert.
30
+ * @returns {TResolve<T>} The resolved schema.
31
+ */
32
+ schemify(schema) {
33
+ if (typeof schema === 'string' || typeof schema === 'number' || typeof schema === 'boolean') {
34
+ return typebox_1.Type.Literal(schema);
35
+ }
36
+ if (typebox_1.Kind in schema) {
37
+ return schema;
38
+ }
39
+ const newSchema = {};
40
+ Object.getOwnPropertyNames(schema).forEach((key) => {
41
+ if (typeof schema[key] === 'object' && typebox_1.Kind in schema[key]) {
42
+ newSchema[key] = schema[key];
43
+ }
44
+ else {
45
+ const scheme = this.schemify(schema[key]);
46
+ newSchema[key] = scheme;
47
+ }
48
+ });
49
+ return typebox_1.Type.Object(newSchema);
50
+ }
51
+ /**
52
+ * Make a schema optional.
53
+ * @param {TIdiomaticSchema} schema - The schema to make optional.
54
+ * @returns {TOptional<TResolve<T>>} The optional schema.
55
+ */
56
+ optional(schema) {
57
+ if (typebox_1.Kind in schema) {
58
+ return typebox_1.Type.Optional(schema);
59
+ }
60
+ const scheme = this.schemify(schema);
61
+ return typebox_1.Type.Optional(scheme);
62
+ }
63
+ /**
64
+ * Create an array schema.
65
+ * @param {TIdiomaticSchema} schema - The schema to use for array items.
66
+ * @returns {TArray<TResolve<T>>} The array schema.
67
+ */
68
+ array(schema) {
69
+ if (typebox_1.Kind in schema) {
70
+ return typebox_1.Type.Array(schema);
71
+ }
72
+ const scheme = this.schemify(schema);
73
+ return typebox_1.Type.Array(scheme);
74
+ }
75
+ /**
76
+ * Create a union schema.
77
+ * @param {TUnionContainer} schemas - The schemas to union.
78
+ * @returns {TUnion<UnionTResolve<T>>} The union schema.
79
+ *
80
+ * WARNING: If "empty" or TUndefined is included in the union, the key will still be expected.
81
+ * This is a limitation of TypeBox. Consider using "optional" instead.
82
+ */
83
+ union(schemas) {
84
+ const unionTypes = schemas.map((schema) => {
85
+ if (typebox_1.Kind in schema) {
86
+ return schema;
87
+ }
88
+ return this.schemify(schema);
89
+ });
90
+ return typebox_1.Type.Union(unionTypes);
91
+ }
92
+ /**
93
+ * Create a literal schema.
94
+ * @param {LiteralSchema} value - The literal value.
95
+ * @returns {TLiteral<T>} The literal schema.
96
+ */
97
+ literal(value) {
98
+ return typebox_1.Type.Literal(value);
99
+ }
100
+ /**
101
+ * Validate a value against a schema.
102
+ * @param {TSchema} schema - The schema to validate against.
103
+ * @param {unknown} value - The value to validate.
104
+ * @returns {boolean} True if valid, otherwise false.
105
+ */
106
+ validate(schema, value) {
107
+ return value_1.Value.Check(schema, value);
108
+ }
109
+ /**
110
+ * Convert a schema to an OpenAPI schema object.
111
+ * @param {TIdiomaticSchema | TSchema} schema - The schema to convert.
112
+ * @returns {SchemaObject} The OpenAPI schema object.
113
+ */
114
+ openapi(schema) {
115
+ return this.schemify(schema);
116
+ }
117
+ }
118
+ exports.TypeboxSchemaValidator = TypeboxSchemaValidator;
119
+ /**
120
+ * Factory function for creating a TypeboxSchemaValidator instance.
121
+ * @returns {TypeboxSchemaValidator} The TypeboxSchemaValidator instance.
122
+ */
123
+ const TypeboxSchema = () => new TypeboxSchemaValidator();
124
+ exports.TypeboxSchema = TypeboxSchema;
125
+ const SchemaValidator = (0, exports.TypeboxSchema)();
126
+ /**
127
+ * TypeBox schema definition for string type.
128
+ */
129
+ exports.string = SchemaValidator.string;
130
+ /**
131
+ * TypeBox schema definition for number type.
132
+ */
133
+ exports.number = SchemaValidator.number;
134
+ /**
135
+ * TypeBox schema definition for bigint type.
136
+ */
137
+ exports.bigint = SchemaValidator.bigint;
138
+ /**
139
+ * TypeBox schema definition for boolean type.
140
+ */
141
+ exports.boolean = SchemaValidator.boolean;
142
+ /**
143
+ * TypeBox schema definition for date type.
144
+ */
145
+ exports.date = SchemaValidator.date;
146
+ /**
147
+ * TypeBox schema definition for symbol type.
148
+ */
149
+ exports.symbol = SchemaValidator.symbol;
150
+ /**
151
+ * TypeBox schema definition for undefined, null, void types.
152
+ */
153
+ exports.empty = SchemaValidator.empty;
154
+ /**
155
+ * TypeBox schema definition for any type.
156
+ */
157
+ exports.any = SchemaValidator.any;
158
+ /**
159
+ * TypeBox schema definition for unknown type.
160
+ */
161
+ exports.unknown = SchemaValidator.unknown;
162
+ /**
163
+ * TypeBox schema definition for never type.
164
+ */
165
+ exports.never = SchemaValidator.never;
166
+ /**
167
+ * Transforms valid schema into TypeBox schema.
168
+ */
169
+ exports.schemify = SchemaValidator.schemify.bind(SchemaValidator);
170
+ /**
171
+ * Makes a valid schema optional.
172
+ */
173
+ exports.optional = SchemaValidator.optional.bind(SchemaValidator);
174
+ /**
175
+ * Defines an array for a valid schema.
176
+ */
177
+ exports.array = SchemaValidator.array.bind(SchemaValidator);
178
+ /**
179
+ * Defines a union for a valid schema.
180
+ */
181
+ exports.union = SchemaValidator.union.bind(SchemaValidator);
182
+ /**
183
+ * Defines a literal for a valid schema.
184
+ */
185
+ exports.literal = SchemaValidator.literal.bind(SchemaValidator);
186
+ /**
187
+ * Validates a value against a valid schema.
188
+ */
189
+ exports.validate = SchemaValidator.validate.bind(SchemaValidator);
190
+ /**
191
+ * Generates an OpenAPI schema object from a valid schema.
192
+ */
193
+ exports.openapi = SchemaValidator.openapi.bind(SchemaValidator);
19
194
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../typebox/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,+DAA6C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../typebox/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,145 @@
1
- export * from './zod';
2
- export * from './types/zod.schema.types';
1
+ /**
2
+ * This module provides a Zod-based schema definition.
3
+ * It includes various types, schema creation, validation, and OpenAPI integration.
4
+ *
5
+ * @module ZodSchemaValidator
6
+ */
7
+ import { ZodArray, ZodOptional, ZodUnion, z, ZodLiteral } from "zod";
8
+ import { LiteralSchema } from "../types/schema.types";
9
+ import { SchemaValidator } from "../interfaces/schemaValidator.interfaces";
10
+ import { SchemaObject } from 'openapi3-ts/oas31';
11
+ import { ZodUnionContainer, ZodIdiomaticSchema, ZodCatchall, ZodResolve, UnionZodResolve } from "./types/zod.schema.types";
12
+ /**
13
+ * Class representing a Zod schema definition.
14
+ * @implements {SchemaValidator}
15
+ */
16
+ export declare class ZodSchemaValidator implements SchemaValidator<ZodUnionContainer, ZodIdiomaticSchema, ZodCatchall> {
17
+ string: z.ZodString;
18
+ number: z.ZodNumber;
19
+ bigint: z.ZodBigInt;
20
+ boolean: z.ZodBoolean;
21
+ date: z.ZodDate;
22
+ symbol: z.ZodSymbol;
23
+ empty: ZodUnion<[z.ZodVoid, z.ZodNull, z.ZodUndefined]>;
24
+ any: z.ZodAny;
25
+ unknown: z.ZodUnknown;
26
+ never: z.ZodNever;
27
+ /**
28
+ * Convert a schema to a Zod schema.
29
+ * @param {ZodIdiomaticSchema} schema - The schema to convert.
30
+ * @returns {ZodResolve<T>} The resolved schema.
31
+ */
32
+ schemify<T extends ZodIdiomaticSchema>(schema: T): ZodResolve<T>;
33
+ /**
34
+ * Make a schema optional.
35
+ * @param {ZodIdiomaticSchema} schema - The schema to make optional.
36
+ * @returns {ZodOptional<ZodResolve<T>>} The optional schema.
37
+ */
38
+ optional<T extends ZodIdiomaticSchema>(schema: T): ZodOptional<ZodResolve<T>>;
39
+ /**
40
+ * Create an array schema.
41
+ * @param {ZodIdiomaticSchema} schema - The schema to use for array items.
42
+ * @returns {ZodArray<ZodResolve<T>>} The array schema.
43
+ */
44
+ array<T extends ZodIdiomaticSchema>(schema: T): ZodArray<ZodResolve<T>>;
45
+ /**
46
+ * Create a union schema.
47
+ * @param {ZodUnionContainer} schemas - The schemas to union.
48
+ * @returns {ZodUnion<UnionZodResolve<T>>} The union schema.
49
+ */
50
+ union<T extends ZodUnionContainer>(schemas: T): ZodUnion<UnionZodResolve<T>>;
51
+ /**
52
+ * Create a literal schema.
53
+ * @param {LiteralSchema} value - The literal value.
54
+ * @returns {ZodLiteral<ZodResolve<T>>} The literal schema.
55
+ */
56
+ literal<T extends LiteralSchema>(value: T): ZodLiteral<ZodResolve<T>>;
57
+ /**
58
+ * Validate a value against a schema.
59
+ * @param {ZodCatchall} schema - The schema to validate against.
60
+ * @param {unknown} value - The value to validate.
61
+ * @returns {boolean} True if valid, otherwise false.
62
+ */
63
+ validate<T extends ZodCatchall>(schema: T, value: unknown): boolean;
64
+ /**
65
+ * Convert a schema to an OpenAPI schema object.
66
+ * @param {ZodIdiomaticSchema} schema - The schema to convert.
67
+ * @returns {SchemaObject} The OpenAPI schema object.
68
+ */
69
+ openapi<T extends ZodIdiomaticSchema>(schema: T): SchemaObject;
70
+ }
71
+ /**
72
+ * Factory function for creating a ZodSchemaValidator instance.
73
+ * @returns {ZodSchemaValidator} The ZodSchemaValidator instance.
74
+ */
75
+ export declare const ZodSchema: () => ZodSchemaValidator;
76
+ declare const SchemaValidator: ZodSchemaValidator;
77
+ /**
78
+ * Zod schema definition for string type.
79
+ */
80
+ export declare const string: typeof SchemaValidator.string;
81
+ /**
82
+ * Zod schema definition for number type.
83
+ */
84
+ export declare const number: typeof SchemaValidator.number;
85
+ /**
86
+ * Zod schema definition for bigint type.
87
+ */
88
+ export declare const bigint: typeof SchemaValidator.bigint;
89
+ /**
90
+ * Zod schema definition for boolean type.
91
+ */
92
+ export declare const boolean: typeof SchemaValidator.boolean;
93
+ /**
94
+ * Zod schema definition for date type.
95
+ */
96
+ export declare const date: typeof SchemaValidator.date;
97
+ /**
98
+ * Zod schema definition for symbol type.
99
+ */
100
+ export declare const symbol: typeof SchemaValidator.symbol;
101
+ /**
102
+ * Zod schema definition for undefined, null, void types.
103
+ */
104
+ export declare const empty: typeof SchemaValidator.empty;
105
+ /**
106
+ * Zod schema definition for any type.
107
+ */
108
+ export declare const any: typeof SchemaValidator.any;
109
+ /**
110
+ * Zod schema definition for unknown type.
111
+ */
112
+ export declare const unknown: typeof SchemaValidator.unknown;
113
+ /**
114
+ * Zod schema definition for never type.
115
+ */
116
+ export declare const never: typeof SchemaValidator.never;
117
+ /**
118
+ * Transforms valid schema into Zod schema.
119
+ */
120
+ export declare const schemify: typeof SchemaValidator.schemify;
121
+ /**
122
+ * Makes a valid schema optional.
123
+ */
124
+ export declare const optional: typeof SchemaValidator.optional;
125
+ /**
126
+ * Defines an array for a valid schema.
127
+ */
128
+ export declare const array: typeof SchemaValidator.array;
129
+ /**
130
+ * Defines a union for a valid schema.
131
+ */
132
+ export declare const union: typeof SchemaValidator.union;
133
+ /**
134
+ * Defines a literal for a valid schema.
135
+ */
136
+ export declare const literal: typeof SchemaValidator.literal;
137
+ /**
138
+ * Validates a value against a valid schema.
139
+ */
140
+ export declare const validate: typeof SchemaValidator.validate;
141
+ /**
142
+ * Generates an OpenAPI schema object from a valid schema.
143
+ */
144
+ export declare const openapi: typeof SchemaValidator.openapi;
145
+ export {};
package/dist/zod/index.js CHANGED
@@ -1,19 +1,192 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
2
+ /**
3
+ * This module provides a Zod-based schema definition.
4
+ * It includes various types, schema creation, validation, and OpenAPI integration.
5
+ *
6
+ * @module ZodSchemaValidator
7
+ */
16
8
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./zod"), exports);
18
- __exportStar(require("./types/zod.schema.types"), exports);
9
+ exports.openapi = exports.validate = exports.literal = exports.union = exports.array = exports.optional = exports.schemify = exports.never = exports.unknown = exports.any = exports.empty = exports.symbol = exports.date = exports.boolean = exports.bigint = exports.number = exports.string = exports.ZodSchema = exports.ZodSchemaValidator = void 0;
10
+ const zod_1 = require("zod");
11
+ const zod_openapi_1 = require("@anatine/zod-openapi");
12
+ /**
13
+ * Class representing a Zod schema definition.
14
+ * @implements {SchemaValidator}
15
+ */
16
+ class ZodSchemaValidator {
17
+ string = zod_1.z.string();
18
+ number = zod_1.z.number();
19
+ bigint = zod_1.z.bigint();
20
+ boolean = zod_1.z.boolean();
21
+ date = zod_1.z.date();
22
+ symbol = zod_1.z.symbol();
23
+ empty = zod_1.z.union([zod_1.z.void(), zod_1.z.null(), zod_1.z.undefined()]);
24
+ any = zod_1.z.any();
25
+ unknown = zod_1.z.unknown();
26
+ never = zod_1.z.never();
27
+ /**
28
+ * Convert a schema to a Zod schema.
29
+ * @param {ZodIdiomaticSchema} schema - The schema to convert.
30
+ * @returns {ZodResolve<T>} The resolved schema.
31
+ */
32
+ schemify(schema) {
33
+ if (typeof schema === 'string' || typeof schema === 'number' || typeof schema === 'boolean') {
34
+ return zod_1.z.literal(schema);
35
+ }
36
+ if (schema instanceof zod_1.ZodType) {
37
+ return schema;
38
+ }
39
+ const newSchema = {};
40
+ Object.getOwnPropertyNames(schema).forEach((key) => {
41
+ if (schema[key] instanceof zod_1.ZodType) {
42
+ newSchema[key] = schema[key];
43
+ }
44
+ else {
45
+ newSchema[key] = this.schemify(schema[key]);
46
+ }
47
+ });
48
+ return zod_1.z.object(newSchema);
49
+ }
50
+ /**
51
+ * Make a schema optional.
52
+ * @param {ZodIdiomaticSchema} schema - The schema to make optional.
53
+ * @returns {ZodOptional<ZodResolve<T>>} The optional schema.
54
+ */
55
+ optional(schema) {
56
+ if (schema instanceof zod_1.ZodType) {
57
+ return schema.optional();
58
+ }
59
+ return this.schemify(schema).optional();
60
+ }
61
+ /**
62
+ * Create an array schema.
63
+ * @param {ZodIdiomaticSchema} schema - The schema to use for array items.
64
+ * @returns {ZodArray<ZodResolve<T>>} The array schema.
65
+ */
66
+ array(schema) {
67
+ if (schema instanceof zod_1.ZodType) {
68
+ return schema.array();
69
+ }
70
+ return this.schemify(schema).array();
71
+ }
72
+ /**
73
+ * Create a union schema.
74
+ * @param {ZodUnionContainer} schemas - The schemas to union.
75
+ * @returns {ZodUnion<UnionZodResolve<T>>} The union schema.
76
+ */
77
+ union(schemas) {
78
+ if (schemas.length < 2) {
79
+ throw new Error('Union must have at least two schemas');
80
+ }
81
+ const unionTypes = schemas.map((schema) => {
82
+ if (schema instanceof zod_1.ZodType) {
83
+ return schema;
84
+ }
85
+ return this.schemify(schema);
86
+ });
87
+ return zod_1.z.union(unionTypes);
88
+ }
89
+ /**
90
+ * Create a literal schema.
91
+ * @param {LiteralSchema} value - The literal value.
92
+ * @returns {ZodLiteral<ZodResolve<T>>} The literal schema.
93
+ */
94
+ literal(value) {
95
+ return zod_1.z.literal(value);
96
+ }
97
+ /**
98
+ * Validate a value against a schema.
99
+ * @param {ZodCatchall} schema - The schema to validate against.
100
+ * @param {unknown} value - The value to validate.
101
+ * @returns {boolean} True if valid, otherwise false.
102
+ */
103
+ validate(schema, value) {
104
+ schema.parse(value);
105
+ return true;
106
+ }
107
+ /**
108
+ * Convert a schema to an OpenAPI schema object.
109
+ * @param {ZodIdiomaticSchema} schema - The schema to convert.
110
+ * @returns {SchemaObject} The OpenAPI schema object.
111
+ */
112
+ openapi(schema) {
113
+ return (0, zod_openapi_1.generateSchema)(this.schemify(schema));
114
+ }
115
+ }
116
+ exports.ZodSchemaValidator = ZodSchemaValidator;
117
+ /**
118
+ * Factory function for creating a ZodSchemaValidator instance.
119
+ * @returns {ZodSchemaValidator} The ZodSchemaValidator instance.
120
+ */
121
+ const ZodSchema = () => new ZodSchemaValidator();
122
+ exports.ZodSchema = ZodSchema;
123
+ const SchemaValidator = (0, exports.ZodSchema)();
124
+ /**
125
+ * Zod schema definition for string type.
126
+ */
127
+ exports.string = SchemaValidator.string;
128
+ /**
129
+ * Zod schema definition for number type.
130
+ */
131
+ exports.number = SchemaValidator.number;
132
+ /**
133
+ * Zod schema definition for bigint type.
134
+ */
135
+ exports.bigint = SchemaValidator.bigint;
136
+ /**
137
+ * Zod schema definition for boolean type.
138
+ */
139
+ exports.boolean = SchemaValidator.boolean;
140
+ /**
141
+ * Zod schema definition for date type.
142
+ */
143
+ exports.date = SchemaValidator.date;
144
+ /**
145
+ * Zod schema definition for symbol type.
146
+ */
147
+ exports.symbol = SchemaValidator.symbol;
148
+ /**
149
+ * Zod schema definition for undefined, null, void types.
150
+ */
151
+ exports.empty = SchemaValidator.empty;
152
+ /**
153
+ * Zod schema definition for any type.
154
+ */
155
+ exports.any = SchemaValidator.any;
156
+ /**
157
+ * Zod schema definition for unknown type.
158
+ */
159
+ exports.unknown = SchemaValidator.unknown;
160
+ /**
161
+ * Zod schema definition for never type.
162
+ */
163
+ exports.never = SchemaValidator.never;
164
+ /**
165
+ * Transforms valid schema into Zod schema.
166
+ */
167
+ exports.schemify = SchemaValidator.schemify.bind(SchemaValidator);
168
+ /**
169
+ * Makes a valid schema optional.
170
+ */
171
+ exports.optional = SchemaValidator.optional.bind(SchemaValidator);
172
+ /**
173
+ * Defines an array for a valid schema.
174
+ */
175
+ exports.array = SchemaValidator.array.bind(SchemaValidator);
176
+ /**
177
+ * Defines a union for a valid schema.
178
+ */
179
+ exports.union = SchemaValidator.union.bind(SchemaValidator);
180
+ /**
181
+ * Defines a literal for a valid schema.
182
+ */
183
+ exports.literal = SchemaValidator.literal.bind(SchemaValidator);
184
+ /**
185
+ * Validates a value against a valid schema.
186
+ */
187
+ exports.validate = SchemaValidator.validate.bind(SchemaValidator);
188
+ /**
189
+ * Generates an OpenAPI schema object from a valid schema.
190
+ */
191
+ exports.openapi = SchemaValidator.openapi.bind(SchemaValidator);
19
192
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../zod/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,2DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../zod/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forklaunch/validator",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "Schema validator for ForkLaunch components.",
5
5
  "files": ["dist/**"],
6
6
  "types": "dist/index.d.ts",
@@ -32,10 +32,16 @@
32
32
  },
33
33
  "exports": {
34
34
  ".": {
35
- "import": "./dist/index.js",
36
- "require": "./dist/index.js"
35
+ "types": "./dist/index.d.ts",
36
+ "default": "./dist/index.js"
37
37
  },
38
- "./typebox": "./dist/typebox/index.js",
39
- "./zod": "./dist/zod/index.js"
38
+ "./typebox": {
39
+ "types": "./dist/typebox/index.d.ts",
40
+ "default": "./dist/typebox/index.js"
41
+ },
42
+ "./zod": {
43
+ "types": "./dist/zod/index.d.ts",
44
+ "default": "./dist/zod/index.js"
45
+ }
40
46
  }
41
47
  }
@@ -1,21 +0,0 @@
1
- import { LiteralSchema } from "../types/schema.types";
2
- import { SchemaObject } from 'openapi3-ts/oas31';
3
- export interface SchemaDefinition<UnionContainer, IdiomaticSchema, Catchall> {
4
- string: unknown;
5
- number: unknown;
6
- bigint: unknown;
7
- boolean: unknown;
8
- date: unknown;
9
- symbol: unknown;
10
- empty: unknown;
11
- any: unknown;
12
- unknown: unknown;
13
- never: unknown;
14
- schemify<T extends IdiomaticSchema>(schema: T): unknown;
15
- optional<T extends IdiomaticSchema>(schema: T): unknown;
16
- array<T extends IdiomaticSchema>(schema: T): unknown;
17
- union<T extends UnionContainer>(schemas: T): unknown;
18
- literal<T extends LiteralSchema>(value: T): unknown;
19
- validate<T extends Catchall>(schema: T, value: unknown): boolean;
20
- openapi<T extends IdiomaticSchema>(schema: T): SchemaObject;
21
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schemaDefinition.interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemaDefinition.interfaces.js","sourceRoot":"","sources":["../../interfaces/schemaDefinition.interfaces.ts"],"names":[],"mappings":""}
@@ -1,23 +0,0 @@
1
- import { LiteralSchema } from "../types/schema.types";
2
- import { SchemaObject } from 'openapi3-ts/oas31';
3
- export interface AnySchemaProvider extends SchemaProvider<any, any, any> {
4
- }
5
- export interface SchemaProvider<UnionContainer, IdiomaticSchema, Catchall> {
6
- string: unknown;
7
- number: unknown;
8
- bigint: unknown;
9
- boolean: unknown;
10
- date: unknown;
11
- symbol: unknown;
12
- empty: unknown;
13
- any: unknown;
14
- unknown: unknown;
15
- never: unknown;
16
- schemify<T extends IdiomaticSchema>(schema: T): unknown;
17
- optional<T extends IdiomaticSchema>(schema: T): unknown;
18
- array<T extends IdiomaticSchema>(schema: T): unknown;
19
- union<T extends UnionContainer>(schemas: T): unknown;
20
- literal<T extends LiteralSchema>(value: T): unknown;
21
- validate<T extends Catchall>(schema: T, value: unknown): boolean;
22
- openapi<T extends IdiomaticSchema>(schema: T): SchemaObject;
23
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schemaProvider.interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemaProvider.interfaces.js","sourceRoot":"","sources":["../../interfaces/schemaProvider.interfaces.ts"],"names":[],"mappings":""}