@forklaunch/validator 0.2.7 → 0.2.9

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 +56 -0
  8. package/dist/tests/mockSchemaValidator.js +60 -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 +155 -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 @@
1
+ export * from './types';
package/dist/index.js ADDED
@@ -0,0 +1,18 @@
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
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
@@ -0,0 +1,3 @@
1
+ import type { Config } from 'jest';
2
+ declare const config: Config;
3
+ export default config;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const config = {
4
+ verbose: true,
5
+ preset: 'ts-jest',
6
+ testEnvironment: 'node',
7
+ testPathIgnorePatterns: ['dist/', 'node_modules/']
8
+ };
9
+ exports.default = config;
10
+ //# sourceMappingURL=jest.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.config.js","sourceRoot":"","sources":["../jest.config.ts"],"names":[],"mappings":";;AAEA,MAAM,MAAM,GAAW;IACrB,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,SAAS;IACjB,eAAe,EAAE,MAAM;IACvB,sBAAsB,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC;CACnD,CAAC;AAEF,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { SchemaObject } from 'openapi3-ts/oas31';
2
+ import { SchemaValidator } from '../index';
3
+ import { LiteralSchema } from '../types/schema.types';
4
+ declare module '../types/schema.types' {
5
+ interface SchemaResolve<T> {
6
+ Mock: T;
7
+ }
8
+ interface SchemaTranslate<T> {
9
+ Mock: T;
10
+ }
11
+ }
12
+ type RecursiveUnion<T extends readonly string[]> = T extends readonly [
13
+ infer F extends string,
14
+ ...infer R extends readonly string[]
15
+ ] ? R extends [] ? F : `${F} | ${RecursiveUnion<R>}` : '';
16
+ export declare class MockSchemaValidator implements SchemaValidator<(<T extends string>(schema: T) => T), <T extends string>(schema: T) => `optional ${T}`, <T extends string>(schema: T) => `array ${T}`, <T extends readonly string[]>(schemas: T) => RecursiveUnion<T>, <T extends LiteralSchema>(schema: T) => `literal ${T}`, <T extends string>(schema: T, value: string) => boolean, <T extends string>(schema: T) => SchemaObject> {
17
+ _Type: 'Mock';
18
+ _SchemaCatchall: string;
19
+ _ValidSchemaObject: string;
20
+ string: string;
21
+ number: string;
22
+ bigint: string;
23
+ boolean: string;
24
+ date: string;
25
+ symbol: string;
26
+ empty: string;
27
+ any: string;
28
+ unknown: string;
29
+ never: string;
30
+ schemify<T>(schema: T): T;
31
+ optional<T extends string>(schema: T): `optional ${T}`;
32
+ array<T extends string>(schema: T): `array ${T}`;
33
+ union<T extends readonly string[]>(schemas: T): RecursiveUnion<T>;
34
+ literal<T extends LiteralSchema>(schema: T): `literal ${T}`;
35
+ validate<T extends string>(schema: T, value: string): boolean;
36
+ openapi<T extends string>(schema: T): SchemaObject;
37
+ }
38
+ export declare const mockSchemaValidator: MockSchemaValidator;
39
+ export declare const string: string;
40
+ export declare const number: string;
41
+ export declare const bigint: string;
42
+ export declare const boolean: string;
43
+ export declare const date: string;
44
+ export declare const symbol: string;
45
+ export declare const empty: string;
46
+ export declare const any: string;
47
+ export declare const unknown: string;
48
+ export declare const never: string;
49
+ export declare const schemify: <T>(schema: T) => T;
50
+ export declare const optional: <T extends string>(schema: T) => `optional ${T}`;
51
+ export declare const array: <T extends string>(schema: T) => `array ${T}`;
52
+ export declare const union: <T extends readonly string[]>(schemas: T) => RecursiveUnion<T>;
53
+ export declare const literal: <T extends LiteralSchema>(schema: T) => `literal ${T}`;
54
+ export declare const validate: <T extends string>(schema: T, value: string) => boolean;
55
+ export declare const openapi: <T extends string>(schema: T) => SchemaObject;
56
+ export {};
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ 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.mockSchemaValidator = exports.MockSchemaValidator = void 0;
4
+ class MockSchemaValidator {
5
+ _Type;
6
+ _SchemaCatchall;
7
+ _ValidSchemaObject;
8
+ string = 'string';
9
+ number = 'number';
10
+ bigint = 'bigint';
11
+ boolean = 'boolean';
12
+ date = 'date';
13
+ symbol = 'symbol';
14
+ empty = 'empty';
15
+ any = 'any';
16
+ unknown = 'unknown';
17
+ never = 'never';
18
+ schemify(schema) {
19
+ return schema;
20
+ }
21
+ optional(schema) {
22
+ return ('optional ' + schema);
23
+ }
24
+ array(schema) {
25
+ return ('array ' + schema);
26
+ }
27
+ union(schemas) {
28
+ return schemas.join(' | ');
29
+ }
30
+ literal(schema) {
31
+ return `literal ${schema}`;
32
+ }
33
+ validate(schema, value) {
34
+ return true;
35
+ }
36
+ openapi(schema) {
37
+ return {};
38
+ }
39
+ }
40
+ exports.MockSchemaValidator = MockSchemaValidator;
41
+ exports.mockSchemaValidator = new MockSchemaValidator();
42
+ exports.string = exports.mockSchemaValidator.string;
43
+ exports.number = exports.mockSchemaValidator.number;
44
+ exports.bigint = exports.mockSchemaValidator.bigint;
45
+ exports.boolean = exports.mockSchemaValidator.boolean;
46
+ exports.date = exports.mockSchemaValidator.date;
47
+ exports.symbol = exports.mockSchemaValidator.symbol;
48
+ exports.empty = exports.mockSchemaValidator.empty;
49
+ exports.any = exports.mockSchemaValidator.any;
50
+ exports.unknown = exports.mockSchemaValidator.unknown;
51
+ exports.never = exports.mockSchemaValidator.never;
52
+ exports.schemify = exports.mockSchemaValidator.schemify.bind(exports.mockSchemaValidator);
53
+ exports.optional = exports.mockSchemaValidator.optional.bind(exports.mockSchemaValidator);
54
+ exports.array = exports.mockSchemaValidator.array.bind(exports.mockSchemaValidator);
55
+ // note, use 'as const' when calling on the input array, for proper type coercion
56
+ exports.union = exports.mockSchemaValidator.union.bind(exports.mockSchemaValidator);
57
+ exports.literal = exports.mockSchemaValidator.literal.bind(exports.mockSchemaValidator);
58
+ exports.validate = exports.mockSchemaValidator.validate.bind(exports.mockSchemaValidator);
59
+ exports.openapi = exports.mockSchemaValidator.openapi.bind(exports.mockSchemaValidator);
60
+ //# sourceMappingURL=mockSchemaValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockSchemaValidator.js","sourceRoot":"","sources":["../../tests/mockSchemaValidator.ts"],"names":[],"mappings":";;;AAuBA,MAAa,mBAAmB;IAY9B,KAAK,CAAU;IACf,eAAe,CAAU;IACzB,kBAAkB,CAAU;IAE5B,MAAM,GAAG,QAAQ,CAAC;IAClB,MAAM,GAAG,QAAQ,CAAC;IAClB,MAAM,GAAG,QAAQ,CAAC;IAClB,OAAO,GAAG,SAAS,CAAC;IACpB,IAAI,GAAG,MAAM,CAAC;IACd,MAAM,GAAG,QAAQ,CAAC;IAClB,KAAK,GAAG,OAAO,CAAC;IAChB,GAAG,GAAG,KAAK,CAAC;IACZ,OAAO,GAAG,SAAS,CAAC;IACpB,KAAK,GAAG,OAAO,CAAC;IAEhB,QAAQ,CAAI,MAAS;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,QAAQ,CAAmB,MAAS;QAClC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAoB,CAAC;IACnD,CAAC;IACD,KAAK,CAAmB,MAAS;QAC/B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAiB,CAAC;IAC7C,CAAC;IACD,KAAK,CAA8B,OAAU;QAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAsB,CAAC;IAClD,CAAC;IACD,OAAO,CAA0B,MAAS;QACxC,OAAO,WAAW,MAAM,EAAE,CAAC;IAC7B,CAAC;IACD,QAAQ,CAAmB,MAAS,EAAE,KAAa;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAmB,MAAS;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAhDD,kDAgDC;AAEY,QAAA,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;AAChD,QAAA,MAAM,GAAG,2BAAmB,CAAC,MAAM,CAAC;AACpC,QAAA,MAAM,GAAG,2BAAmB,CAAC,MAAM,CAAC;AACpC,QAAA,MAAM,GAAG,2BAAmB,CAAC,MAAM,CAAC;AACpC,QAAA,OAAO,GAAG,2BAAmB,CAAC,OAAO,CAAC;AACtC,QAAA,IAAI,GAAG,2BAAmB,CAAC,IAAI,CAAC;AAChC,QAAA,MAAM,GAAG,2BAAmB,CAAC,MAAM,CAAC;AACpC,QAAA,KAAK,GAAG,2BAAmB,CAAC,KAAK,CAAC;AAClC,QAAA,GAAG,GAAG,2BAAmB,CAAC,GAAG,CAAC;AAC9B,QAAA,OAAO,GAAG,2BAAmB,CAAC,OAAO,CAAC;AACtC,QAAA,KAAK,GAAG,2BAAmB,CAAC,KAAK,CAAC;AAClC,QAAA,QAAQ,GAAG,2BAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAAmB,CAAC,CAAC;AAClE,QAAA,QAAQ,GAAG,2BAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAAmB,CAAC,CAAC;AAClE,QAAA,KAAK,GAAG,2BAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,2BAAmB,CAAC,CAAC;AACzE,iFAAiF;AACpE,QAAA,KAAK,GAAG,2BAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,2BAAmB,CAAC,CAAC;AAC5D,QAAA,OAAO,GAAG,2BAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,2BAAmB,CAAC,CAAC;AAChE,QAAA,QAAQ,GAAG,2BAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAAmB,CAAC,CAAC;AAClE,QAAA,OAAO,GAAG,2BAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,2BAAmB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function assert<T extends never>(): void;
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assert = assert;
4
+ const typebox_1 = require("@sinclair/typebox");
5
+ const index_1 = require("../../typebox/index");
6
+ const one = (0, index_1.array)({
7
+ name: {
8
+ j: (0, index_1.union)([index_1.string, index_1.number, index_1.date, index_1.boolean, index_1.bigint, index_1.empty, index_1.symbol, index_1.never]),
9
+ t: (0, index_1.optional)((0, index_1.union)([
10
+ (0, index_1.array)({
11
+ y: (0, index_1.array)(index_1.number)
12
+ }),
13
+ index_1.string
14
+ ])),
15
+ m: {
16
+ a: (0, index_1.optional)(index_1.string),
17
+ b: index_1.number,
18
+ c: {
19
+ d: index_1.string,
20
+ e: index_1.number
21
+ }
22
+ }
23
+ },
24
+ 200: {
25
+ j: index_1.string
26
+ },
27
+ m: {
28
+ a: true
29
+ }
30
+ });
31
+ const two = (0, index_1.array)({
32
+ name: {
33
+ j: (0, index_1.union)([index_1.string, index_1.number, index_1.date, index_1.boolean, index_1.bigint, index_1.empty, index_1.symbol, index_1.never]),
34
+ t: (0, index_1.optional)((0, index_1.union)([
35
+ (0, index_1.array)({
36
+ y: (0, index_1.array)(index_1.number)
37
+ }),
38
+ index_1.string
39
+ ])),
40
+ m: (0, index_1.schemify)({
41
+ a: (0, index_1.optional)(index_1.string),
42
+ b: index_1.number,
43
+ c: {
44
+ d: index_1.string,
45
+ e: index_1.number
46
+ }
47
+ })
48
+ },
49
+ 200: {
50
+ j: index_1.string
51
+ },
52
+ m: {
53
+ a: true
54
+ }
55
+ });
56
+ const three = (0, index_1.schemify)((0, index_1.array)((0, index_1.schemify)({
57
+ name: (0, index_1.schemify)({
58
+ j: (0, index_1.union)([index_1.string, index_1.number, index_1.date, index_1.boolean, index_1.bigint, index_1.empty, index_1.symbol, index_1.never]),
59
+ t: (0, index_1.optional)((0, index_1.union)([
60
+ (0, index_1.array)({
61
+ y: (0, index_1.array)(index_1.number)
62
+ }),
63
+ index_1.string
64
+ ])),
65
+ m: (0, index_1.schemify)({
66
+ a: (0, index_1.optional)(index_1.string),
67
+ b: index_1.number,
68
+ c: {
69
+ d: index_1.string,
70
+ e: index_1.number
71
+ }
72
+ })
73
+ }),
74
+ 200: (0, index_1.schemify)({
75
+ j: index_1.string
76
+ }),
77
+ m: (0, index_1.schemify)({
78
+ a: true
79
+ })
80
+ })));
81
+ function assert() { }
82
+ assert();
83
+ assert();
84
+ assert();
85
+ assert();
86
+ const shortOne = {
87
+ s: index_1.string,
88
+ non: index_1.number
89
+ };
90
+ const shortTwo = (0, index_1.schemify)({
91
+ s: index_1.string,
92
+ non: index_1.number
93
+ });
94
+ assert();
95
+ assert();
96
+ describe('Typebox Equality Tests', () => {
97
+ let schema;
98
+ let schemified;
99
+ let expectedSchema;
100
+ beforeAll(() => {
101
+ schema = {
102
+ hello: {
103
+ world: index_1.string
104
+ },
105
+ foo: {
106
+ bar: index_1.number
107
+ }
108
+ };
109
+ schemified = (0, index_1.schemify)(schema);
110
+ expectedSchema = typebox_1.Type.Object({
111
+ hello: typebox_1.Type.Object({
112
+ world: typebox_1.Type.String()
113
+ }),
114
+ foo: typebox_1.Type.Object({
115
+ bar: typebox_1.Type.Number()
116
+ })
117
+ });
118
+ });
119
+ test('Schema Equality', async () => {
120
+ expect(schemified).toEqual(expectedSchema);
121
+ expect(schemified).toEqual((0, index_1.schemify)({
122
+ hello: {
123
+ world: index_1.string
124
+ },
125
+ foo: {
126
+ bar: index_1.number
127
+ }
128
+ }));
129
+ expect(schemified).toEqual((0, index_1.schemify)({
130
+ hello: (0, index_1.schemify)({
131
+ world: index_1.string
132
+ }),
133
+ foo: {
134
+ bar: index_1.number
135
+ }
136
+ }));
137
+ expect(schemified).toEqual((0, index_1.schemify)({
138
+ hello: {
139
+ world: index_1.string
140
+ },
141
+ foo: (0, index_1.schemify)({
142
+ bar: index_1.number
143
+ })
144
+ }));
145
+ expect(schemified).toEqual((0, index_1.schemify)({
146
+ hello: (0, index_1.schemify)({
147
+ world: index_1.string
148
+ }),
149
+ foo: (0, index_1.schemify)({
150
+ bar: index_1.number
151
+ })
152
+ }));
153
+ });
154
+ test('Optional Schema Equality', async () => {
155
+ const unboxSchemified = (0, index_1.optional)(schema);
156
+ const boxSchemified = (0, index_1.optional)(schemified);
157
+ const schemifiedExpected = typebox_1.Type.Optional(expectedSchema);
158
+ expect(unboxSchemified).toEqual(schemifiedExpected);
159
+ expect(boxSchemified).toEqual(schemifiedExpected);
160
+ });
161
+ test('Array Schema Equality', async () => {
162
+ const unboxSchemified = (0, index_1.array)(schema);
163
+ const boxSchemified = (0, index_1.array)(schemified);
164
+ const schemifiedExpected = typebox_1.Type.Array(expectedSchema);
165
+ expect(unboxSchemified).toEqual(schemifiedExpected);
166
+ expect(boxSchemified).toEqual(schemifiedExpected);
167
+ });
168
+ test('Union Schema Equality', async () => {
169
+ const unboxSchemified = (0, index_1.union)([
170
+ schema,
171
+ {
172
+ test: index_1.string
173
+ }
174
+ ]);
175
+ const unboxSchemified2 = (0, index_1.union)([
176
+ schema,
177
+ (0, index_1.schemify)({
178
+ test: index_1.string
179
+ })
180
+ ]);
181
+ const boxSchemified1 = (0, index_1.union)([
182
+ schemified,
183
+ (0, index_1.schemify)({
184
+ test: index_1.string
185
+ })
186
+ ]);
187
+ const boxSchemified2 = (0, index_1.union)([
188
+ schemified,
189
+ {
190
+ test: index_1.string
191
+ }
192
+ ]);
193
+ const schemifiedExpected = typebox_1.Type.Union([
194
+ expectedSchema,
195
+ typebox_1.Type.Object({
196
+ test: typebox_1.Type.String()
197
+ })
198
+ ]);
199
+ expect(unboxSchemified).toEqual(schemifiedExpected);
200
+ expect(unboxSchemified2).toEqual(schemifiedExpected);
201
+ });
202
+ test('Literal Schema Equality', async () => {
203
+ const schemified = (0, index_1.schemify)({
204
+ hello: 'world'
205
+ });
206
+ expect(schemified).toEqual(typebox_1.Type.Object({
207
+ hello: typebox_1.Type.Literal('world')
208
+ }));
209
+ });
210
+ test('Validate Schema', async () => {
211
+ expect((0, index_1.validate)(schemified, {
212
+ hello: {
213
+ world: 'world'
214
+ },
215
+ foo: {
216
+ bar: 42
217
+ }
218
+ })).toBe(true);
219
+ expect((0, index_1.validate)(schemified, {
220
+ hello: {
221
+ world: 55
222
+ },
223
+ foo: {
224
+ bar: 42
225
+ }
226
+ })).toBe(false);
227
+ });
228
+ test('OpenAPI Conversion', async () => {
229
+ const schemified = (0, index_1.schemify)(schema);
230
+ const openApi = (0, index_1.openapi)(schemified);
231
+ expect(openApi).toEqual(schemified);
232
+ });
233
+ });
234
+ //# sourceMappingURL=equality.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equality.test.js","sourceRoot":"","sources":["../../../tests/typebox/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("../../typebox/index");
4
+ describe('Typebox Large Schema Tests', () => {
5
+ it('Deep Union', () => {
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', () => {
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/typebox/largeSchema.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function assert<T extends never>(): void;