@forklaunch/validator 0.2.7 → 0.2.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 +1 -0
  2. package/dist/index.js +18 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/jest.config.d.ts +3 -0
  5. package/dist/jest.config.js +10 -0
  6. package/dist/jest.config.js.map +1 -0
  7. package/dist/tests/mockSchemaValidator.d.ts +50 -0
  8. package/dist/tests/mockSchemaValidator.js +59 -0
  9. package/dist/tests/mockSchemaValidator.js.map +1 -0
  10. package/dist/tests/typebox/equality.test.d.ts +1 -0
  11. package/dist/tests/typebox/equality.test.js +234 -0
  12. package/dist/tests/typebox/equality.test.js.map +1 -0
  13. package/dist/tests/typebox/largeSchema.test.d.ts +1 -0
  14. package/dist/tests/typebox/largeSchema.test.js +153 -0
  15. package/dist/tests/typebox/largeSchema.test.js.map +1 -0
  16. package/dist/tests/zod/equality.test.d.ts +1 -0
  17. package/dist/tests/zod/equality.test.js +238 -0
  18. package/dist/tests/zod/equality.test.js.map +1 -0
  19. package/dist/tests/zod/largeSchema.test.d.ts +1 -0
  20. package/dist/tests/zod/largeSchema.test.js +153 -0
  21. package/dist/tests/zod/largeSchema.test.js.map +1 -0
  22. package/dist/typebox/index.d.ts +150 -0
  23. package/dist/typebox/index.js +203 -0
  24. package/dist/typebox/index.js.map +1 -0
  25. package/dist/typebox/types/typebox.schema.types.d.ts +63 -0
  26. package/dist/typebox/types/typebox.schema.types.js +3 -0
  27. package/dist/typebox/types/typebox.schema.types.js.map +1 -0
  28. package/dist/types/index.d.ts +1 -0
  29. package/dist/types/index.js +18 -0
  30. package/dist/types/index.js.map +1 -0
  31. package/dist/types/schema.types.d.ts +157 -0
  32. package/dist/types/schema.types.js +3 -0
  33. package/dist/types/schema.types.js.map +1 -0
  34. package/dist/zod/index.d.ts +147 -0
  35. package/dist/zod/index.js +196 -0
  36. package/dist/zod/index.js.map +1 -0
  37. package/dist/zod/types/zod.schema.types.d.ts +70 -0
  38. package/dist/zod/types/zod.schema.types.js +3 -0
  39. package/dist/zod/types/zod.schema.types.js.map +1 -0
  40. package/package.json +1 -1
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assert = assert;
4
+ const zod_openapi_1 = require("@anatine/zod-openapi");
5
+ const zod_1 = require("zod");
6
+ const zod_2 = require("../../zod");
7
+ const one = (0, zod_2.array)({
8
+ name: {
9
+ j: (0, zod_2.union)([zod_2.string, zod_2.number, zod_2.date, zod_2.boolean, zod_2.bigint, zod_2.empty, zod_2.symbol, zod_2.never]),
10
+ t: (0, zod_2.optional)((0, zod_2.union)([
11
+ (0, zod_2.array)({
12
+ y: (0, zod_2.array)(zod_2.number)
13
+ }),
14
+ zod_2.string
15
+ ])),
16
+ m: {
17
+ a: (0, zod_2.optional)(zod_2.string),
18
+ b: zod_2.number,
19
+ c: {
20
+ d: zod_2.string,
21
+ e: zod_2.number
22
+ }
23
+ }
24
+ },
25
+ 200: {
26
+ j: zod_2.string
27
+ },
28
+ m: {
29
+ a: true
30
+ }
31
+ });
32
+ const two = (0, zod_2.array)({
33
+ name: {
34
+ j: (0, zod_2.union)([zod_2.string, zod_2.number, zod_2.date, zod_2.boolean, zod_2.bigint, zod_2.empty, zod_2.symbol, zod_2.never]),
35
+ t: (0, zod_2.optional)((0, zod_2.union)([
36
+ (0, zod_2.array)({
37
+ y: (0, zod_2.array)(zod_2.number)
38
+ }),
39
+ zod_2.string
40
+ ])),
41
+ m: (0, zod_2.schemify)({
42
+ a: (0, zod_2.optional)(zod_2.string),
43
+ b: zod_2.number,
44
+ c: {
45
+ d: zod_2.string,
46
+ e: zod_2.number
47
+ }
48
+ })
49
+ },
50
+ 200: {
51
+ j: zod_2.string
52
+ },
53
+ m: {
54
+ a: true
55
+ }
56
+ });
57
+ const three = (0, zod_2.schemify)((0, zod_2.array)((0, zod_2.schemify)({
58
+ name: (0, zod_2.schemify)({
59
+ j: (0, zod_2.union)([zod_2.string, zod_2.number, zod_2.date, zod_2.boolean, zod_2.bigint, zod_2.empty, zod_2.symbol, zod_2.never]),
60
+ t: (0, zod_2.optional)((0, zod_2.union)([
61
+ (0, zod_2.array)({
62
+ y: (0, zod_2.array)(zod_2.number)
63
+ }),
64
+ zod_2.string
65
+ ])),
66
+ m: (0, zod_2.schemify)({
67
+ a: (0, zod_2.optional)(zod_2.string),
68
+ b: zod_2.number,
69
+ c: {
70
+ d: zod_2.string,
71
+ e: zod_2.number
72
+ }
73
+ })
74
+ }),
75
+ 200: (0, zod_2.schemify)({
76
+ j: zod_2.string
77
+ }),
78
+ m: (0, zod_2.schemify)({
79
+ a: true
80
+ })
81
+ })));
82
+ function assert() { }
83
+ assert();
84
+ assert();
85
+ assert();
86
+ assert();
87
+ const shortOne = {
88
+ s: zod_2.string,
89
+ non: zod_2.number
90
+ };
91
+ const shortTwo = (0, zod_2.schemify)({
92
+ s: zod_2.string,
93
+ non: zod_2.number
94
+ });
95
+ assert();
96
+ assert();
97
+ const compareSchemas = (schema1, schema2) => {
98
+ return JSON.stringify(schema1) === JSON.stringify(schema2);
99
+ };
100
+ describe('Zod Equality Tests', () => {
101
+ let schema;
102
+ let schemified;
103
+ let expectedSchema;
104
+ beforeAll(() => {
105
+ schema = {
106
+ hello: {
107
+ world: zod_2.string
108
+ },
109
+ foo: {
110
+ bar: zod_2.number
111
+ }
112
+ };
113
+ schemified = (0, zod_2.schemify)(schema);
114
+ expectedSchema = zod_1.z.object({
115
+ hello: zod_1.z.object({
116
+ world: zod_1.z.string()
117
+ }),
118
+ foo: zod_1.z.object({
119
+ bar: zod_1.z.number()
120
+ })
121
+ });
122
+ });
123
+ test('Schema Equality', async () => {
124
+ expect(compareSchemas(schemified, expectedSchema)).toBe(true);
125
+ expect(compareSchemas(schemified, (0, zod_2.schemify)({
126
+ hello: {
127
+ world: zod_2.string
128
+ },
129
+ foo: {
130
+ bar: zod_2.number
131
+ }
132
+ }))).toBe(true);
133
+ expect(compareSchemas(schemified, (0, zod_2.schemify)({
134
+ hello: (0, zod_2.schemify)({
135
+ world: zod_2.string
136
+ }),
137
+ foo: {
138
+ bar: zod_2.number
139
+ }
140
+ }))).toBe(true);
141
+ expect(compareSchemas(schemified, (0, zod_2.schemify)({
142
+ hello: {
143
+ world: zod_2.string
144
+ },
145
+ foo: (0, zod_2.schemify)({
146
+ bar: zod_2.number
147
+ })
148
+ }))).toBe(true);
149
+ expect(compareSchemas(schemified, (0, zod_2.schemify)({
150
+ hello: (0, zod_2.schemify)({
151
+ world: zod_2.string
152
+ }),
153
+ foo: (0, zod_2.schemify)({
154
+ bar: zod_2.number
155
+ })
156
+ }))).toBe(true);
157
+ });
158
+ test('Optional Schema Equality', async () => {
159
+ const unboxSchemified = (0, zod_2.optional)(schema);
160
+ const boxSchemified = (0, zod_2.optional)(schemified);
161
+ const schemifiedExpected = zod_1.z.optional(expectedSchema);
162
+ expect(compareSchemas(unboxSchemified, schemifiedExpected)).toBe(true);
163
+ expect(compareSchemas(boxSchemified, schemifiedExpected)).toBe(true);
164
+ });
165
+ test('Array Schema Equality', async () => {
166
+ const unboxSchemified = (0, zod_2.array)(schema);
167
+ const boxSchemified = (0, zod_2.array)(schemified);
168
+ const schemifiedExpected = zod_1.z.array(expectedSchema);
169
+ expect(compareSchemas(unboxSchemified, schemifiedExpected)).toBe(true);
170
+ expect(compareSchemas(boxSchemified, schemifiedExpected)).toBe(true);
171
+ });
172
+ test('Union Schema Equality', async () => {
173
+ const unboxSchemified = (0, zod_2.union)([
174
+ schema,
175
+ {
176
+ test: zod_2.string
177
+ }
178
+ ]);
179
+ const unboxSchemified2 = (0, zod_2.union)([
180
+ schema,
181
+ (0, zod_2.schemify)({
182
+ test: zod_2.string
183
+ })
184
+ ]);
185
+ const boxSchemified1 = (0, zod_2.union)([
186
+ schemified,
187
+ (0, zod_2.schemify)({
188
+ test: zod_2.string
189
+ })
190
+ ]);
191
+ const boxSchemified2 = (0, zod_2.union)([
192
+ schemified,
193
+ {
194
+ test: zod_2.string
195
+ }
196
+ ]);
197
+ const schemifiedExpected = zod_1.z.union([
198
+ expectedSchema,
199
+ zod_1.z.object({
200
+ test: zod_1.z.string()
201
+ })
202
+ ]);
203
+ expect(compareSchemas(unboxSchemified, schemifiedExpected)).toBe(true);
204
+ expect(compareSchemas(unboxSchemified2, schemifiedExpected)).toBe(true);
205
+ });
206
+ test('Literal Schema Equality', async () => {
207
+ const schemified = (0, zod_2.schemify)({
208
+ hello: 'world'
209
+ });
210
+ expect(compareSchemas(schemified, zod_1.z.object({
211
+ hello: zod_1.z.literal('world')
212
+ }))).toBe(true);
213
+ });
214
+ test('Validate Schema', async () => {
215
+ expect((0, zod_2.validate)(schemified, {
216
+ hello: {
217
+ world: 'world'
218
+ },
219
+ foo: {
220
+ bar: 42
221
+ }
222
+ })).toBe(true);
223
+ expect((0, zod_2.validate)(schemified, {
224
+ hello: {
225
+ world: 55
226
+ },
227
+ foo: {
228
+ bar: 42
229
+ }
230
+ })).toBe(false);
231
+ });
232
+ test('OpenAPI Conversion', async () => {
233
+ const schemified = (0, zod_2.schemify)(schema);
234
+ const openApi = (0, zod_2.openapi)(schemified);
235
+ expect(openApi).toEqual((0, zod_openapi_1.generateSchema)(schemified));
236
+ });
237
+ });
238
+ //# sourceMappingURL=equality.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equality.test.js","sourceRoot":"","sources":["../../../tests/zod/equality.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_1 = require("../../zod/index");
4
+ describe('Zod Large Schema Tests', () => {
5
+ it('Deep Union', async () => {
6
+ const deepOne = {
7
+ s: {
8
+ s: {
9
+ s: {
10
+ s: {
11
+ s: {
12
+ s: {
13
+ s: {
14
+ s: {
15
+ s: {
16
+ s: {
17
+ s: {
18
+ s: {
19
+ s: {
20
+ s: {
21
+ b: 'number'
22
+ }
23
+ }
24
+ }
25
+ }
26
+ }
27
+ }
28
+ }
29
+ }
30
+ }
31
+ }
32
+ }
33
+ }
34
+ }
35
+ }
36
+ };
37
+ const deepTwo = {
38
+ k: {
39
+ o: index_1.number,
40
+ s: {
41
+ s: {
42
+ s: {
43
+ s: {
44
+ s: {
45
+ s: {
46
+ s: {
47
+ s: {
48
+ s: {
49
+ s: {
50
+ s: {
51
+ s: {
52
+ s: {
53
+ b: index_1.string
54
+ }
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ };
69
+ const deepUnion = (0, index_1.union)([deepOne, deepTwo]);
70
+ });
71
+ it('Realistic Schema', async () => {
72
+ const realistic = (0, index_1.array)({
73
+ level1: {
74
+ name: {
75
+ j: (0, index_1.union)([
76
+ index_1.string,
77
+ index_1.number,
78
+ index_1.date,
79
+ index_1.boolean,
80
+ index_1.bigint,
81
+ index_1.empty,
82
+ index_1.symbol,
83
+ index_1.never
84
+ ]),
85
+ t: (0, index_1.optional)((0, index_1.union)([
86
+ (0, index_1.array)({
87
+ y: (0, index_1.array)(index_1.number)
88
+ }),
89
+ index_1.string
90
+ ])),
91
+ m: {
92
+ a: (0, index_1.optional)(index_1.string),
93
+ b: index_1.number,
94
+ c: {
95
+ d: index_1.string,
96
+ e: index_1.number,
97
+ f: {
98
+ g: index_1.string,
99
+ h: index_1.number,
100
+ i: {
101
+ j: index_1.string,
102
+ k: index_1.number,
103
+ l: {
104
+ m: index_1.boolean,
105
+ n: (0, index_1.array)(index_1.string),
106
+ o: (0, index_1.optional)((0, index_1.union)([index_1.string, index_1.number])),
107
+ p: {
108
+ q: index_1.string,
109
+ r: index_1.number
110
+ }
111
+ }
112
+ }
113
+ }
114
+ }
115
+ }
116
+ },
117
+ additionalField1: {
118
+ a: (0, index_1.union)([index_1.string, index_1.boolean, index_1.bigint, index_1.empty]),
119
+ b: (0, index_1.optional)((0, index_1.array)(index_1.number)),
120
+ c: {
121
+ d: index_1.string,
122
+ e: index_1.number,
123
+ f: {
124
+ g: index_1.string,
125
+ h: index_1.number
126
+ }
127
+ }
128
+ },
129
+ additionalField2: {
130
+ x: index_1.string,
131
+ y: (0, index_1.union)([index_1.string, (0, index_1.array)(index_1.boolean)]),
132
+ z: {
133
+ a: index_1.string,
134
+ b: index_1.number
135
+ }
136
+ }
137
+ },
138
+ code: {
139
+ 200: {
140
+ j: index_1.string
141
+ },
142
+ 404: {
143
+ k: index_1.string
144
+ }
145
+ },
146
+ flag: {
147
+ a: true,
148
+ b: false
149
+ }
150
+ });
151
+ });
152
+ });
153
+ //# sourceMappingURL=largeSchema.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"largeSchema.test.js","sourceRoot":"","sources":["../../../tests/zod/largeSchema.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * This module provides a TypeScript-based schema definition using the TypeBox library.
3
+ * It includes various types, schema creation, validation, and OpenAPI integration.
4
+ *
5
+ * @module TypeboxSchemaValidator
6
+ */
7
+ import { TArray, TLiteral, TOptional, TProperties, TSchema, TUnion } from '@sinclair/typebox';
8
+ import { SchemaObject } from 'openapi3-ts/oas31';
9
+ import { LiteralSchema, SchemaValidator } from '../types/schema.types';
10
+ import { TIdiomaticSchema, TObject, TResolve, TUnionContainer, UnionTResolve } from './types/typebox.schema.types';
11
+ /**
12
+ * Class representing a TypeBox schema definition.
13
+ * @implements {SchemaValidator}
14
+ */
15
+ export declare class TypeboxSchemaValidator implements SchemaValidator<(<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) => SchemaObject> {
16
+ _Type: 'TypeBox';
17
+ _SchemaCatchall: TSchema;
18
+ _ValidSchemaObject: TObject<TProperties> | TArray<TObject<TProperties>>;
19
+ string: import("@sinclair/typebox").TString;
20
+ number: import("@sinclair/typebox").TNumber;
21
+ bigint: import("@sinclair/typebox").TBigInt;
22
+ boolean: import("@sinclair/typebox").TBoolean;
23
+ date: import("@sinclair/typebox").TDate;
24
+ symbol: import("@sinclair/typebox").TSymbol;
25
+ empty: TUnion<[import("@sinclair/typebox").TVoid, import("@sinclair/typebox").TNull, import("@sinclair/typebox").TUndefined]>;
26
+ any: import("@sinclair/typebox").TAny;
27
+ unknown: import("@sinclair/typebox").TUnknown;
28
+ never: import("@sinclair/typebox").TNever;
29
+ /**
30
+ * Convert a schema to a TypeBox schema.
31
+ * @param {TIdiomaticSchema} schema - The schema to convert.
32
+ * @returns {TResolve<T>} The resolved schema.
33
+ */
34
+ schemify<T extends TIdiomaticSchema>(schema: T): TResolve<T>;
35
+ /**
36
+ * Make a schema optional.
37
+ * @param {TIdiomaticSchema} schema - The schema to make optional.
38
+ * @returns {TOptional<TResolve<T>>} The optional schema.
39
+ */
40
+ optional<T extends TIdiomaticSchema>(schema: T): TOptional<TResolve<T>>;
41
+ /**
42
+ * Create an array schema.
43
+ * @param {TIdiomaticSchema} schema - The schema to use for array items.
44
+ * @returns {TArray<TResolve<T>>} The array schema.
45
+ */
46
+ array<T extends TIdiomaticSchema>(schema: T): TArray<TResolve<T>>;
47
+ /**
48
+ * Create a union schema.
49
+ * @param {TUnionContainer} schemas - The schemas to union.
50
+ * @returns {TUnion<UnionTResolve<T>>} The union schema.
51
+ *
52
+ * WARNING: If "empty" or TUndefined is included in the union, the key will still be expected.
53
+ * This is a limitation of TypeBox. Consider using "optional" instead.
54
+ */
55
+ union<T extends TUnionContainer>(schemas: T): TUnion<UnionTResolve<T>>;
56
+ /**
57
+ * Create a literal schema.
58
+ * @param {LiteralSchema} value - The literal value.
59
+ * @returns {TLiteral<T>} The literal schema.
60
+ */
61
+ literal<T extends LiteralSchema>(value: T): TLiteral<T>;
62
+ /**
63
+ * Validate a value against a schema.
64
+ * @param {TSchema} schema - The schema to validate against.
65
+ * @param {unknown} value - The value to validate.
66
+ * @returns {boolean} True if valid, otherwise false.
67
+ */
68
+ validate<T extends TIdiomaticSchema | TSchema>(schema: T, value: unknown): boolean;
69
+ /**
70
+ * Convert a schema to an OpenAPI schema object.
71
+ * @param {TIdiomaticSchema | TSchema} schema - The schema to convert.
72
+ * @returns {SchemaObject} The OpenAPI schema object.
73
+ */
74
+ openapi<T extends TIdiomaticSchema | TSchema>(schema: T): SchemaObject;
75
+ }
76
+ /**
77
+ * Factory function for creating a TypeboxSchemaValidator instance.
78
+ * @returns {TypeboxSchemaValidator} The TypeboxSchemaValidator instance.
79
+ */
80
+ export declare const TypeboxSchema: () => TypeboxSchemaValidator;
81
+ declare const SchemaValidator: TypeboxSchemaValidator;
82
+ /**
83
+ * TypeBox schema definition for string type.
84
+ */
85
+ export declare const string: typeof SchemaValidator.string;
86
+ /**
87
+ * TypeBox schema definition for number type.
88
+ */
89
+ export declare const number: typeof SchemaValidator.number;
90
+ /**
91
+ * TypeBox schema definition for bigint type.
92
+ */
93
+ export declare const bigint: typeof SchemaValidator.bigint;
94
+ /**
95
+ * TypeBox schema definition for boolean type.
96
+ */
97
+ export declare const boolean: typeof SchemaValidator.boolean;
98
+ /**
99
+ * TypeBox schema definition for date type.
100
+ */
101
+ export declare const date: typeof SchemaValidator.date;
102
+ /**
103
+ * TypeBox schema definition for symbol type.
104
+ */
105
+ export declare const symbol: typeof SchemaValidator.symbol;
106
+ /**
107
+ * TypeBox schema definition for undefined, null, void types.
108
+ */
109
+ export declare const empty: typeof SchemaValidator.empty;
110
+ /**
111
+ * TypeBox schema definition for any type.
112
+ */
113
+ export declare const any: typeof SchemaValidator.any;
114
+ /**
115
+ * TypeBox schema definition for unknown type.
116
+ */
117
+ export declare const unknown: typeof SchemaValidator.unknown;
118
+ /**
119
+ * TypeBox schema definition for never type.
120
+ */
121
+ export declare const never: typeof SchemaValidator.never;
122
+ /**
123
+ * Transforms valid schema into TypeBox schema.
124
+ */
125
+ export declare const schemify: typeof SchemaValidator.schemify;
126
+ /**
127
+ * Makes a valid schema optional.
128
+ */
129
+ export declare const optional: typeof SchemaValidator.optional;
130
+ /**
131
+ * Defines an array for a valid schema.
132
+ */
133
+ export declare const array: typeof SchemaValidator.array;
134
+ /**
135
+ * Defines a union for a valid schema.
136
+ */
137
+ export declare const union: typeof SchemaValidator.union;
138
+ /**
139
+ * Defines a literal for a valid schema.
140
+ */
141
+ export declare const literal: typeof SchemaValidator.literal;
142
+ /**
143
+ * Validates a value against a valid schema.
144
+ */
145
+ export declare const validate: typeof SchemaValidator.validate;
146
+ /**
147
+ * Generates an OpenAPI schema object from a valid schema.
148
+ */
149
+ export declare const openapi: typeof SchemaValidator.openapi;
150
+ export {};