@forklaunch/validator 0.3.0 → 0.3.2

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 +21 -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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 forklaunch
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,3 @@
1
+ declare const _default: any[];
2
+ export default _default;
3
+ //# sourceMappingURL=eslint.config.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint.config.d.mts","sourceRoot":"","sources":["../eslint.config.mjs"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import pluginJs from '@eslint/js';
2
+ import globals from 'globals';
3
+ import tseslint from 'typescript-eslint';
4
+ export default [
5
+ { files: ['**/*.{ts}'] },
6
+ { ignores: ['tests/**/*', 'dist/**/*', 'node_modules/**/*'] },
7
+ { languageOptions: { globals: globals.browser } },
8
+ pluginJs.configs.recommended,
9
+ ...tseslint.configs.recommended
10
+ ];
package/lib/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './src/shared/types/schema.types';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1 @@
1
+ export * from './src/shared/types/schema.types';
@@ -0,0 +1,4 @@
1
+ import type { JestConfigWithTsJest } from 'ts-jest';
2
+ declare const jestConfig: JestConfigWithTsJest;
3
+ export default jestConfig;
4
+ //# sourceMappingURL=jest.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.config.d.ts","sourceRoot":"","sources":["../jest.config.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,QAAA,MAAM,UAAU,EAAE,oBAkBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,21 @@
1
+ // import type { Config } from 'jest';
2
+ const jestConfig = {
3
+ // [...]
4
+ preset: 'ts-jest/presets/default-esm', // or other ESM presets
5
+ moduleNameMapper: {
6
+ '^(\\.{1,2}/.*)\\.js$': '$1'
7
+ },
8
+ transform: {
9
+ // '^.+\\.[tj]sx?$' to process ts,js,tsx,jsx with `ts-jest`
10
+ // '^.+\\.m?[tj]sx?$' to process ts,js,tsx,jsx,mts,mjs,mtsx,mjsx with `ts-jest`
11
+ '^.+\\.[tj]sx?$': [
12
+ 'ts-jest',
13
+ {
14
+ useESM: true
15
+ }
16
+ ],
17
+ '^.+\\.js$': 'babel-jest'
18
+ },
19
+ testPathIgnorePatterns: ['.*dist/', '.*node_modules/']
20
+ };
21
+ export default jestConfig;
@@ -1,7 +1,18 @@
1
1
  import { Prettify } from '@forklaunch/common';
2
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';
3
+ import { TResolve, TSchemaTranslate } from '../../typebox/types/schema.types';
4
+ import { ZodResolve, ZodSchemaTranslate } from '../../zod/types/schema.types';
5
+ /**
6
+ * The result associated with an attempted parsing.
7
+ *
8
+ */
9
+ export type ParseResult<T> = {
10
+ ok: true;
11
+ value: T;
12
+ } | {
13
+ ok: false;
14
+ error?: string;
15
+ };
5
16
  /**
6
17
  * Interface representing a schema validator.
7
18
  *
@@ -11,9 +22,10 @@ import { ZodResolve, ZodSchemaTranslate } from '../zod/types/zod.schema.types';
11
22
  * @template UnionFunction - The function type for unionizing multiple schemas.
12
23
  * @template LiteralFunction - The function type for creating a literal schema.
13
24
  * @template ValidationFunction - The function type for validating a value against a schema.
25
+ * @template ParseFunction - The function type for parsing a value against a schema.
14
26
  * @template OpenAPIFunction - The function type for converting a schema into an OpenAPI schema object.
15
27
  */
