@forklaunch/validator 0.3.1 → 0.3.3

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 (107) hide show
  1. package/LICENSE +21 -0
  2. package/lib/eslint.config.d.mts +3 -0
  3. package/lib/eslint.config.d.mts.map +1 -0
  4. package/lib/eslint.config.mjs +10 -0
  5. package/lib/index.d.ts +2 -0
  6. package/lib/index.d.ts.map +1 -0
  7. package/lib/index.js +1 -0
  8. package/lib/jest.config.d.ts +4 -0
  9. package/lib/jest.config.d.ts.map +1 -0
  10. package/lib/jest.config.js +19 -0
  11. package/{dist → lib/src/shared}/types/schema.types.d.ts +47 -7
  12. package/lib/src/shared/types/schema.types.d.ts.map +1 -0
  13. package/lib/src/typebox/index.d.ts +3 -0
  14. package/lib/src/typebox/index.d.ts.map +1 -0
  15. package/lib/src/typebox/index.js +1 -0
  16. package/lib/src/typebox/staticSchemaValidator.d.ts +93 -0
  17. package/lib/src/typebox/staticSchemaValidator.d.ts.map +1 -0
  18. package/lib/src/typebox/staticSchemaValidator.js +91 -0
  19. package/lib/src/typebox/typeboxSchemaValidator.d.ts +110 -0
  20. package/lib/src/typebox/typeboxSchemaValidator.d.ts.map +1 -0
  21. package/lib/src/typebox/typeboxSchemaValidator.js +343 -0
  22. package/{dist/typebox/types/typebox.schema.types.d.ts → lib/src/typebox/types/schema.types.d.ts} +9 -13
  23. package/lib/src/typebox/types/schema.types.d.ts.map +1 -0
  24. package/lib/src/zod/index.d.ts +3 -0
  25. package/lib/src/zod/index.d.ts.map +1 -0
  26. package/lib/src/zod/index.js +1 -0
  27. package/lib/src/zod/staticSchemaValidator.d.ts +93 -0
  28. package/lib/src/zod/staticSchemaValidator.d.ts.map +1 -0
  29. package/lib/src/zod/staticSchemaValidator.js +91 -0
  30. package/{dist/zod/types/zod.schema.types.d.ts → lib/src/zod/types/schema.types.d.ts} +3 -2
  31. package/lib/src/zod/types/schema.types.d.ts.map +1 -0
  32. package/lib/src/zod/types/schema.types.js +1 -0
  33. package/lib/src/zod/zodSchemaValidator.d.ts +98 -0
  34. package/lib/src/zod/zodSchemaValidator.d.ts.map +1 -0
  35. package/lib/src/zod/zodSchemaValidator.js +179 -0
  36. package/lib/tests/typebox/advancedParse.test.d.ts +2 -0
  37. package/lib/tests/typebox/advancedParse.test.d.ts.map +1 -0
  38. package/lib/tests/typebox/advancedParse.test.js +514 -0
  39. package/lib/tests/typebox/largeSchema.test.d.ts +2 -0
  40. package/lib/tests/typebox/largeSchema.test.d.ts.map +1 -0
  41. package/{dist → lib}/tests/typebox/largeSchema.test.js +46 -49
  42. package/lib/tests/typebox/schemaValidator.test.d.ts +2 -0
  43. package/lib/tests/typebox/schemaValidator.test.d.ts.map +1 -0
  44. package/lib/tests/typebox/schemaValidator.test.js +219 -0
  45. package/{dist/tests/typebox/equality.test.d.ts → lib/tests/typebox/typeEquality.test.d.ts} +1 -0
  46. package/lib/tests/typebox/typeEquality.test.d.ts.map +1 -0
  47. package/lib/tests/typebox/typeEquality.test.js +100 -0
  48. package/lib/tests/utils/compare.d.ts +2 -0
  49. package/lib/tests/utils/compare.d.ts.map +1 -0
  50. package/lib/tests/utils/compare.js +8 -0
  51. package/{dist/tests → lib/tests/utils}/mockSchemaValidator.d.ts +14 -8
  52. package/lib/tests/utils/mockSchemaValidator.d.ts.map +1 -0
  53. package/lib/tests/utils/mockSchemaValidator.js +72 -0
  54. package/lib/tests/zod/advancedParse.test.d.ts +2 -0
  55. package/lib/tests/zod/advancedParse.test.d.ts.map +1 -0
  56. package/lib/tests/zod/advancedParse.test.js +514 -0
  57. package/lib/tests/zod/largeSchema.test.d.ts +2 -0
  58. package/lib/tests/zod/largeSchema.test.d.ts.map +1 -0
  59. package/{dist → lib}/tests/zod/largeSchema.test.js +43 -46
  60. package/lib/tests/zod/schemaValidator.test.d.ts +2 -0
  61. package/lib/tests/zod/schemaValidator.test.d.ts.map +1 -0
  62. package/lib/tests/zod/schemaValidator.test.js +179 -0
  63. package/{dist/tests/zod/equality.test.d.ts → lib/tests/zod/typeEquality.test.d.ts} +1 -0
  64. package/lib/tests/zod/typeEquality.test.d.ts.map +1 -0
  65. package/lib/tests/zod/typeEquality.test.js +100 -0
  66. package/lib/tsconfig.tsbuildinfo +1 -0
  67. package/lib/vitest.config.d.ts +3 -0
  68. package/lib/vitest.config.d.ts.map +1 -0
  69. package/lib/vitest.config.js +7 -0
  70. package/package.json +35 -39
  71. package/dist/index.d.ts +0 -1
  72. package/dist/index.js +0 -18
  73. package/dist/index.js.map +0 -1
  74. package/dist/jest.config.d.ts +0 -3
  75. package/dist/jest.config.js +0 -10
  76. package/dist/jest.config.js.map +0 -1
  77. package/dist/tests/mockSchemaValidator.js +0 -60
  78. package/dist/tests/mockSchemaValidator.js.map +0 -1
  79. package/dist/tests/typebox/equality.test.js +0 -234
  80. package/dist/tests/typebox/equality.test.js.map +0 -1
  81. package/dist/tests/typebox/largeSchema.test.js.map +0 -1
  82. package/dist/tests/zod/equality.test.js +0 -238
  83. package/dist/tests/zod/equality.test.js.map +0 -1
  84. package/dist/tests/zod/largeSchema.test.js.map +0 -1
  85. package/dist/typebox/index.d.ts +0 -1
  86. package/dist/typebox/index.js +0 -18
  87. package/dist/typebox/index.js.map +0 -1
  88. package/dist/typebox/typebox.schemaValidator.d.ts +0 -150
  89. package/dist/typebox/typebox.schemaValidator.js +0 -203
  90. package/dist/typebox/typebox.schemaValidator.js.map +0 -1
  91. package/dist/typebox/types/typebox.schema.types.js +0 -3
  92. package/dist/typebox/types/typebox.schema.types.js.map +0 -1
  93. package/dist/types/index.d.ts +0 -1
  94. package/dist/types/index.js +0 -18
  95. package/dist/types/index.js.map +0 -1
  96. package/dist/types/schema.types.js +0 -3
  97. package/dist/types/schema.types.js.map +0 -1
  98. package/dist/zod/index.d.ts +0 -1
  99. package/dist/zod/index.js +0 -18
  100. package/dist/zod/index.js.map +0 -1
  101. package/dist/zod/types/zod.schema.types.js +0 -3
  102. package/dist/zod/types/zod.schema.types.js.map +0 -1
  103. package/dist/zod/zod.schemaValidator.d.ts +0 -147
  104. package/dist/zod/zod.schemaValidator.js +0 -196
  105. package/dist/zod/zod.schemaValidator.js.map +0 -1
  106. /package/{dist/tests/typebox/largeSchema.test.d.ts → lib/src/shared/types/schema.types.js} +0 -0
  107. /package/{dist/tests/zod/largeSchema.test.d.ts → lib/src/typebox/types/schema.types.js} +0 -0
