@forklaunch/validator 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -88
- package/dist/index.js +1 -7
- package/dist/index.js.map +1 -1
- package/dist/tests/mockSchemaValidator.d.ts +5 -2
- package/dist/tests/mockSchemaValidator.js +3 -4
- package/dist/tests/mockSchemaValidator.js.map +1 -1
- package/dist/tests/typebox/equality.test.js +40 -16
- package/dist/tests/typebox/equality.test.js.map +1 -1
- package/dist/tests/typebox/largeSchema.test.js +19 -7
- package/dist/tests/typebox/largeSchema.test.js.map +1 -1
- package/dist/tests/zod/equality.test.js +40 -16
- package/dist/tests/zod/equality.test.js.map +1 -1
- package/dist/tests/zod/largeSchema.test.js +16 -4
- package/dist/tests/zod/largeSchema.test.js.map +1 -1
- package/dist/typebox/index.d.ts +6 -4
- package/dist/typebox/index.js +6 -1
- package/dist/typebox/index.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/{interfaces → types}/index.js +1 -1
- package/dist/types/index.js.map +1 -0
- package/dist/types/schema.types.d.ts +128 -3
- package/dist/zod/index.d.ts +6 -4
- package/dist/zod/index.js +6 -1
- package/dist/zod/index.js.map +1 -1
- package/dist/zod/types/zod.schema.types.d.ts +10 -5
- package/package.json +6 -3
- package/dist/interfaces/index.d.ts +0 -1
- package/dist/interfaces/index.js.map +0 -1
- package/dist/interfaces/schemaValidator.interfaces.d.ts +0 -108
- package/dist/interfaces/schemaValidator.interfaces.js +0 -3
- package/dist/interfaces/schemaValidator.interfaces.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,88 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* This module provides type definitions and utilities for working with schemas using Zod and TypeBox.
|
|
3
|
-
* It includes type mappings and transformations for schema objects, arrays, and resolutions.
|
|
4
|
-
*
|
|
5
|
-
* @module SchemaTypes
|
|
6
|
-
*/
|
|
7
|
-
import { Prettify } from "@forklaunch/common";
|
|
8
|
-
import { SchemaValidator } from "./interfaces/schemaValidator.interfaces";
|
|
9
|
-
import { TypeboxSchemaValidator } from "./typebox";
|
|
10
|
-
import { TCatchall, TObject, TObjectShape, TOuterArray, TResolve, TSchemaTranslate } from "./typebox/types/typebox.schema.types";
|
|
11
|
-
import { IdiomaticSchema } from "./types/schema.types";
|
|
12
|
-
import { ZodSchemaValidator } from "./zod";
|
|
13
|
-
import { ZodCatchall, ZodObject, ZodObjectShape, ZodOuterArray, ZodResolve, ZodSchemaTranslate } from "./zod/types/zod.schema.types";
|
|
14
|
-
/**
|
|
15
|
-
* Interface representing unknown schema validator.
|
|
16
|
-
* Extends the SchemaValidator interface with unknown schema types.
|
|
17
|
-
*/
|
|
18
|
-
export type AnySchemaValidator = SchemaValidator<unknown, unknown, unknown, unknown, unknown, unknown, unknown>;
|
|
19
|
-
/**
|
|
20
|
-
* Type alias for a schema object shape.
|
|
21
|
-
* Resolves to ZodObjectShape for Zod schemas and TObjectShape for TypeBox schemas.
|
|
22
|
-
*
|
|
23
|
-
* @template SV - SchemaValidator type.
|
|
24
|
-
*/
|
|
25
|
-
type SchemaObjectShape<SV extends AnySchemaValidator> = (SV extends ZodSchemaValidator ? ZodObjectShape : SV extends TypeboxSchemaValidator ? TObjectShape : never);
|
|
26
|
-
/**
|
|
27
|
-
* Type alias for a schema object.
|
|
28
|
-
* Resolves to ZodObject for Zod schemas and TObject for TypeBox schemas.
|
|
29
|
-
*
|
|
30
|
-
* @template T - Schema object shape.
|
|
31
|
-
* @template SV - SchemaValidator type.
|
|
32
|
-
*/
|
|
33
|
-
type SchemaObject<T extends SchemaObjectShape<SV>, SV extends AnySchemaValidator> = (SV extends ZodSchemaValidator ? ZodObject<T> : SV extends TypeboxSchemaValidator ? TObject<T> : never);
|
|
34
|
-
/**
|
|
35
|
-
* Type alias for a schema outer array.
|
|
36
|
-
* Resolves to ZodOuterArray for Zod schemas and TOuterArray for TypeBox schemas.
|
|
37
|
-
*
|
|
38
|
-
* @template T - Schema object.
|
|
39
|
-
* @template SV - SchemaValidator type.
|
|
40
|
-
*/
|
|
41
|
-
type SchemaOuterArray<T extends SchemaObject<SchemaObjectShape<SV>, SV>, SV extends AnySchemaValidator> = (SV extends ZodSchemaValidator ? ZodOuterArray<T> : SV extends TypeboxSchemaValidator ? TOuterArray<T> : never);
|
|
42
|
-
/**
|
|
43
|
-
* Type alias for resolving a schema.
|
|
44
|
-
* Resolves to ZodResolve for Zod schemas and TResolve for TypeBox schemas.
|
|
45
|
-
*
|
|
46
|
-
* @template T - Schema type.
|
|
47
|
-
* @template SV - SchemaValidator type.
|
|
48
|
-
*/
|
|
49
|
-
type SchemaResolve<T, SV extends AnySchemaValidator> = (SV extends ZodSchemaValidator ? ZodResolve<T> : SV extends TypeboxSchemaValidator ? TResolve<T> : never);
|
|
50
|
-
/**
|
|
51
|
-
* Type alias for translating a schema.
|
|
52
|
-
* Resolves to ZodSchemaTranslate for Zod schemas and TSchemaTranslate for TypeBox schemas.
|
|
53
|
-
*
|
|
54
|
-
* @template T - Schema type.
|
|
55
|
-
* @template SV - SchemaValidator type.
|
|
56
|
-
*/
|
|
57
|
-
type SchemaTranslate<T, SV extends AnySchemaValidator> = (SV extends ZodSchemaValidator ? ZodSchemaTranslate<T> : SV extends TypeboxSchemaValidator ? TSchemaTranslate<T> : never);
|
|
58
|
-
/**
|
|
59
|
-
* Type alias for prettifying a schema translation.
|
|
60
|
-
* Uses the Prettify utility from @forklaunch/common.
|
|
61
|
-
*
|
|
62
|
-
* @template T - Schema type.
|
|
63
|
-
* @template SV - SchemaValidator type.
|
|
64
|
-
*/
|
|
65
|
-
type SchemaPrettify<T, SV extends AnySchemaValidator> = Prettify<SchemaTranslate<T, SV>>;
|
|
66
|
-
/**
|
|
67
|
-
* Type alias for a schema catchall type.
|
|
68
|
-
* Resolves to ZodCatchall for Zod schemas and TCatchall for TypeBox schemas.
|
|
69
|
-
*
|
|
70
|
-
* @template SV - SchemaValidator type.
|
|
71
|
-
*/
|
|
72
|
-
export type SchemaCatchall<SV extends AnySchemaValidator> = (SV extends ZodSchemaValidator ? ZodCatchall : SV extends TypeboxSchemaValidator ? TCatchall : never);
|
|
73
|
-
/**
|
|
74
|
-
* Type alias for a valid schema object.
|
|
75
|
-
* Can be a schema object or a schema outer array.
|
|
76
|
-
*
|
|
77
|
-
* @template SV - SchemaValidator type.
|
|
78
|
-
*/
|
|
79
|
-
export type ValidSchemaObject<SV extends AnySchemaValidator> = SchemaObject<SchemaObjectShape<SV>, SV> | SchemaOuterArray<SchemaObject<SchemaObjectShape<SV>, SV>, SV>;
|
|
80
|
-
/**
|
|
81
|
-
* Type alias for a schema.
|
|
82
|
-
* Applies prettification to the resolved schema.
|
|
83
|
-
*
|
|
84
|
-
* @template T - Valid schema object or idiomatic schema.
|
|
85
|
-
* @template SV - SchemaValidator type.
|
|
86
|
-
*/
|
|
87
|
-
export type Schema<T extends ValidSchemaObject<SV> | IdiomaticSchema<SchemaCatchall<SV>>, SV extends AnySchemaValidator> = SchemaPrettify<SchemaResolve<T, SV>, SV>;
|
|
88
|
-
export * from "./interfaces";
|
|
1
|
+
export * from './types';
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* This module provides type definitions and utilities for working with schemas using Zod and TypeBox.
|
|
4
|
-
* It includes type mappings and transformations for schema objects, arrays, and resolutions.
|
|
5
|
-
*
|
|
6
|
-
* @module SchemaTypes
|
|
7
|
-
*/
|
|
8
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
3
|
if (k2 === undefined) k2 = k;
|
|
10
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -20,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
20
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
15
|
};
|
|
22
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./types"), exports);
|
|
24
18
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { SchemaValidator } from
|
|
2
|
-
import { LiteralSchema } from
|
|
1
|
+
import { SchemaValidator } from '../index';
|
|
2
|
+
import { LiteralSchema } from '../types/schema.types';
|
|
3
3
|
export declare class MockSchemaValidator implements SchemaValidator {
|
|
4
|
+
_Type: 'Mock';
|
|
5
|
+
_SchemaCatchall: string;
|
|
6
|
+
_ValidSchemaObject: string;
|
|
4
7
|
string: string;
|
|
5
8
|
number: string;
|
|
6
9
|
bigint: string;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MockSchemaValidator = void 0;
|
|
4
4
|
class MockSchemaValidator {
|
|
5
|
+
_Type;
|
|
6
|
+
_SchemaCatchall;
|
|
7
|
+
_ValidSchemaObject;
|
|
5
8
|
string = 'string';
|
|
6
9
|
number = 'number';
|
|
7
10
|
bigint = 'bigint';
|
|
@@ -15,11 +18,9 @@ class MockSchemaValidator {
|
|
|
15
18
|
schemify(schema) {
|
|
16
19
|
return schema;
|
|
17
20
|
}
|
|
18
|
-
;
|
|
19
21
|
optional(schema) {
|
|
20
22
|
return 'optional ' + schema;
|
|
21
23
|
}
|
|
22
|
-
;
|
|
23
24
|
array(schema) {
|
|
24
25
|
return 'array ' + schema;
|
|
25
26
|
}
|
|
@@ -29,11 +30,9 @@ class MockSchemaValidator {
|
|
|
29
30
|
literal(schema) {
|
|
30
31
|
return 'literal ' + schema;
|
|
31
32
|
}
|
|
32
|
-
;
|
|
33
33
|
validate(schema) {
|
|
34
34
|
return true;
|
|
35
35
|
}
|
|
36
|
-
;
|
|
37
36
|
openapi(schema) {
|
|
38
37
|
return {};
|
|
39
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockSchemaValidator.js","sourceRoot":"","sources":["../../tests/mockSchemaValidator.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"mockSchemaValidator.js","sourceRoot":"","sources":["../../tests/mockSchemaValidator.ts"],"names":[],"mappings":";;;AAGA,MAAa,mBAAmB;IAC9B,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,CAAI,MAAS;QACnB,OAAO,WAAW,GAAG,MAAM,CAAC;IAC9B,CAAC;IACD,KAAK,CAAI,MAAS;QAChB,OAAO,QAAQ,GAAG,MAAM,CAAC;IAC3B,CAAC;IACD,KAAK,CAAI,OAAY;QACnB,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,CAA0B,MAAS;QACxC,OAAO,UAAU,GAAG,MAAM,CAAC;IAC7B,CAAC;IACD,QAAQ,CAAI,MAAS;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAI,MAAS;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AArCD,kDAqCC"}
|
|
@@ -6,9 +6,12 @@ const index_1 = require("../../typebox/index");
|
|
|
6
6
|
const one = (0, index_1.array)({
|
|
7
7
|
name: {
|
|
8
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)([
|
|
9
|
+
t: (0, index_1.optional)((0, index_1.union)([
|
|
10
|
+
(0, index_1.array)({
|
|
10
11
|
y: (0, index_1.array)(index_1.number)
|
|
11
|
-
}),
|
|
12
|
+
}),
|
|
13
|
+
index_1.string
|
|
14
|
+
])),
|
|
12
15
|
m: {
|
|
13
16
|
a: (0, index_1.optional)(index_1.string),
|
|
14
17
|
b: index_1.number,
|
|
@@ -28,9 +31,12 @@ const one = (0, index_1.array)({
|
|
|
28
31
|
const two = (0, index_1.array)({
|
|
29
32
|
name: {
|
|
30
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]),
|
|
31
|
-
t: (0, index_1.optional)((0, index_1.union)([
|
|
34
|
+
t: (0, index_1.optional)((0, index_1.union)([
|
|
35
|
+
(0, index_1.array)({
|
|
32
36
|
y: (0, index_1.array)(index_1.number)
|
|
33
|
-
}),
|
|
37
|
+
}),
|
|
38
|
+
index_1.string
|
|
39
|
+
])),
|
|
34
40
|
m: (0, index_1.schemify)({
|
|
35
41
|
a: (0, index_1.optional)(index_1.string),
|
|
36
42
|
b: index_1.number,
|
|
@@ -50,9 +56,12 @@ const two = (0, index_1.array)({
|
|
|
50
56
|
const three = (0, index_1.schemify)((0, index_1.array)((0, index_1.schemify)({
|
|
51
57
|
name: (0, index_1.schemify)({
|
|
52
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]),
|
|
53
|
-
t: (0, index_1.optional)((0, index_1.union)([
|
|
59
|
+
t: (0, index_1.optional)((0, index_1.union)([
|
|
60
|
+
(0, index_1.array)({
|
|
54
61
|
y: (0, index_1.array)(index_1.number)
|
|
55
|
-
}),
|
|
62
|
+
}),
|
|
63
|
+
index_1.string
|
|
64
|
+
])),
|
|
56
65
|
m: (0, index_1.schemify)({
|
|
57
66
|
a: (0, index_1.optional)(index_1.string),
|
|
58
67
|
b: index_1.number,
|
|
@@ -157,21 +166,36 @@ describe('Typebox Equality Tests', () => {
|
|
|
157
166
|
expect(boxSchemified).toEqual(schemifiedExpected);
|
|
158
167
|
});
|
|
159
168
|
test('Union Schema Equality', async () => {
|
|
160
|
-
const unboxSchemified = (0, index_1.union)([
|
|
169
|
+
const unboxSchemified = (0, index_1.union)([
|
|
170
|
+
schema,
|
|
171
|
+
{
|
|
161
172
|
test: index_1.string
|
|
162
|
-
}
|
|
163
|
-
|
|
173
|
+
}
|
|
174
|
+
]);
|
|
175
|
+
const unboxSchemified2 = (0, index_1.union)([
|
|
176
|
+
schema,
|
|
177
|
+
(0, index_1.schemify)({
|
|
164
178
|
test: index_1.string
|
|
165
|
-
})
|
|
166
|
-
|
|
179
|
+
})
|
|
180
|
+
]);
|
|
181
|
+
const boxSchemified1 = (0, index_1.union)([
|
|
182
|
+
schemified,
|
|
183
|
+
(0, index_1.schemify)({
|
|
167
184
|
test: index_1.string
|
|
168
|
-
})
|
|
169
|
-
|
|
185
|
+
})
|
|
186
|
+
]);
|
|
187
|
+
const boxSchemified2 = (0, index_1.union)([
|
|
188
|
+
schemified,
|
|
189
|
+
{
|
|
170
190
|
test: index_1.string
|
|
171
|
-
}
|
|
172
|
-
|
|
191
|
+
}
|
|
192
|
+
]);
|
|
193
|
+
const schemifiedExpected = typebox_1.Type.Union([
|
|
194
|
+
expectedSchema,
|
|
195
|
+
typebox_1.Type.Object({
|
|
173
196
|
test: typebox_1.Type.String()
|
|
174
|
-
})
|
|
197
|
+
})
|
|
198
|
+
]);
|
|
175
199
|
expect(unboxSchemified).toEqual(schemifiedExpected);
|
|
176
200
|
expect(unboxSchemified2).toEqual(schemifiedExpected);
|
|
177
201
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equality.test.js","sourceRoot":"","sources":["../../../tests/typebox/equality.test.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"equality.test.js","sourceRoot":"","sources":["../../../tests/typebox/equality.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const index_1 = require("../../typebox/index");
|
|
4
|
-
describe(
|
|
5
|
-
it(
|
|
4
|
+
describe('Typebox Large Schema Tests', () => {
|
|
5
|
+
it('Deep Union', () => {
|
|
6
6
|
const deepOne = {
|
|
7
7
|
s: {
|
|
8
8
|
s: {
|
|
@@ -18,7 +18,7 @@ describe("Typebox Large Schema Tests", () => {
|
|
|
18
18
|
s: {
|
|
19
19
|
s: {
|
|
20
20
|
s: {
|
|
21
|
-
b:
|
|
21
|
+
b: 'number'
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -68,14 +68,26 @@ describe("Typebox Large Schema Tests", () => {
|
|
|
68
68
|
};
|
|
69
69
|
const deepUnion = (0, index_1.union)([deepOne, deepTwo]);
|
|
70
70
|
});
|
|
71
|
-
it(
|
|
71
|
+
it('Realistic Schema', () => {
|
|
72
72
|
const realistic = (0, index_1.array)({
|
|
73
73
|
level1: {
|
|
74
74
|
name: {
|
|
75
|
-
j: (0, index_1.union)([
|
|
76
|
-
|
|
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)({
|
|
77
87
|
y: (0, index_1.array)(index_1.number)
|
|
78
|
-
}),
|
|
88
|
+
}),
|
|
89
|
+
index_1.string
|
|
90
|
+
])),
|
|
79
91
|
m: {
|
|
80
92
|
a: (0, index_1.optional)(index_1.string),
|
|
81
93
|
b: index_1.number,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"largeSchema.test.js","sourceRoot":"","sources":["../../../tests/typebox/largeSchema.test.ts"],"names":[],"mappings":";;AACA,+
|
|
1
|
+
{"version":3,"file":"largeSchema.test.js","sourceRoot":"","sources":["../../../tests/typebox/largeSchema.test.ts"],"names":[],"mappings":";;AACA,+CAa6B;AAE7B,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;QACpB,MAAM,OAAO,GAAG;YACd,CAAC,EAAE;gBACD,CAAC,EAAE;oBACD,CAAC,EAAE;wBACD,CAAC,EAAE;4BACD,CAAC,EAAE;gCACD,CAAC,EAAE;oCACD,CAAC,EAAE;wCACD,CAAC,EAAE;4CACD,CAAC,EAAE;gDACD,CAAC,EAAE;oDACD,CAAC,EAAE;wDACD,CAAC,EAAE;4DACD,CAAC,EAAE;gEACD,CAAC,EAAE;oEACD,CAAC,EAAE,QAAiB;iEACrB;6DACF;yDACF;qDACF;iDACF;6CACF;yCACF;qCACF;iCACF;6BACF;yBACF;qBACF;iBACF;aACF;SACF,CAAC;QAEF,MAAM,OAAO,GAAG;YACd,CAAC,EAAE;gBACD,CAAC,EAAE,cAAM;gBACT,CAAC,EAAE;oBACD,CAAC,EAAE;wBACD,CAAC,EAAE;4BACD,CAAC,EAAE;gCACD,CAAC,EAAE;oCACD,CAAC,EAAE;wCACD,CAAC,EAAE;4CACD,CAAC,EAAE;gDACD,CAAC,EAAE;oDACD,CAAC,EAAE;wDACD,CAAC,EAAE;4DACD,CAAC,EAAE;gEACD,CAAC,EAAE;oEACD,CAAC,EAAE,cAAM;iEACV;6DACF;yDACF;qDACF;iDACF;6CACF;yCACF;qCACF;iCACF;6BACF;yBACF;qBACF;iBACF;aACF;SACF,CAAC;QAEF,MAAM,SAAS,GAAG,IAAA,aAAK,EAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAE9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,SAAS,GAAG,IAAA,aAAK,EAAC;YACtB,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,CAAC,EAAE,IAAA,aAAK,EAAC;wBACP,cAAM;wBACN,cAAM;wBACN,YAAI;wBACJ,eAAO;wBACP,cAAM;wBACN,aAAK;wBACL,cAAM;wBACN,aAAK;qBACN,CAAC;oBACF,CAAC,EAAE,IAAA,gBAAQ,EACT,IAAA,aAAK,EAAC;wBACJ,IAAA,aAAK,EAAC;4BACJ,CAAC,EAAE,IAAA,aAAK,EAAC,cAAM,CAAC;yBACjB,CAAC;wBACF,cAAM;qBACP,CAAC,CACH;oBACD,CAAC,EAAE;wBACD,CAAC,EAAE,IAAA,gBAAQ,EAAC,cAAM,CAAC;wBACnB,CAAC,EAAE,cAAM;wBACT,CAAC,EAAE;4BACD,CAAC,EAAE,cAAM;4BACT,CAAC,EAAE,cAAM;4BACT,CAAC,EAAE;gCACD,CAAC,EAAE,cAAM;gCACT,CAAC,EAAE,cAAM;gCACT,CAAC,EAAE;oCACD,CAAC,EAAE,cAAM;oCACT,CAAC,EAAE,cAAM;oCACT,CAAC,EAAE;wCACD,CAAC,EAAE,eAAO;wCACV,CAAC,EAAE,IAAA,aAAK,EAAC,cAAM,CAAC;wCAChB,CAAC,EAAE,IAAA,gBAAQ,EAAC,IAAA,aAAK,EAAC,CAAC,cAAM,EAAE,cAAM,CAAC,CAAC,CAAC;wCACpC,CAAC,EAAE;4CACD,CAAC,EAAE,cAAM;4CACT,CAAC,EAAE,cAAM;yCACV;qCACF;iCACF;6BACF;yBACF;qBACF;iBACF;gBACD,gBAAgB,EAAE;oBAChB,CAAC,EAAE,IAAA,aAAK,EAAC,CAAC,cAAM,EAAE,eAAO,EAAE,cAAM,EAAE,aAAK,CAAC,CAAC;oBAC1C,CAAC,EAAE,IAAA,gBAAQ,EAAC,IAAA,aAAK,EAAC,cAAM,CAAC,CAAC;oBAC1B,CAAC,EAAE;wBACD,CAAC,EAAE,cAAM;wBACT,CAAC,EAAE,cAAM;wBACT,CAAC,EAAE;4BACD,CAAC,EAAE,cAAM;4BACT,CAAC,EAAE,cAAM;yBACV;qBACF;iBACF;gBACD,gBAAgB,EAAE;oBAChB,CAAC,EAAE,cAAM;oBACT,CAAC,EAAE,IAAA,aAAK,EAAC,CAAC,cAAM,EAAE,IAAA,aAAK,EAAC,eAAO,CAAC,CAAC,CAAC;oBAClC,CAAC,EAAE;wBACD,CAAC,EAAE,cAAM;wBACT,CAAC,EAAE,cAAM;qBACV;iBACF;aACF;YACD,IAAI,EAAE;gBACJ,GAAG,EAAE;oBACH,CAAC,EAAE,cAAM;iBACV;gBACD,GAAG,EAAE;oBACH,CAAC,EAAE,cAAM;iBACV;aACF;YACD,IAAI,EAAE;gBACJ,CAAC,EAAE,IAAa;gBAChB,CAAC,EAAE,KAAc;aAClB;SACF,CAAC,CAAC;IAGL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -7,9 +7,12 @@ const zod_2 = require("../../zod");
|
|
|
7
7
|
const one = (0, zod_2.array)({
|
|
8
8
|
name: {
|
|
9
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)([
|
|
10
|
+
t: (0, zod_2.optional)((0, zod_2.union)([
|
|
11
|
+
(0, zod_2.array)({
|
|
11
12
|
y: (0, zod_2.array)(zod_2.number)
|
|
12
|
-
}),
|
|
13
|
+
}),
|
|
14
|
+
zod_2.string
|
|
15
|
+
])),
|
|
13
16
|
m: {
|
|
14
17
|
a: (0, zod_2.optional)(zod_2.string),
|
|
15
18
|
b: zod_2.number,
|
|
@@ -29,9 +32,12 @@ const one = (0, zod_2.array)({
|
|
|
29
32
|
const two = (0, zod_2.array)({
|
|
30
33
|
name: {
|
|
31
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]),
|
|
32
|
-
t: (0, zod_2.optional)((0, zod_2.union)([
|
|
35
|
+
t: (0, zod_2.optional)((0, zod_2.union)([
|
|
36
|
+
(0, zod_2.array)({
|
|
33
37
|
y: (0, zod_2.array)(zod_2.number)
|
|
34
|
-
}),
|
|
38
|
+
}),
|
|
39
|
+
zod_2.string
|
|
40
|
+
])),
|
|
35
41
|
m: (0, zod_2.schemify)({
|
|
36
42
|
a: (0, zod_2.optional)(zod_2.string),
|
|
37
43
|
b: zod_2.number,
|
|
@@ -51,9 +57,12 @@ const two = (0, zod_2.array)({
|
|
|
51
57
|
const three = (0, zod_2.schemify)((0, zod_2.array)((0, zod_2.schemify)({
|
|
52
58
|
name: (0, zod_2.schemify)({
|
|
53
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]),
|
|
54
|
-
t: (0, zod_2.optional)((0, zod_2.union)([
|
|
60
|
+
t: (0, zod_2.optional)((0, zod_2.union)([
|
|
61
|
+
(0, zod_2.array)({
|
|
55
62
|
y: (0, zod_2.array)(zod_2.number)
|
|
56
|
-
}),
|
|
63
|
+
}),
|
|
64
|
+
zod_2.string
|
|
65
|
+
])),
|
|
57
66
|
m: (0, zod_2.schemify)({
|
|
58
67
|
a: (0, zod_2.optional)(zod_2.string),
|
|
59
68
|
b: zod_2.number,
|
|
@@ -161,21 +170,36 @@ describe('Zod Equality Tests', () => {
|
|
|
161
170
|
expect(compareSchemas(boxSchemified, schemifiedExpected)).toBe(true);
|
|
162
171
|
});
|
|
163
172
|
test('Union Schema Equality', async () => {
|
|
164
|
-
const unboxSchemified = (0, zod_2.union)([
|
|
173
|
+
const unboxSchemified = (0, zod_2.union)([
|
|
174
|
+
schema,
|
|
175
|
+
{
|
|
165
176
|
test: zod_2.string
|
|
166
|
-
}
|
|
167
|
-
|
|
177
|
+
}
|
|
178
|
+
]);
|
|
179
|
+
const unboxSchemified2 = (0, zod_2.union)([
|
|
180
|
+
schema,
|
|
181
|
+
(0, zod_2.schemify)({
|
|
168
182
|
test: zod_2.string
|
|
169
|
-
})
|
|
170
|
-
|
|
183
|
+
})
|
|
184
|
+
]);
|
|
185
|
+
const boxSchemified1 = (0, zod_2.union)([
|
|
186
|
+
schemified,
|
|
187
|
+
(0, zod_2.schemify)({
|
|
171
188
|
test: zod_2.string
|
|
172
|
-
})
|
|
173
|
-
|
|
189
|
+
})
|
|
190
|
+
]);
|
|
191
|
+
const boxSchemified2 = (0, zod_2.union)([
|
|
192
|
+
schemified,
|
|
193
|
+
{
|
|
174
194
|
test: zod_2.string
|
|
175
|
-
}
|
|
176
|
-
|
|
195
|
+
}
|
|
196
|
+
]);
|
|
197
|
+
const schemifiedExpected = zod_1.z.union([
|
|
198
|
+
expectedSchema,
|
|
199
|
+
zod_1.z.object({
|
|
177
200
|
test: zod_1.z.string()
|
|
178
|
-
})
|
|
201
|
+
})
|
|
202
|
+
]);
|
|
179
203
|
expect(compareSchemas(unboxSchemified, schemifiedExpected)).toBe(true);
|
|
180
204
|
expect(compareSchemas(unboxSchemified2, schemifiedExpected)).toBe(true);
|
|
181
205
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equality.test.js","sourceRoot":"","sources":["../../../tests/zod/equality.test.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"equality.test.js","sourceRoot":"","sources":["../../../tests/zod/equality.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ describe('Zod Large Schema Tests', () => {
|
|
|
18
18
|
s: {
|
|
19
19
|
s: {
|
|
20
20
|
s: {
|
|
21
|
-
b:
|
|
21
|
+
b: 'number'
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -72,10 +72,22 @@ describe('Zod Large Schema Tests', () => {
|
|
|
72
72
|
const realistic = (0, index_1.array)({
|
|
73
73
|
level1: {
|
|
74
74
|
name: {
|
|
75
|
-
j: (0, index_1.union)([
|
|
76
|
-
|
|
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)({
|
|
77
87
|
y: (0, index_1.array)(index_1.number)
|
|
78
|
-
}),
|
|
88
|
+
}),
|
|
89
|
+
index_1.string
|
|
90
|
+
])),
|
|
79
91
|
m: {
|
|
80
92
|
a: (0, index_1.optional)(index_1.string),
|
|
81
93
|
b: index_1.number,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"largeSchema.test.js","sourceRoot":"","sources":["../../../tests/zod/largeSchema.test.ts"],"names":[],"mappings":";;AACA,
|
|
1
|
+
{"version":3,"file":"largeSchema.test.js","sourceRoot":"","sources":["../../../tests/zod/largeSchema.test.ts"],"names":[],"mappings":"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"}
|
package/dist/typebox/index.d.ts
CHANGED
|
@@ -4,16 +4,18 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @module TypeboxSchemaValidator
|
|
6
6
|
*/
|
|
7
|
-
import { TArray, TLiteral, TOptional, TSchema, TUnion } from '@sinclair/typebox';
|
|
7
|
+
import { TArray, TLiteral, TOptional, TProperties, TSchema, TUnion } from '@sinclair/typebox';
|
|
8
8
|
import { SchemaObject } from 'openapi3-ts/oas31';
|
|
9
|
-
import { SchemaValidator } from '../
|
|
10
|
-
import {
|
|
11
|
-
import { TIdiomaticSchema, TResolve, TUnionContainer, UnionTResolve } from './types/typebox.schema.types';
|
|
9
|
+
import { LiteralSchema, SchemaValidator } from '../types/schema.types';
|
|
10
|
+
import { TIdiomaticSchema, TObject, TResolve, TUnionContainer, UnionTResolve } from './types/typebox.schema.types';
|
|
12
11
|
/**
|
|
13
12
|
* Class representing a TypeBox schema definition.
|
|
14
13
|
* @implements {SchemaValidator}
|
|
15
14
|
*/
|
|
16
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>>;
|
|
17
19
|
string: import("@sinclair/typebox").TString;
|
|
18
20
|
number: import("@sinclair/typebox").TNumber;
|
|
19
21
|
bigint: import("@sinclair/typebox").TBigInt;
|
package/dist/typebox/index.js
CHANGED
|
@@ -14,6 +14,9 @@ const value_1 = require("@sinclair/typebox/value");
|
|
|
14
14
|
* @implements {SchemaValidator}
|
|
15
15
|
*/
|
|
16
16
|
class TypeboxSchemaValidator {
|
|
17
|
+
_Type;
|
|
18
|
+
_SchemaCatchall;
|
|
19
|
+
_ValidSchemaObject;
|
|
17
20
|
string = typebox_1.Type.String();
|
|
18
21
|
number = typebox_1.Type.Number();
|
|
19
22
|
bigint = typebox_1.Type.BigInt();
|
|
@@ -30,7 +33,9 @@ class TypeboxSchemaValidator {
|
|
|
30
33
|
* @returns {TResolve<T>} The resolved schema.
|
|
31
34
|
*/
|
|
32
35
|
schemify(schema) {
|
|
33
|
-
if (typeof schema === 'string' ||
|
|
36
|
+
if (typeof schema === 'string' ||
|
|
37
|
+
typeof schema === 'number' ||
|
|
38
|
+
typeof schema === 'boolean') {
|
|
34
39
|
return typebox_1.Type.Literal(schema);
|
|
35
40
|
}
|
|
36
41
|
if (typebox_1.Kind in schema) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../typebox/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../typebox/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './schema.types';
|
|
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./schema.types"), exports);
|
|
18
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B"}
|
|
@@ -1,10 +1,134 @@
|
|
|
1
|
+
import { Prettify } from '@forklaunch/common';
|
|
2
|
+
import { SchemaObject } from 'openapi3-ts/oas31';
|
|
3
|
+
import { TResolve, TSchemaTranslate } from '../typebox/types/typebox.schema.types';
|
|
4
|
+
import { ZodResolve, ZodSchemaTranslate } from '../zod/types/zod.schema.types';
|
|
5
|
+
/**
|
|
6
|
+
* Interface representing a schema validator.
|
|
7
|
+
*
|
|
8
|
+
* @template UnionContainer - The type for union schemas.
|
|
9
|
+
* @template IdiomaticSchema<unknown> - The type for idiomatic schemas.
|
|
10
|
+
* @template Catchall - The catch-all type for all schemas.
|
|
11
|
+
*/
|
|
12
|
+
export interface SchemaValidator<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, OpenAPIFunction = <T>(schema: T) => SchemaObject> {
|
|
13
|
+
_Type: unknown;
|
|
14
|
+
_SchemaCatchall: unknown;
|
|
15
|
+
_ValidSchemaObject: unknown;
|
|
16
|
+
/**
|
|
17
|
+
* Validator for string type.
|
|
18
|
+
*/
|
|
19
|
+
string: unknown;
|
|
20
|
+
/**
|
|
21
|
+
* Validator for number type.
|
|
22
|
+
*/
|
|
23
|
+
number: unknown;
|
|
24
|
+
/**
|
|
25
|
+
* Validator for bigint type.
|
|
26
|
+
*/
|
|
27
|
+
bigint: unknown;
|
|
28
|
+
/**
|
|
29
|
+
* Validator for boolean type.
|
|
30
|
+
*/
|
|
31
|
+
boolean: unknown;
|
|
32
|
+
/**
|
|
33
|
+
* Validator for date type.
|
|
34
|
+
*/
|
|
35
|
+
date: unknown;
|
|
36
|
+
/**
|
|
37
|
+
* Validator for symbol type.
|
|
38
|
+
*/
|
|
39
|
+
symbol: unknown;
|
|
40
|
+
/**
|
|
41
|
+
* Validator for empty type.
|
|
42
|
+
*/
|
|
43
|
+
empty: unknown;
|
|
44
|
+
/**
|
|
45
|
+
* Validator for any type.
|
|
46
|
+
*/
|
|
47
|
+
any: unknown;
|
|
48
|
+
/**
|
|
49
|
+
* Validator for unknown type.
|
|
50
|
+
*/
|
|
51
|
+
unknown: unknown;
|
|
52
|
+
/**
|
|
53
|
+
* Validator for never type.
|
|
54
|
+
*/
|
|
55
|
+
never: unknown;
|
|
56
|
+
/**
|
|
57
|
+
* Converts a valid schema input into a schemified form.
|
|
58
|
+
*
|
|
59
|
+
* @template T - The type of the idiomatic schema.
|
|
60
|
+
* @param {T} schema - The schema to schemify.
|
|
61
|
+
* @returns {unknown} - The schemified form of the schema.
|
|
62
|
+
*/
|
|
63
|
+
schemify: SchematicFunction;
|
|
64
|
+
/**
|
|
65
|
+
* Converts a schema into an optional schema.
|
|
66
|
+
*
|
|
67
|
+
* @template T - The type of the idiomatic schema.
|
|
68
|
+
* @param {T} schema - The schema to make optional.
|
|
69
|
+
* @returns {unknown} - The optional form of the schema.
|
|
70
|
+
*/
|
|
71
|
+
optional: OptionalFunction;
|
|
72
|
+
/**
|
|
73
|
+
* Converts a schema into an array schema.
|
|
74
|
+
*
|
|
75
|
+
* @template T - The type of the idiomatic schema.
|
|
76
|
+
* @param {T} schema - The schema to convert into an array.
|
|
77
|
+
* @returns {unknown} - The array form of the schema.
|
|
78
|
+
*/
|
|
79
|
+
array: ArrayFunction;
|
|
80
|
+
/**
|
|
81
|
+
* Converts multiple schemas into a union schema.
|
|
82
|
+
*
|
|
83
|
+
* @template T - The type of the union container.
|
|
84
|
+
* @param {T} schemas - The schemas to unionize.
|
|
85
|
+
* @returns {unknown} - The union form of the schemas.
|
|
86
|
+
*/
|
|
87
|
+
union: UnionFunction;
|
|
88
|
+
/**
|
|
89
|
+
* Creates a literal schema from a value.
|
|
90
|
+
*
|
|
91
|
+
* @template T - The type of the literal value.
|
|
92
|
+
* @param {T} value - The literal value.
|
|
93
|
+
* @returns {unknown} - The literal schema.
|
|
94
|
+
*/
|
|
95
|
+
literal: LiteralFunction;
|
|
96
|
+
/**
|
|
97
|
+
* Validates a value against a schema.
|
|
98
|
+
*
|
|
99
|
+
* @template T - The type of the catch-all schema.
|
|
100
|
+
* @param {T} schema - The schema to validate against.
|
|
101
|
+
* @param {unknown} value - The value to validate.
|
|
102
|
+
* @returns {boolean} - Whether the value is valid according to the schema.
|
|
103
|
+
*/
|
|
104
|
+
validate: ValidationFunction;
|
|
105
|
+
/**
|
|
106
|
+
* Converts a schema into an OpenAPI schema object.
|
|
107
|
+
*
|
|
108
|
+
* @template T - The type of the idiomatic schema.
|
|
109
|
+
* @param {T} schema - The schema to convert.
|
|
110
|
+
* @returns {SchemaObject} - The OpenAPI schema object.
|
|
111
|
+
*/
|
|
112
|
+
openapi: OpenAPIFunction;
|
|
113
|
+
}
|
|
114
|
+
export type AnySchemaValidator = SchemaValidator<unknown, unknown, unknown, unknown, unknown, unknown, unknown>;
|
|
115
|
+
interface SchemaResolve<T> {
|
|
116
|
+
Zod: ZodResolve<T>;
|
|
117
|
+
TypeBox: TResolve<T>;
|
|
118
|
+
}
|
|
119
|
+
interface SchemaTranslate<T> {
|
|
120
|
+
Zod: ZodSchemaTranslate<T>;
|
|
121
|
+
TypeBox: TSchemaTranslate<T>;
|
|
122
|
+
}
|
|
123
|
+
type SchemaPrettify<T, SV extends AnySchemaValidator> = SV['_Type'] extends keyof SchemaTranslate<T> ? Prettify<SchemaTranslate<T>[SV['_Type']]> : never;
|
|
124
|
+
export type Schema<T extends SV['_ValidSchemaObject'] | IdiomaticSchema<SV>, SV extends AnySchemaValidator> = SV['_Type'] extends keyof SchemaResolve<T> ? SchemaPrettify<SchemaResolve<T>[SV['_Type']], SV> : never;
|
|
1
125
|
/**
|
|
2
126
|
* Represents a schema for an unboxed object where each key can have an idiomatic schema.
|
|
3
127
|
*
|
|
4
128
|
* @template Catchall - The type to use for catch-all cases in the schema.
|
|
5
129
|
*/
|
|
6
|
-
export type UnboxedObjectSchema<
|
|
7
|
-
[key: KeyTypes]: IdiomaticSchema<
|
|
130
|
+
export type UnboxedObjectSchema<SV extends AnySchemaValidator> = {
|
|
131
|
+
[key: KeyTypes]: IdiomaticSchema<SV>;
|
|
8
132
|
};
|
|
9
133
|
/**
|
|
10
134
|
* Represents a schema that can be a literal value.
|
|
@@ -15,7 +139,7 @@ export type LiteralSchema = string | number | boolean;
|
|
|
15
139
|
*
|
|
16
140
|
* @template Catchall - The type to use for catch-all cases in the schema.
|
|
17
141
|
*/
|
|
18
|
-
export type IdiomaticSchema<
|
|
142
|
+
export type IdiomaticSchema<SV extends AnySchemaValidator> = UnboxedObjectSchema<SV> | LiteralSchema | SV['_SchemaCatchall'];
|
|
19
143
|
/**
|
|
20
144
|
* Increments a number type by one, with support up to 50.
|
|
21
145
|
*
|
|
@@ -26,3 +150,4 @@ export type Increment<T extends number> = T extends 0 ? 1 : T extends 1 ? 2 : T
|
|
|
26
150
|
* Represents key types that can be used in the schema.
|
|
27
151
|
*/
|
|
28
152
|
export type KeyTypes = string | number;
|
|
153
|
+
export {};
|
package/dist/zod/index.d.ts
CHANGED
|
@@ -5,15 +5,17 @@
|
|
|
5
5
|
* @module ZodSchemaValidator
|
|
6
6
|
*/
|
|
7
7
|
import { SchemaObject } from 'openapi3-ts/oas31';
|
|
8
|
-
import { ZodArray, ZodLiteral, ZodOptional, ZodUnion, z } from
|
|
9
|
-
import { SchemaValidator } from
|
|
10
|
-
import {
|
|
11
|
-
import { UnionZodResolve, ZodCatchall, ZodIdiomaticSchema, ZodResolve, ZodUnionContainer } from "./types/zod.schema.types";
|
|
8
|
+
import { ZodArray, ZodLiteral, ZodObject, ZodOptional, ZodRawShape, ZodType, ZodUnion, z } from 'zod';
|
|
9
|
+
import { LiteralSchema, SchemaValidator } from '../types/schema.types';
|
|
10
|
+
import { UnionZodResolve, ZodCatchall, ZodIdiomaticSchema, ZodResolve, ZodUnionContainer } from './types/zod.schema.types';
|
|
12
11
|
/**
|
|
13
12
|
* Class representing a Zod schema definition.
|
|
14
13
|
* @implements {SchemaValidator}
|
|
15
14
|
*/
|
|
16
15
|
export declare class ZodSchemaValidator implements SchemaValidator<(<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 ZodIdiomaticSchema>(schema: T) => SchemaObject> {
|
|
16
|
+
_Type: 'Zod';
|
|
17
|
+
_SchemaCatchall: ZodType;
|
|
18
|
+
_ValidSchemaObject: ZodObject<ZodRawShape> | ZodArray<ZodObject<ZodRawShape>>;
|
|
17
19
|
string: z.ZodString;
|
|
18
20
|
number: z.ZodNumber;
|
|
19
21
|
bigint: z.ZodBigInt;
|
package/dist/zod/index.js
CHANGED
|
@@ -14,6 +14,9 @@ const zod_1 = require("zod");
|
|
|
14
14
|
* @implements {SchemaValidator}
|
|
15
15
|
*/
|
|
16
16
|
class ZodSchemaValidator {
|
|
17
|
+
_Type;
|
|
18
|
+
_SchemaCatchall;
|
|
19
|
+
_ValidSchemaObject;
|
|
17
20
|
string = zod_1.z.string();
|
|
18
21
|
number = zod_1.z.number();
|
|
19
22
|
bigint = zod_1.z.bigint();
|
|
@@ -30,7 +33,9 @@ class ZodSchemaValidator {
|
|
|
30
33
|
* @returns {ZodResolve<T>} The resolved schema.
|
|
31
34
|
*/
|
|
32
35
|
schemify(schema) {
|
|
33
|
-
if (typeof schema === 'string' ||
|
|
36
|
+
if (typeof schema === 'string' ||
|
|
37
|
+
typeof schema === 'number' ||
|
|
38
|
+
typeof schema === 'boolean') {
|
|
34
39
|
return zod_1.z.literal(schema);
|
|
35
40
|
}
|
|
36
41
|
if (schema instanceof zod_1.ZodType) {
|
package/dist/zod/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../zod/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,sDAAsD;AAEtD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../zod/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,sDAAsD;AAEtD,6BASa;AAUb;;;GAGG;AACH,MAAa,kBAAkB;IAY7B,KAAK,CAAS;IACd,eAAe,CAAW;IAC1B,kBAAkB,CAEmB;IAErC,MAAM,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC;IACpB,MAAM,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC;IACpB,MAAM,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC;IACpB,OAAO,GAAG,OAAC,CAAC,OAAO,EAAE,CAAC;IACtB,IAAI,GAAG,OAAC,CAAC,IAAI,EAAE,CAAC;IAChB,MAAM,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC;IACpB,KAAK,GAAG,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,IAAI,EAAE,EAAE,OAAC,CAAC,IAAI,EAAE,EAAE,OAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACrD,GAAG,GAAG,OAAC,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,GAAG,OAAC,CAAC,OAAO,EAAE,CAAC;IACtB,KAAK,GAAG,OAAC,CAAC,KAAK,EAAE,CAAC;IAElB;;;;OAIG;IACH,QAAQ,CAA+B,MAAS;QAC9C,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,OAAO,MAAM,KAAK,QAAQ;YAC1B,OAAO,MAAM,KAAK,SAAS,EAC3B,CAAC;YACD,OAAO,OAAC,CAAC,OAAO,CAAC,MAAM,CAAkB,CAAC;QAC5C,CAAC;QAED,IAAI,MAAM,YAAY,aAAO,EAAE,CAAC;YAC9B,OAAO,MAAuB,CAAC;QACjC,CAAC;QAED,MAAM,SAAS,GAAgB,EAAE,CAAC;QAClC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjD,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,aAAO,EAAE,CAAC;gBACnC,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAuB,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,OAAC,CAAC,MAAM,CAAC,SAAS,CAAkB,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,QAAQ,CACN,MAAS;QAET,IAAI,MAAM,YAAY,aAAO,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,QAAQ,EAAgC,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAgC,CAAC;IACxE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAA+B,MAAS;QAC3C,IAAI,MAAM,YAAY,aAAO,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,KAAK,EAA6B,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAA8B,OAAU;QAC3C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACxC,IAAI,MAAM,YAAY,aAAO,EAAE,CAAC;gBAC9B,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,OAAO,OAAC,CAAC,KAAK,CACZ,UAAyD,CAC1B,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,OAAO,CAA0B,KAAQ;QACvC,OAAO,OAAC,CAAC,OAAO,CAAC,KAAK,CAA8B,CAAC;IACvD,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAwB,MAAS,EAAE,KAAc;QACvD,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,OAAO,CAA+B,MAAS;QAC7C,OAAO,IAAA,4BAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;CACF;AAtID,gDAsIC;AAED;;;GAGG;AACI,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,kBAAkB,EAAE,CAAC;AAA3C,QAAA,SAAS,aAAkC;AAExD,MAAM,eAAe,GAAG,IAAA,iBAAS,GAAE,CAAC;AAEpC;;GAEG;AACU,QAAA,MAAM,GAAkC,eAAe,CAAC,MAAM,CAAC;AAE5E;;GAEG;AACU,QAAA,MAAM,GAAkC,eAAe,CAAC,MAAM,CAAC;AAE5E;;GAEG;AACU,QAAA,MAAM,GAAkC,eAAe,CAAC,MAAM,CAAC;AAE5E;;GAEG;AACU,QAAA,OAAO,GAAmC,eAAe,CAAC,OAAO,CAAC;AAE/E;;GAEG;AACU,QAAA,IAAI,GAAgC,eAAe,CAAC,IAAI,CAAC;AAEtE;;GAEG;AACU,QAAA,MAAM,GAAkC,eAAe,CAAC,MAAM,CAAC;AAE5E;;GAEG;AACU,QAAA,KAAK,GAAiC,eAAe,CAAC,KAAK,CAAC;AAEzE;;GAEG;AACU,QAAA,GAAG,GAA+B,eAAe,CAAC,GAAG,CAAC;AAEnE;;GAEG;AACU,QAAA,OAAO,GAAmC,eAAe,CAAC,OAAO,CAAC;AAE/E;;GAEG;AACU,QAAA,KAAK,GAAiC,eAAe,CAAC,KAAK,CAAC;AAEzE;;GAEG;AACU,QAAA,QAAQ,GACnB,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAEjD;;GAEG;AACU,QAAA,QAAQ,GACnB,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAEjD;;GAEG;AACU,QAAA,KAAK,GAChB,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAE9C;;GAEG;AACU,QAAA,KAAK,GAChB,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAE9C;;GAEG;AACU,QAAA,OAAO,GAClB,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAEhD;;GAEG;AACU,QAAA,QAAQ,GACnB,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAEjD;;GAEG;AACU,QAAA,OAAO,GAClB,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ZodObject as OriginalZodObject, ZodArray, ZodLiteral, ZodNever, ZodRawShape, ZodType, ZodTypeAny, ZodUnknown, z } from
|
|
2
|
-
import {
|
|
1
|
+
import { ZodObject as OriginalZodObject, ZodArray, ZodLiteral, ZodNever, ZodRawShape, ZodType, ZodTypeAny, ZodUnknown, z } from 'zod';
|
|
2
|
+
import { ZodSchemaValidator } from '..';
|
|
3
|
+
import { IdiomaticSchema, Increment, LiteralSchema, UnboxedObjectSchema } from '../../types/schema.types';
|
|
3
4
|
/**
|
|
4
5
|
* Represents a catch-all Zod schema type.
|
|
5
6
|
*/
|
|
@@ -29,15 +30,19 @@ export type ZodSchemaTranslate<T> = T extends ZodCatchall ? z.infer<T> : ZodNeve
|
|
|
29
30
|
/**
|
|
30
31
|
* Represents an unboxed Zod object schema where each key can have an idiomatic schema.
|
|
31
32
|
*/
|
|
32
|
-
export type ZodObjectSchema = UnboxedObjectSchema<
|
|
33
|
+
export type ZodObjectSchema = UnboxedObjectSchema<ZodSchemaValidator>;
|
|
33
34
|
/**
|
|
34
35
|
* Represents an idiomatic schema for Zod which can be an unboxed object schema or a literal schema.
|
|
35
36
|
*/
|
|
36
|
-
export type ZodIdiomaticSchema = IdiomaticSchema<
|
|
37
|
+
export type ZodIdiomaticSchema = IdiomaticSchema<ZodSchemaValidator>;
|
|
37
38
|
/**
|
|
38
39
|
* Represents a container for a union of Zod idiomatic schemas.
|
|
39
40
|
*/
|
|
40
|
-
export type ZodUnionContainer = readonly [
|
|
41
|
+
export type ZodUnionContainer = readonly [
|
|
42
|
+
ZodIdiomaticSchema,
|
|
43
|
+
ZodIdiomaticSchema,
|
|
44
|
+
...ZodIdiomaticSchema[]
|
|
45
|
+
];
|
|
41
46
|
/**
|
|
42
47
|
* Resolves a union container to a tuple of resolved Zod idiomatic schemas.
|
|
43
48
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forklaunch/validator",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "Schema validator for ForkLaunch components.",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
"test": "jest",
|
|
14
14
|
"build": "tsc",
|
|
15
15
|
"lint": "eslint . -c eslint.config.mjs",
|
|
16
|
-
"lint:fix": "eslint . -c eslint.config.mjs --fix"
|
|
16
|
+
"lint:fix": "eslint . -c eslint.config.mjs --fix",
|
|
17
|
+
"format": "prettier --ignore-path=.prettierignore --config .prettierrc '**/*.ts' --write"
|
|
17
18
|
},
|
|
18
19
|
"repository": {
|
|
19
20
|
"type": "git",
|
|
@@ -34,6 +35,8 @@
|
|
|
34
35
|
"devDependencies": {
|
|
35
36
|
"@eslint/js": "^9.6.0",
|
|
36
37
|
"@types/jest": "^29.5.12",
|
|
38
|
+
"eslint-config-prettier": "^9.1.0",
|
|
39
|
+
"eslint-plugin-prettier": "^5.1.3",
|
|
37
40
|
"globals": "^15.7.0",
|
|
38
41
|
"openapi3-ts": "^4.3.3",
|
|
39
42
|
"ts-jest": "^29.1.5",
|
|
@@ -74,4 +77,4 @@
|
|
|
74
77
|
"default": "./dist/tests/mockSchemaValidator.js"
|
|
75
78
|
}
|
|
76
79
|
}
|
|
77
|
-
}
|
|
80
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './schemaValidator.interfaces';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C"}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { SchemaObject } from "openapi3-ts/oas31";
|
|
2
|
-
import { LiteralSchema } from "../types/schema.types";
|
|
3
|
-
/**
|
|
4
|
-
* Interface representing a schema validator.
|
|
5
|
-
*
|
|
6
|
-
* @template UnionContainer - The type for union schemas.
|
|
7
|
-
* @template IdiomaticSchema<unknown> - The type for idiomatic schemas.
|
|
8
|
-
* @template Catchall - The catch-all type for all schemas.
|
|
9
|
-
*/
|
|
10
|
-
export interface SchemaValidator<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) => unknown, OpenAPIFunction = <T>(schema: T) => SchemaObject> {
|
|
11
|
-
/**
|
|
12
|
-
* Validator for string type.
|
|
13
|
-
*/
|
|
14
|
-
string: unknown;
|
|
15
|
-
/**
|
|
16
|
-
* Validator for number type.
|
|
17
|
-
*/
|
|
18
|
-
number: unknown;
|
|
19
|
-
/**
|
|
20
|
-
* Validator for bigint type.
|
|
21
|
-
*/
|
|
22
|
-
bigint: unknown;
|
|
23
|
-
/**
|
|
24
|
-
* Validator for boolean type.
|
|
25
|
-
*/
|
|
26
|
-
boolean: unknown;
|
|
27
|
-
/**
|
|
28
|
-
* Validator for date type.
|
|
29
|
-
*/
|
|
30
|
-
date: unknown;
|
|
31
|
-
/**
|
|
32
|
-
* Validator for symbol type.
|
|
33
|
-
*/
|
|
34
|
-
symbol: unknown;
|
|
35
|
-
/**
|
|
36
|
-
* Validator for empty type.
|
|
37
|
-
*/
|
|
38
|
-
empty: unknown;
|
|
39
|
-
/**
|
|
40
|
-
* Validator for any type.
|
|
41
|
-
*/
|
|
42
|
-
any: unknown;
|
|
43
|
-
/**
|
|
44
|
-
* Validator for unknown type.
|
|
45
|
-
*/
|
|
46
|
-
unknown: unknown;
|
|
47
|
-
/**
|
|
48
|
-
* Validator for never type.
|
|
49
|
-
*/
|
|
50
|
-
never: unknown;
|
|
51
|
-
/**
|
|
52
|
-
* Converts a valid schema input into a schemified form.
|
|
53
|
-
*
|
|
54
|
-
* @template T - The type of the idiomatic schema.
|
|
55
|
-
* @param {T} schema - The schema to schemify.
|
|
56
|
-
* @returns {unknown} - The schemified form of the schema.
|
|
57
|
-
*/
|
|
58
|
-
schemify: SchematicFunction;
|
|
59
|
-
/**
|
|
60
|
-
* Converts a schema into an optional schema.
|
|
61
|
-
*
|
|
62
|
-
* @template T - The type of the idiomatic schema.
|
|
63
|
-
* @param {T} schema - The schema to make optional.
|
|
64
|
-
* @returns {unknown} - The optional form of the schema.
|
|
65
|
-
*/
|
|
66
|
-
optional: OptionalFunction;
|
|
67
|
-
/**
|
|
68
|
-
* Converts a schema into an array schema.
|
|
69
|
-
*
|
|
70
|
-
* @template T - The type of the idiomatic schema.
|
|
71
|
-
* @param {T} schema - The schema to convert into an array.
|
|
72
|
-
* @returns {unknown} - The array form of the schema.
|
|
73
|
-
*/
|
|
74
|
-
array: ArrayFunction;
|
|
75
|
-
/**
|
|
76
|
-
* Converts multiple schemas into a union schema.
|
|
77
|
-
*
|
|
78
|
-
* @template T - The type of the union container.
|
|
79
|
-
* @param {T} schemas - The schemas to unionize.
|
|
80
|
-
* @returns {unknown} - The union form of the schemas.
|
|
81
|
-
*/
|
|
82
|
-
union: UnionFunction;
|
|
83
|
-
/**
|
|
84
|
-
* Creates a literal schema from a value.
|
|
85
|
-
*
|
|
86
|
-
* @template T - The type of the literal value.
|
|
87
|
-
* @param {T} value - The literal value.
|
|
88
|
-
* @returns {unknown} - The literal schema.
|
|
89
|
-
*/
|
|
90
|
-
literal: LiteralFunction;
|
|
91
|
-
/**
|
|
92
|
-
* Validates a value against a schema.
|
|
93
|
-
*
|
|
94
|
-
* @template T - The type of the catch-all schema.
|
|
95
|
-
* @param {T} schema - The schema to validate against.
|
|
96
|
-
* @param {unknown} value - The value to validate.
|
|
97
|
-
* @returns {boolean} - Whether the value is valid according to the schema.
|
|
98
|
-
*/
|
|
99
|
-
validate: ValidationFunction;
|
|
100
|
-
/**
|
|
101
|
-
* Converts a schema into an OpenAPI schema object.
|
|
102
|
-
*
|
|
103
|
-
* @template T - The type of the idiomatic schema.
|
|
104
|
-
* @param {T} schema - The schema to convert.
|
|
105
|
-
* @returns {SchemaObject} - The OpenAPI schema object.
|
|
106
|
-
*/
|
|
107
|
-
openapi: OpenAPIFunction;
|
|
108
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schemaValidator.interfaces.js","sourceRoot":"","sources":["../../interfaces/schemaValidator.interfaces.ts"],"names":[],"mappings":""}
|