16
- 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> {
28
+ export interface SchemaValidator<CompilationFunction = <T>(schema: T) => unknown, 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, ParseFunction = <T>(schema: T, value: unknown) => ParseResult<SchemaResolve<T>>, OpenAPIFunction = <T>(schema: T) => SchemaObject> {
17
29
  /**
18
30
  * The type of the schema validator. Meant to be used with non-null assertions.
19
31
  */
@@ -30,6 +42,18 @@ export interface SchemaValidator<SchematicFunction = <T>(schema: T) => unknown,
30
42
  * Validator for string type.
31
43
  */
32
44
  string: unknown;
45
+ /**
46
+ * Validator for uuid type.
47
+ */
48
+ uuid: unknown;
49
+ /**
50
+ * Validator for uri type.
51
+ */
52
+ uri: unknown;
53
+ /**
54
+ * Validator for email type.
55
+ */
56
+ email: unknown;
33
57
  /**
34
58
  * Validator for number type.
35
59
  */
@@ -51,9 +75,9 @@ export interface SchemaValidator<SchematicFunction = <T>(schema: T) => unknown,
51
75
  */
52
76
  symbol: unknown;
53
77
  /**
54
- * Validator for empty type.
78
+ * Validator for nullish type.
55
79
  */
56
- empty: unknown;
80
+ nullish: unknown;
57
81
  /**
58
82
  * Validator for any type.
59
83
  */
@@ -66,6 +90,13 @@ export interface SchemaValidator<SchematicFunction = <T>(schema: T) => unknown,
66
90
  * Validator for never type.
67
91
  */
68
92
  never: unknown;
93
+ /**
94
+ * Compiles schema if this exists, for optimal performance.
95
+ *
96
+ * @param {T} schema - The schema to compile.
97
+ * @returns {unknown} - The compiled schema.
98
+ */
99
+ compile: CompilationFunction;
69
100
  /**
70
101
  * Converts a valid schema input into a schemified form.
71
102
  *
@@ -109,6 +140,14 @@ export interface SchemaValidator<SchematicFunction = <T>(schema: T) => unknown,
109
140
  * @returns {boolean} - Whether the value is valid according to the schema.
110
141
  */
111
142
  validate: ValidationFunction;
143
+ /**
144
+ * Parses a value to a schema validation.
145
+ *
146
+ * @param {T} schema - The schema to validate against.
147
+ * @param {unknown} value - The value to validate.
148
+ * @returns {ParseResult} - The discrimintated parsed value if successful, the error if unsuccessful.
149
+ */
150
+ parse: ParseFunction;
112
151
  /**
113
152
  * Converts a schema into an OpenAPI schema object.
114
153
  *
@@ -120,7 +159,7 @@ export interface SchemaValidator<SchematicFunction = <T>(schema: T) => unknown,
120
159
  /**
121
160
  * Type representing any schema validator.
122
161
  */
123
- export type AnySchemaValidator = SchemaValidator<unknown, unknown, unknown, unknown, unknown, unknown, unknown> & {
162
+ export type AnySchemaValidator = SchemaValidator<unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown> & {
124
163
  /**
125
164
  * The type of the schema resolver.
126
165
  */
@@ -187,7 +226,7 @@ export type LiteralSchema = string | number | boolean;
187
226
  *
188
227
  * @template SV - The type of the schema validator.
189
228
  */
190
- export type IdiomaticSchema<SV extends AnySchemaValidator> = UnboxedObjectSchema<SV> | LiteralSchema | SV['_SchemaCatchall'];
229
+ export type IdiomaticSchema<SV extends AnySchemaValidator> = LiteralSchema | SV['_SchemaCatchall'] | UnboxedObjectSchema<SV>;
191
230
  /**
192
231
  * Increments a number type by one, with support up to 50.
193
232
  *
@@ -199,3 +238,4 @@ export type Increment<T extends number> = T extends 0 ? 1 : T extends 1 ? 2 : T
199
238
  */
200
239
  export type KeyTypes = string | number;
201
240
  export {};
241
+ //# sourceMappingURL=schema.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.types.d.ts","sourceRoot":"","sources":["../../../../src/shared/types/schema.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './staticSchemaValidator';
2
+ export type { TypeboxSchemaValidator } from './typeboxSchemaValidator';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/typebox/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './staticSchemaValidator';
@@ -0,0 +1,93 @@
1
+ import { TypeboxSchemaValidator } from './typeboxSchemaValidator';
2
+ /**
3
+ * Factory function for creating a TypeboxSchemaValidator instance.
4
+ * @returns {TypeboxSchemaValidator} The TypeboxSchemaValidator instance.
5
+ */
6
+ export declare const SchemaValidator: () => TypeboxSchemaValidator;
7
+ declare const StaticSchemaValidator: TypeboxSchemaValidator;
8
+ /**
9
+ * TypeBox schema definition for string type.
10
+ */
11
+ export declare const string: typeof StaticSchemaValidator.string;
12
+ /**
13
+ * TypeBox schema definition for UUID type.
14
+ */
15
+ export declare const uuid: typeof StaticSchemaValidator.uuid;
16
+ /**
17
+ * TypeBox schema definition for URI type.
18
+ */
19
+ export declare const uri: typeof StaticSchemaValidator.uri;
20
+ /**
21
+ * TypeBox schema definition for email type.
22
+ */
23
+ export declare const email: typeof StaticSchemaValidator.email;
24
+ /**
25
+ * TypeBox schema definition for number type.
26
+ */
27
+ export declare const number: typeof StaticSchemaValidator.number;
28
+ /**
29
+ * TypeBox schema definition for bigint type.
30
+ */
31
+ export declare const bigint: typeof StaticSchemaValidator.bigint;
32
+ /**
33
+ * TypeBox schema definition for boolean type.
34
+ */
35
+ export declare const boolean: typeof StaticSchemaValidator.boolean;
36
+ /**
37
+ * TypeBox schema definition for date type.
38
+ */
39
+ export declare const date: typeof StaticSchemaValidator.date;
40
+ /**
41
+ * TypeBox schema definition for symbol type.
42
+ */
43
+ export declare const symbol: typeof StaticSchemaValidator.symbol;
44
+ /**
45
+ * TypeBox schema definition for undefined, null, void types.
46
+ */
47
+ export declare const nullish: typeof StaticSchemaValidator.nullish;
48
+ /**
49
+ * TypeBox schema definition for any type.
50
+ */
51
+ export declare const any: typeof StaticSchemaValidator.any;
52
+ /**
53
+ * TypeBox schema definition for unknown type.
54
+ */
55
+ export declare const unknown: typeof StaticSchemaValidator.unknown;
56
+ /**
57
+ * TypeBox schema definition for never type.
58
+ */
59
+ export declare const never: typeof StaticSchemaValidator.never;
60
+ /**
61
+ * Transforms valid schema into TypeBox schema.
62
+ */
63
+ export declare const schemify: typeof StaticSchemaValidator.schemify;
64
+ /**
65
+ * Makes a valid schema optional.
66
+ */
67
+ export declare const optional: typeof StaticSchemaValidator.optional;
68
+ /**
69
+ * Defines an array for a valid schema.
70
+ */
71
+ export declare const array: typeof StaticSchemaValidator.array;
72
+ /**
73
+ * Defines a union for a valid schema.
74
+ */
75
+ export declare const union: typeof StaticSchemaValidator.union;
76
+ /**
77
+ * Defines a literal for a valid schema.
78
+ */
79
+ export declare const literal: typeof StaticSchemaValidator.literal;
80
+ /**
81
+ * Validates a value against a valid schema.
82
+ */
83
+ export declare const validate: typeof StaticSchemaValidator.validate;
84
+ /**
85
+ * Parses a value against a valid schema.
86
+ */
87
+ export declare const parse: typeof StaticSchemaValidator.parse;
88
+ /**
89
+ * Generates an OpenAPI schema object from a valid schema.
90
+ */
91
+ export declare const openapi: typeof StaticSchemaValidator.openapi;
92
+ export {};
93
+ //# sourceMappingURL=staticSchemaValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staticSchemaValidator.d.ts","sourceRoot":"","sources":["../../../src/typebox/staticSchemaValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,eAAe,8BAAqC,CAAC;AAElE,QAAA,MAAM,qBAAqB,wBAAoB,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,qBAAqB,CAAC,MACpB,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,OAAO,qBAAqB,CAAC,IACpB,CAAC;AAE7B;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE,OAAO,qBAAqB,CAAC,GAA+B,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAAO,qBAAqB,CAAC,KACpB,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,qBAAqB,CAAC,MACpB,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,qBAAqB,CAAC,MACpB,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAO,qBAAqB,CAAC,OACpB,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,OAAO,qBAAqB,CAAC,IACpB,CAAC;AAE7B;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,qBAAqB,CAAC,MACpB,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAO,qBAAqB,CAAC,OACpB,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE,OAAO,qBAAqB,CAAC,GAA+B,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAO,qBAAqB,CAAC,OACpB,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAAO,qBAAqB,CAAC,KACpB,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,qBAAqB,CAAC,QACQ,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,qBAAqB,CAAC,QACQ,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAAO,qBAAqB,CAAC,KACQ,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAAO,qBAAqB,CAAC,KACQ,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAO,qBAAqB,CAAC,OACQ,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,qBAAqB,CAAC,QACQ,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAAO,qBAAqB,CAAC,KACQ,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAO,qBAAqB,CAAC,OACQ,CAAC"}
@@ -0,0 +1,91 @@
1
+ import { TypeboxSchemaValidator } from './typeboxSchemaValidator';
2
+ /**
3
+ * Factory function for creating a TypeboxSchemaValidator instance.
4
+ * @returns {TypeboxSchemaValidator} The TypeboxSchemaValidator instance.
5
+ */
6
+ export const SchemaValidator = () => new TypeboxSchemaValidator();
7
+ const StaticSchemaValidator = SchemaValidator();
8
+ /**
9
+ * TypeBox schema definition for string type.
10
+ */
11
+ export const string = StaticSchemaValidator.string;
12
+ /**
13
+ * TypeBox schema definition for UUID type.
14
+ */
15
+ export const uuid = StaticSchemaValidator.uuid;
16
+ /**
17
+ * TypeBox schema definition for URI type.
18
+ */
19
+ export const uri = StaticSchemaValidator.uri;
20
+ /**
21
+ * TypeBox schema definition for email type.
22
+ */
23
+ export const email = StaticSchemaValidator.email;
24
+ /**
25
+ * TypeBox schema definition for number type.
26
+ */
27
+ export const number = StaticSchemaValidator.number;
28
+ /**
29
+ * TypeBox schema definition for bigint type.
30
+ */
31
+ export const bigint = StaticSchemaValidator.bigint;
32
+ /**
33
+ * TypeBox schema definition for boolean type.
34
+ */
35
+ export const boolean = StaticSchemaValidator.boolean;
36
+ /**
37
+ * TypeBox schema definition for date type.
38
+ */
39
+ export const date = StaticSchemaValidator.date;
40
+ /**
41
+ * TypeBox schema definition for symbol type.
42
+ */
43
+ export const symbol = StaticSchemaValidator.symbol;
44
+ /**
45
+ * TypeBox schema definition for undefined, null, void types.
46
+ */
47
+ export const nullish = StaticSchemaValidator.nullish;
48
+ /**
49
+ * TypeBox schema definition for any type.
50
+ */
51
+ export const any = StaticSchemaValidator.any;
52
+ /**
53
+ * TypeBox schema definition for unknown type.
54
+ */
55
+ export const unknown = StaticSchemaValidator.unknown;
56
+ /**
57
+ * TypeBox schema definition for never type.
58
+ */
59
+ export const never = StaticSchemaValidator.never;
60
+ /**
61
+ * Transforms valid schema into TypeBox schema.
62
+ */
63
+ export const schemify = StaticSchemaValidator.schemify.bind(StaticSchemaValidator);
64
+ /**
65
+ * Makes a valid schema optional.
66
+ */
67
+ export const optional = StaticSchemaValidator.optional.bind(StaticSchemaValidator);
68
+ /**
69
+ * Defines an array for a valid schema.
70
+ */
71
+ export const array = StaticSchemaValidator.array.bind(StaticSchemaValidator);
72
+ /**
73
+ * Defines a union for a valid schema.
74
+ */
75
+ export const union = StaticSchemaValidator.union.bind(StaticSchemaValidator);
76
+ /**
77
+ * Defines a literal for a valid schema.
78
+ */
79
+ export const literal = StaticSchemaValidator.literal.bind(StaticSchemaValidator);
80
+ /**
81
+ * Validates a value against a valid schema.
82
+ */
83
+ export const validate = StaticSchemaValidator.validate.bind(StaticSchemaValidator);
84
+ /**
85
+ * Parses a value against a valid schema.
86
+ */
87
+ export const parse = StaticSchemaValidator.parse.bind(StaticSchemaValidator);
88
+ /**
89
+ * Generates an OpenAPI schema object from a valid schema.
90
+ */
91
+ export const openapi = StaticSchemaValidator.openapi.bind(StaticSchemaValidator);
@@ -0,0 +1,110 @@
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, TKind, TLiteral, TOptional, TProperties, TSchema, TUnion } from '@sinclair/typebox';
8
+ import { TypeCheck } from '@sinclair/typebox/compiler';
9
+ import { SchemaObject } from 'openapi3-ts/oas31';
10
+ import { LiteralSchema, ParseResult, SchemaValidator as SV } from '../shared/types/schema.types';
11
+ import { TIdiomaticSchema, TObject, TResolve, TUnionContainer, UnionTResolve } from './types/schema.types';
12
+ /**
13
+ * Class representing a TypeBox schema definition.
14
+ * @implements {SchemaValidator}
15
+ */
16
+ export declare class TypeboxSchemaValidator implements SV<(<T extends TObject<TProperties>>(schema: T) => TypeCheck<T>), <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, value: unknown) => ParseResult<TResolve<T>>, <T extends TIdiomaticSchema>(schema: T) => SchemaObject> {
17
+ _Type: 'TypeBox';
18
+ _SchemaCatchall: TKind;
19
+ _ValidSchemaObject: TObject<TProperties> | TArray<TObject<TProperties>>;
20
+ string: import("@sinclair/typebox").TString;
21
+ uuid: import("@sinclair/typebox").TString;
22
+ uri: import("@sinclair/typebox").TString;
23
+ email: import("@sinclair/typebox").TString;
24
+ number: import("@sinclair/typebox").TTransform<TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TString, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TNull, import("@sinclair/typebox").TDate, import("@sinclair/typebox").TBigInt]>, number>;
25
+ bigint: import("@sinclair/typebox").TTransform<TUnion<[import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TString, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TDate]>, bigint>;
26
+ boolean: import("@sinclair/typebox").TTransform<TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TString]>, boolean | undefined>;
27
+ date: import("@sinclair/typebox").TTransform<TUnion<[import("@sinclair/typebox").TDate, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TString, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TNull]>, Date>;
28
+ symbol: import("@sinclair/typebox").TSymbol;
29
+ nullish: TUnion<[import("@sinclair/typebox").TVoid, import("@sinclair/typebox").TNull, import("@sinclair/typebox").TUndefined]>;
30
+ any: import("@sinclair/typebox").TAny;
31
+ unknown: import("@sinclair/typebox").TUnknown;
32
+ never: import("@sinclair/typebox").TNever;
33
+ /**
34
+ * Extracts the error type of a schema for error messages.
35
+ *
36
+ * @param {TCatchall} schema - A schema that contains some type information.
37
+ * @returns The type of the schema for error messages.
38
+ */
39
+ private errorType;
40
+ /**
41
+ * Pretty print TypeBox errors.
42
+ *
43
+ * @param {ValueError[]} errors
44
+ * @returns
45
+ */
46
+ private prettyPrintTypeBoxErrors;
47
+ /**
48
+ * Compiles schema if this exists, for optimal performance.
49
+ *
50
+ * @param {TObject<TProperties>} schema - The schema to compile.
51
+ * @returns {TypeCheck<T>} - The compiled schema.
52
+ */
53
+ compile<T extends TObject<TProperties>>(schema: T): TypeCheck<T>;
54
+ /**
55
+ * Convert a schema to a TypeBox schema.
56
+ * @param {TIdiomaticSchema} schema - The schema to convert.
57
+ * @returns {TResolve<T>} The resolved schema.
58
+ */
59
+ schemify<T extends TIdiomaticSchema>(schema: T): TResolve<T>;
60
+ /**
61
+ * Make a schema optional.
62
+ * @param {TIdiomaticSchema} schema - The schema to make optional.
63
+ * @returns {TOptional<TResolve<T>>} The optional schema.
64
+ */
65
+ optional<T extends TIdiomaticSchema>(schema: T): TOptional<TResolve<T>>;
66
+ /**
67
+ * Create an array schema.
68
+ * @param {TIdiomaticSchema} schema - The schema to use for array items.
69
+ * @returns {TArray<TResolve<T>>} The array schema.
70
+ */
71
+ array<T extends TIdiomaticSchema>(schema: T): TArray<TResolve<T>>;
72
+ /**
73
+ * Create a union schema.
74
+ * @param {TUnionContainer} schemas - The schemas to union.
75
+ * @returns {TUnion<UnionTResolve<T>>} The union schema.
76
+ *
77
+ * WARNING: If "nullish" or TUndefined is included in the union, the key will still be expected.
78
+ * This is a limitation of TypeBox. Consider using "optional" instead.
79
+ */
80
+ union<T extends TUnionContainer>(schemas: [...T]): TUnion<UnionTResolve<T>>;
81
+ /**
82
+ * Create a literal schema.
83
+ * @param {LiteralSchema} value - The literal value.
84
+ * @returns {TLiteral<T>} The literal schema.
85
+ */
86
+ literal<T extends LiteralSchema>(value: T): TLiteral<T>;
87
+ /**
88
+ * Validate a value against a schema.
89
+ *
90
+ * @param {TSchema} schema - The schema to validate against.
91
+ * @param {unknown} value - The value to validate.
92
+ * @returns {boolean} True if valid, otherwise false.
93
+ */
94
+ validate<T extends TIdiomaticSchema | TSchema>(schema: T | TypeCheck<TResolve<T>>, value: unknown): boolean;
95
+ /**
96
+ * Parse a value against a schema.
97
+ *
98
+ * @param {TSchema} schema - The schema to validate against.
99
+ * @param {unknown} value - The value to validate.
100
+ * @returns {ParseResult<TResolve<T>>} The parsing result.
101
+ */
102
+ parse<T extends TIdiomaticSchema | TSchema>(schema: T | TypeCheck<TResolve<T>>, value: unknown): ParseResult<TResolve<T>>;
103
+ /**
104
+ * Convert a schema to an OpenAPI schema object.
105
+ * @param {TIdiomaticSchema | TSchema} schema - The schema to convert.
106
+ * @returns {SchemaObject} The OpenAPI schema object.
107
+ */
108
+ openapi<T extends TIdiomaticSchema | TSchema>(schema: T): SchemaObject;
109
+ }
110
+ //# sourceMappingURL=typeboxSchemaValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeboxSchemaValidator.d.ts","sourceRoot":"","sources":["../../../src/typebox/typeboxSchemaValidator.ts"],"names":[],"mappings":"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"}