@@ -0,0 +1,98 @@
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 { SchemaObject } from 'openapi3-ts/oas31';
8
+ import { ZodArray, ZodLiteral, ZodObject, ZodOptional, ZodRawShape, ZodType, ZodUnion, z } from 'zod';
9
+ import { LiteralSchema, ParseResult, SchemaValidator as SV } from '../shared/types/schema.types';
10
+ import { UnionZodResolve, ZodCatchall, ZodIdiomaticSchema, ZodResolve, ZodUnionContainer } from './types/schema.types';
11
+ /**
12
+ * Class representing a Zod schema definition.
13
+ * @implements {StaticSchemaValidator}
14
+ */
15
+ export declare class ZodSchemaValidator implements SV<(<T extends ZodObject<ZodRawShape>>(schema: T) => ZodResolve<T>), <T extends ZodIdiomaticSchema>(schema: T) => ZodResolve<T>, <T extends ZodIdiomaticSchema>(schema: T) => ZodOptional<ZodResolve<T>>, <T extends ZodIdiomaticSchema>(schema: T) => ZodArray<ZodResolve<T>>, <T extends ZodUnionContainer>(schemas: T) => ZodUnion<UnionZodResolve<T>>, <T extends LiteralSchema>(value: T) => ZodLiteral<ZodResolve<T>>, <T extends ZodCatchall>(schema: T, value: unknown) => boolean, <T extends ZodCatchall>(schema: T, value: unknown) => ParseResult<ZodResolve<T>>, <T extends ZodIdiomaticSchema>(schema: T) => SchemaObject> {
16
+ _Type: 'Zod';
17
+ _SchemaCatchall: ZodType;
18
+ _ValidSchemaObject: ZodObject<ZodRawShape> | ZodArray<ZodObject<ZodRawShape>>;
19
+ string: z.ZodString;
20
+ uuid: z.ZodString;
21
+ email: z.ZodString;
22
+ uri: z.ZodString;
23
+ number: z.ZodNumber;
24
+ bigint: z.ZodBigInt;
25
+ boolean: z.ZodEffects<z.ZodBoolean, boolean, unknown>;
26
+ date: z.ZodDate;
27
+ symbol: z.ZodSymbol;
28
+ nullish: ZodUnion<[z.ZodVoid, z.ZodNull, z.ZodUndefined]>;
29
+ any: z.ZodAny;
30
+ unknown: z.ZodUnknown;
31
+ never: z.ZodNever;
32
+ /**
33
+ * Pretty print Zod errors.
34
+ *
35
+ * @param {ZodError} error - The Zod error to pretty print.
36
+ * @returns
37
+ */
38
+ private prettyPrintZodErrors;
39
+ /**
40
+ * Compiles schema if this exists, for optimal performance.
41
+ *
42
+ * @param {ZodObject<ZodRawShape>} schema - The schema to compile.
43
+ * @returns {ZodResolve<T>} - The compiled schema.
44
+ */
45
+ compile<T extends ZodObject<ZodRawShape>>(schema: T): ZodResolve<T>;
46
+ /**
47
+ * Convert a schema to a Zod schema.
48
+ * @param {ZodIdiomaticSchema} schema - The schema to convert.
49
+ * @returns {ZodResolve<T>} The resolved schema.
50
+ */
51
+ schemify<T extends ZodIdiomaticSchema>(schema: T): ZodResolve<T>;
52
+ /**
53
+ * Make a schema optional.
54
+ * @param {ZodIdiomaticSchema} schema - The schema to make optional.
55
+ * @returns {ZodOptional<ZodResolve<T>>} The optional schema.
56
+ */
57
+ optional<T extends ZodIdiomaticSchema>(schema: T): ZodOptional<ZodResolve<T>>;
58
+ /**
59
+ * Create an array schema.
60
+ * @param {ZodIdiomaticSchema} schema - The schema to use for array items.
61
+ * @returns {ZodArray<ZodResolve<T>>} The array schema.
62
+ */
63
+ array<T extends ZodIdiomaticSchema>(schema: T): ZodArray<ZodResolve<T>>;
64
+ /**
65
+ * Create a union schema.
66
+ * @param {ZodUnionContainer} schemas - The schemas to union.
67
+ * @returns {ZodUnion<UnionZodResolve<T>>} The union schema.
68
+ */
69
+ union<T extends ZodUnionContainer>(schemas: T): ZodUnion<UnionZodResolve<T>>;
70
+ /**
71
+ * Create a literal schema.
72
+ * @param {LiteralSchema} value - The literal value.
73
+ * @returns {ZodLiteral<ZodResolve<T>>} The literal schema.
74
+ */
75
+ literal<T extends LiteralSchema>(value: T): ZodLiteral<ZodResolve<T>>;
76
+ /**
77
+ * Validate a value against a schema.
78
+ * @param {ZodCatchall} schema - The schema to validate against.
79
+ * @param {unknown} value - The value to validate.
80
+ * @returns {boolean} True if valid, otherwise false.
81
+ */
82
+ validate<T extends ZodCatchall>(schema: T, value: unknown): boolean;
83
+ /**
84
+ * Parses a value to a schema validation.
85
+ *
86
+ * @param {ZodCatchall} schema - The schema to validate against.
87
+ * @param {unknown} value - The value to validate.
88
+ * @returns {ParseResult} - The discrimintated parsed value if successful, the error if unsuccessful.
89
+ */
90
+ parse<T extends ZodCatchall>(schema: T, value: unknown): ParseResult<ZodResolve<T>>;
91
+ /**
92
+ * Convert a schema to an OpenAPI schema object.
93
+ * @param {ZodIdiomaticSchema} schema - The schema to convert.
94
+ * @returns {SchemaObject} The OpenAPI schema object.
95
+ */
96
+ openapi<T extends ZodIdiomaticSchema>(schema: T): SchemaObject;
97
+ }
98
+ //# sourceMappingURL=zodSchemaValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zodSchemaValidator.d.ts","sourceRoot":"","sources":["../../../src/zod/zodSchemaValidator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
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 { generateSchema } from '@anatine/zod-openapi';
8
+ import { ZodType, z } from 'zod';
9
+ /**
10
+ * Class representing a Zod schema definition.
11
+ * @implements {StaticSchemaValidator}
12
+ */
13
+ export class ZodSchemaValidator {
14
+ _Type;
15
+ _SchemaCatchall;
16
+ _ValidSchemaObject;
17
+ string = z.string();
18
+ uuid = z.coerce.string().uuid();
19
+ email = z.coerce.string().email();
20
+ uri = z.coerce.string().url();
21
+ number = z.coerce.number();
22
+ bigint = z.coerce.bigint();
23
+ boolean = z.preprocess((val) => {
24
+ if (typeof val === 'string') {
25
+ if (val.toLowerCase() === 'true')
26
+ return true;
27
+ if (val.toLowerCase() === 'false')
28
+ return false;
29
+ }
30
+ return val;
31
+ }, z.boolean());
32
+ date = z.coerce.date();
33
+ symbol = z.symbol();
34
+ nullish = z.union([z.void(), z.null(), z.undefined()]);
35
+ any = z.any();
36
+ unknown = z.unknown();
37
+ never = z.never();
38
+ /**
39
+ * Pretty print Zod errors.
40
+ *
41
+ * @param {ZodError} error - The Zod error to pretty print.
42
+ * @returns
43
+ */
44
+ prettyPrintZodErrors(error) {
45
+ if (!error)
46
+ return;
47
+ const errorMessages = error.errors.map((err, index) => {
48
+ const path = err.path.length > 0 ? err.path.join(' > ') : 'root';
49
+ return `${index + 1}. Path: ${path}\n Message: ${err.message}`;
50
+ });
51
+ return `Validation failed with the following errors:\n${errorMessages.join('\n\n')}`;
52
+ }
53
+ /**
54
+ * Compiles schema if this exists, for optimal performance.
55
+ *
56
+ * @param {ZodObject<ZodRawShape>} schema - The schema to compile.
57
+ * @returns {ZodResolve<T>} - The compiled schema.
58
+ */
59
+ compile(schema) {
60
+ return schema;
61
+ }
62
+ /**
63
+ * Convert a schema to a Zod schema.
64
+ * @param {ZodIdiomaticSchema} schema - The schema to convert.
65
+ * @returns {ZodResolve<T>} The resolved schema.
66
+ */
67
+ schemify(schema) {
68
+ if (typeof schema === 'string' ||
69
+ typeof schema === 'number' ||
70
+ typeof schema === 'boolean') {
71
+ return z.literal(schema);
72
+ }
73
+ if (schema instanceof ZodType) {
74
+ return schema;
75
+ }
76
+ const newSchema = {};
77
+ Object.getOwnPropertyNames(schema).forEach((key) => {
78
+ if (schema[key] instanceof ZodType) {
79
+ newSchema[key] = schema[key];
80
+ }
81
+ else {
82
+ newSchema[key] = this.schemify(schema[key]);
83
+ }
84
+ });
85
+ return z.object(newSchema);
86
+ }
87
+ /**
88
+ * Make a schema optional.
89
+ * @param {ZodIdiomaticSchema} schema - The schema to make optional.
90
+ * @returns {ZodOptional<ZodResolve<T>>} The optional schema.
91
+ */
92
+ optional(schema) {
93
+ if (schema instanceof ZodType) {
94
+ return schema.optional();
95
+ }
96
+ else {
97
+ return this.schemify(schema).optional();
98
+ }
99
+ }
100
+ /**
101
+ * Create an array schema.
102
+ * @param {ZodIdiomaticSchema} schema - The schema to use for array items.
103
+ * @returns {ZodArray<ZodResolve<T>>} The array schema.
104
+ */
105
+ array(schema) {
106
+ if (schema instanceof ZodType) {
107
+ return schema.array();
108
+ }
109
+ else {
110
+ return this.schemify(schema).array();
111
+ }
112
+ }
113
+ /**
114
+ * Create a union schema.
115
+ * @param {ZodUnionContainer} schemas - The schemas to union.
116
+ * @returns {ZodUnion<UnionZodResolve<T>>} The union schema.
117
+ */
118
+ union(schemas) {
119
+ if (schemas.length < 2) {
120
+ throw new Error('Union must have at least two schemas');
121
+ }
122
+ const unionTypes = schemas.map((schema) => {
123
+ if (schema instanceof ZodType) {
124
+ return schema;
125
+ }
126
+ return this.schemify(schema);
127
+ });
128
+ return z.union(unionTypes);
129
+ }
130
+ /**
131
+ * Create a literal schema.
132
+ * @param {LiteralSchema} value - The literal value.
133
+ * @returns {ZodLiteral<ZodResolve<T>>} The literal schema.
134
+ */
135
+ literal(value) {
136
+ return z.literal(value);
137
+ }
138
+ /**
139
+ * Validate a value against a schema.
140
+ * @param {ZodCatchall} schema - The schema to validate against.
141
+ * @param {unknown} value - The value to validate.
142
+ * @returns {boolean} True if valid, otherwise false.
143
+ */
144
+ validate(schema, value) {
145
+ return schema.safeParse(value).success;
146
+ }
147
+ /**
148
+ * Parses a value to a schema validation.
149
+ *
150
+ * @param {ZodCatchall} schema - The schema to validate against.
151
+ * @param {unknown} value - The value to validate.
152
+ * @returns {ParseResult} - The discrimintated parsed value if successful, the error if unsuccessful.
153
+ */
154
+ parse(schema, value) {
155
+ try {
156
+ const result = schema.safeParse(value);
157
+ return result.success
158
+ ? { ok: true, value: result.data }
159
+ : {
160
+ ok: false,
161
+ error: this.prettyPrintZodErrors(result.error)
162
+ };
163
+ }
164
+ catch (error) {
165
+ return {
166
+ ok: false,
167
+ error: `Unexpected zod safeParse error: ${error.message}`
168
+ };
169
+ }
170
+ }
171
+ /**
172
+ * Convert a schema to an OpenAPI schema object.
173
+ * @param {ZodIdiomaticSchema} schema - The schema to convert.
174
+ * @returns {SchemaObject} The OpenAPI schema object.
175
+ */
176
+ openapi(schema) {
177
+ return generateSchema(this.schemify(schema));
178
+ }
179
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=advancedParse.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advancedParse.test.d.ts","sourceRoot":"","sources":["../../../tests/typebox/advancedParse.test.ts"],"names":[],"mappings":""}