@palmares/schemas 0.0.1

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 (219) hide show
  1. package/.turbo/turbo-build$colon$watch.log +424 -0
  2. package/.turbo/turbo-build.log +13 -0
  3. package/.turbo/turbo-build:watch.log +26 -0
  4. package/CHANGELOG.md +11 -0
  5. package/LICENSE +21 -0
  6. package/dist/cjs/src/adapter/fields/array.js +157 -0
  7. package/dist/cjs/src/adapter/fields/boolean.js +167 -0
  8. package/dist/cjs/src/adapter/fields/datetime.js +167 -0
  9. package/dist/cjs/src/adapter/fields/index.js +311 -0
  10. package/dist/cjs/src/adapter/fields/number.js +167 -0
  11. package/dist/cjs/src/adapter/fields/object.js +167 -0
  12. package/dist/cjs/src/adapter/fields/string.js +167 -0
  13. package/dist/cjs/src/adapter/fields/union.js +167 -0
  14. package/dist/cjs/src/adapter/index.js +198 -0
  15. package/dist/cjs/src/adapter/types.js +4 -0
  16. package/dist/cjs/src/compile.js +262 -0
  17. package/dist/cjs/src/conf.js +27 -0
  18. package/dist/cjs/src/constants.js +42 -0
  19. package/dist/cjs/src/domain.js +12 -0
  20. package/dist/cjs/src/exceptions.js +168 -0
  21. package/dist/cjs/src/index.js +365 -0
  22. package/dist/cjs/src/model.js +628 -0
  23. package/dist/cjs/src/parsers/convert-from-number.js +20 -0
  24. package/dist/cjs/src/parsers/convert-from-string.js +24 -0
  25. package/dist/cjs/src/parsers/index.js +25 -0
  26. package/dist/cjs/src/schema/array.js +890 -0
  27. package/dist/cjs/src/schema/boolean.js +826 -0
  28. package/dist/cjs/src/schema/datetime.js +778 -0
  29. package/dist/cjs/src/schema/index.js +17 -0
  30. package/dist/cjs/src/schema/number.js +960 -0
  31. package/dist/cjs/src/schema/object.js +999 -0
  32. package/dist/cjs/src/schema/schema.js +1788 -0
  33. package/dist/cjs/src/schema/string.js +948 -0
  34. package/dist/cjs/src/schema/types.js +4 -0
  35. package/dist/cjs/src/schema/union.js +952 -0
  36. package/dist/cjs/src/types.js +4 -0
  37. package/dist/cjs/src/utils.js +627 -0
  38. package/dist/cjs/src/validators/array.js +457 -0
  39. package/dist/cjs/src/validators/boolean.js +199 -0
  40. package/dist/cjs/src/validators/datetime.js +287 -0
  41. package/dist/cjs/src/validators/number.js +403 -0
  42. package/dist/cjs/src/validators/object.js +290 -0
  43. package/dist/cjs/src/validators/schema.js +318 -0
  44. package/dist/cjs/src/validators/string.js +439 -0
  45. package/dist/cjs/src/validators/types.js +4 -0
  46. package/dist/cjs/src/validators/union.js +232 -0
  47. package/dist/cjs/src/validators/utils.js +426 -0
  48. package/dist/cjs/tsconfig.types.tsbuildinfo +1 -0
  49. package/dist/cjs/types/adapter/fields/array.d.ts +20 -0
  50. package/dist/cjs/types/adapter/fields/array.d.ts.map +1 -0
  51. package/dist/cjs/types/adapter/fields/boolean.d.ts +25 -0
  52. package/dist/cjs/types/adapter/fields/boolean.d.ts.map +1 -0
  53. package/dist/cjs/types/adapter/fields/datetime.d.ts +25 -0
  54. package/dist/cjs/types/adapter/fields/datetime.d.ts.map +1 -0
  55. package/dist/cjs/types/adapter/fields/index.d.ts +31 -0
  56. package/dist/cjs/types/adapter/fields/index.d.ts.map +1 -0
  57. package/dist/cjs/types/adapter/fields/number.d.ts +25 -0
  58. package/dist/cjs/types/adapter/fields/number.d.ts.map +1 -0
  59. package/dist/cjs/types/adapter/fields/object.d.ts +25 -0
  60. package/dist/cjs/types/adapter/fields/object.d.ts.map +1 -0
  61. package/dist/cjs/types/adapter/fields/string.d.ts +25 -0
  62. package/dist/cjs/types/adapter/fields/string.d.ts.map +1 -0
  63. package/dist/cjs/types/adapter/fields/union.d.ts +25 -0
  64. package/dist/cjs/types/adapter/fields/union.d.ts.map +1 -0
  65. package/dist/cjs/types/adapter/index.d.ts +25 -0
  66. package/dist/cjs/types/adapter/index.d.ts.map +1 -0
  67. package/dist/cjs/types/adapter/types.d.ts +144 -0
  68. package/dist/cjs/types/adapter/types.d.ts.map +1 -0
  69. package/dist/cjs/types/compile.d.ts +3 -0
  70. package/dist/cjs/types/compile.d.ts.map +1 -0
  71. package/dist/cjs/types/conf.d.ts +16 -0
  72. package/dist/cjs/types/conf.d.ts.map +1 -0
  73. package/dist/cjs/types/constants.d.ts +6 -0
  74. package/dist/cjs/types/constants.d.ts.map +1 -0
  75. package/dist/cjs/types/domain.d.ts +21 -0
  76. package/dist/cjs/types/domain.d.ts.map +1 -0
  77. package/dist/cjs/types/exceptions.d.ts +13 -0
  78. package/dist/cjs/types/exceptions.d.ts.map +1 -0
  79. package/dist/cjs/types/index.d.ts +240 -0
  80. package/dist/cjs/types/index.d.ts.map +1 -0
  81. package/dist/cjs/types/model.d.ts +136 -0
  82. package/dist/cjs/types/model.d.ts.map +1 -0
  83. package/dist/cjs/types/parsers/convert-from-number.d.ts +15 -0
  84. package/dist/cjs/types/parsers/convert-from-number.d.ts.map +1 -0
  85. package/dist/cjs/types/parsers/convert-from-string.d.ts +9 -0
  86. package/dist/cjs/types/parsers/convert-from-string.d.ts.map +1 -0
  87. package/dist/cjs/types/parsers/index.d.ts +3 -0
  88. package/dist/cjs/types/parsers/index.d.ts.map +1 -0
  89. package/dist/cjs/types/schema/array.d.ts +429 -0
  90. package/dist/cjs/types/schema/array.d.ts.map +1 -0
  91. package/dist/cjs/types/schema/boolean.d.ts +501 -0
  92. package/dist/cjs/types/schema/boolean.d.ts.map +1 -0
  93. package/dist/cjs/types/schema/datetime.d.ts +474 -0
  94. package/dist/cjs/types/schema/datetime.d.ts.map +1 -0
  95. package/dist/cjs/types/schema/index.d.ts +4 -0
  96. package/dist/cjs/types/schema/index.d.ts.map +1 -0
  97. package/dist/cjs/types/schema/number.d.ts +667 -0
  98. package/dist/cjs/types/schema/number.d.ts.map +1 -0
  99. package/dist/cjs/types/schema/object.d.ts +450 -0
  100. package/dist/cjs/types/schema/object.d.ts.map +1 -0
  101. package/dist/cjs/types/schema/schema.d.ts +646 -0
  102. package/dist/cjs/types/schema/schema.d.ts.map +1 -0
  103. package/dist/cjs/types/schema/string.d.ts +606 -0
  104. package/dist/cjs/types/schema/string.d.ts.map +1 -0
  105. package/dist/cjs/types/schema/types.d.ts +70 -0
  106. package/dist/cjs/types/schema/types.d.ts.map +1 -0
  107. package/dist/cjs/types/schema/union.d.ts +388 -0
  108. package/dist/cjs/types/schema/union.d.ts.map +1 -0
  109. package/dist/cjs/types/types.d.ts +11 -0
  110. package/dist/cjs/types/types.d.ts.map +1 -0
  111. package/dist/cjs/types/utils.d.ts +79 -0
  112. package/dist/cjs/types/utils.d.ts.map +1 -0
  113. package/dist/cjs/types/validators/array.d.ts +8 -0
  114. package/dist/cjs/types/validators/array.d.ts.map +1 -0
  115. package/dist/cjs/types/validators/boolean.d.ts +4 -0
  116. package/dist/cjs/types/validators/boolean.d.ts.map +1 -0
  117. package/dist/cjs/types/validators/datetime.d.ts +7 -0
  118. package/dist/cjs/types/validators/datetime.d.ts.map +1 -0
  119. package/dist/cjs/types/validators/number.d.ts +10 -0
  120. package/dist/cjs/types/validators/number.d.ts.map +1 -0
  121. package/dist/cjs/types/validators/object.d.ts +6 -0
  122. package/dist/cjs/types/validators/object.d.ts.map +1 -0
  123. package/dist/cjs/types/validators/schema.d.ts +10 -0
  124. package/dist/cjs/types/validators/schema.d.ts.map +1 -0
  125. package/dist/cjs/types/validators/string.d.ts +12 -0
  126. package/dist/cjs/types/validators/string.d.ts.map +1 -0
  127. package/dist/cjs/types/validators/types.d.ts +2 -0
  128. package/dist/cjs/types/validators/types.d.ts.map +1 -0
  129. package/dist/cjs/types/validators/union.d.ts +4 -0
  130. package/dist/cjs/types/validators/union.d.ts.map +1 -0
  131. package/dist/cjs/types/validators/utils.d.ts +83 -0
  132. package/dist/cjs/types/validators/utils.d.ts.map +1 -0
  133. package/dist/esm/src/adapter/fields/array.js +13 -0
  134. package/dist/esm/src/adapter/fields/boolean.js +20 -0
  135. package/dist/esm/src/adapter/fields/datetime.js +20 -0
  136. package/dist/esm/src/adapter/fields/index.js +37 -0
  137. package/dist/esm/src/adapter/fields/number.js +20 -0
  138. package/dist/esm/src/adapter/fields/object.js +20 -0
  139. package/dist/esm/src/adapter/fields/string.js +20 -0
  140. package/dist/esm/src/adapter/fields/union.js +20 -0
  141. package/dist/esm/src/adapter/index.js +18 -0
  142. package/dist/esm/src/adapter/types.js +1 -0
  143. package/dist/esm/src/compile.js +10 -0
  144. package/dist/esm/src/conf.js +19 -0
  145. package/dist/esm/src/constants.js +5 -0
  146. package/dist/esm/src/domain.js +2 -0
  147. package/dist/esm/src/exceptions.js +15 -0
  148. package/dist/esm/src/index.js +160 -0
  149. package/dist/esm/src/model.js +255 -0
  150. package/dist/esm/src/parsers/convert-from-number.js +8 -0
  151. package/dist/esm/src/parsers/convert-from-string.js +14 -0
  152. package/dist/esm/src/parsers/index.js +2 -0
  153. package/dist/esm/src/schema/array.js +403 -0
  154. package/dist/esm/src/schema/boolean.js +465 -0
  155. package/dist/esm/src/schema/datetime.js +423 -0
  156. package/dist/esm/src/schema/index.js +3 -0
  157. package/dist/esm/src/schema/number.js +592 -0
  158. package/dist/esm/src/schema/object.js +464 -0
  159. package/dist/esm/src/schema/schema.js +728 -0
  160. package/dist/esm/src/schema/string.js +579 -0
  161. package/dist/esm/src/schema/types.js +1 -0
  162. package/dist/esm/src/schema/union.js +388 -0
  163. package/dist/esm/src/types.js +1 -0
  164. package/dist/esm/src/utils.js +175 -0
  165. package/dist/esm/src/validators/array.js +135 -0
  166. package/dist/esm/src/validators/boolean.js +35 -0
  167. package/dist/esm/src/validators/datetime.js +85 -0
  168. package/dist/esm/src/validators/number.js +162 -0
  169. package/dist/esm/src/validators/object.js +38 -0
  170. package/dist/esm/src/validators/schema.js +114 -0
  171. package/dist/esm/src/validators/string.js +174 -0
  172. package/dist/esm/src/validators/types.js +1 -0
  173. package/dist/esm/src/validators/union.js +38 -0
  174. package/dist/esm/src/validators/utils.js +120 -0
  175. package/package.json +48 -0
  176. package/src/adapter/fields/array.ts +31 -0
  177. package/src/adapter/fields/boolean.ts +48 -0
  178. package/src/adapter/fields/datetime.ts +49 -0
  179. package/src/adapter/fields/index.ts +72 -0
  180. package/src/adapter/fields/number.ts +49 -0
  181. package/src/adapter/fields/object.ts +49 -0
  182. package/src/adapter/fields/string.ts +49 -0
  183. package/src/adapter/fields/union.ts +49 -0
  184. package/src/adapter/index.ts +34 -0
  185. package/src/adapter/types.ts +261 -0
  186. package/src/compile.ts +14 -0
  187. package/src/conf.ts +27 -0
  188. package/src/constants.ts +9 -0
  189. package/src/domain.ts +3 -0
  190. package/src/exceptions.ts +17 -0
  191. package/src/index.ts +338 -0
  192. package/src/model.ts +501 -0
  193. package/src/parsers/convert-from-number.ts +13 -0
  194. package/src/parsers/convert-from-string.ts +19 -0
  195. package/src/parsers/index.ts +2 -0
  196. package/src/schema/array.ts +633 -0
  197. package/src/schema/boolean.ts +700 -0
  198. package/src/schema/datetime.ts +613 -0
  199. package/src/schema/index.ts +5 -0
  200. package/src/schema/number.ts +885 -0
  201. package/src/schema/object.ts +699 -0
  202. package/src/schema/schema.ts +1093 -0
  203. package/src/schema/string.ts +807 -0
  204. package/src/schema/types.ts +126 -0
  205. package/src/schema/union.ts +596 -0
  206. package/src/types.ts +13 -0
  207. package/src/utils.ts +322 -0
  208. package/src/validators/array.ts +164 -0
  209. package/src/validators/boolean.ts +46 -0
  210. package/src/validators/datetime.ts +113 -0
  211. package/src/validators/number.ts +188 -0
  212. package/src/validators/object.ts +55 -0
  213. package/src/validators/schema.ts +134 -0
  214. package/src/validators/string.ts +215 -0
  215. package/src/validators/types.ts +1 -0
  216. package/src/validators/union.ts +52 -0
  217. package/src/validators/utils.ts +200 -0
  218. package/tsconfig.json +9 -0
  219. package/tsconfig.types.json +10 -0
@@ -0,0 +1,70 @@
1
+ import type BooleanSchema from './boolean';
2
+ import type ObjectSchema from './object';
3
+ import type Schema from './schema';
4
+ import type StringSchema from './string';
5
+ import type SchemaAdapter from '../adapter';
6
+ import type FieldAdapter from '../adapter/fields';
7
+ import type { ErrorCodes } from '../adapter/types';
8
+ import type { ValidatorTypes } from '../validators/types';
9
+ import type Validator from '../validators/utils';
10
+ export type OnlyFieldAdaptersFromSchemaAdapter = keyof {
11
+ [key in keyof SchemaAdapter as SchemaAdapter[key] extends FieldAdapter ? key : never]: SchemaAdapter[key];
12
+ };
13
+ export type DefinitionsOfSchemaType = {
14
+ schemaType: 'array' | 'object' | 'string' | 'number' | 'boolean' | 'union' | 'datetime' | 'field' | 'datetime';
15
+ schemaAdapter: SchemaAdapter;
16
+ hasSave?: boolean;
17
+ };
18
+ export type ValidationFallbackCallbackType = Validator['fallbacks'][number];
19
+ export type ValidationFallbackCallbackReturnType = {
20
+ parsed: any;
21
+ errors: {
22
+ isValid: boolean;
23
+ code: ErrorCodes;
24
+ message: string;
25
+ path: (string | number)[];
26
+ }[];
27
+ preventChildValidation?: boolean;
28
+ };
29
+ export type ValidationFallbackReturnType = {
30
+ type: ValidatorTypes;
31
+ callback: ValidationFallbackCallbackType;
32
+ };
33
+ type TypesOfSchema = Schema extends Schema<infer TType, any> ? TType : never;
34
+ type ExtractTypeFromSchemaByTypeOfSchema<TSchema extends Schema, TTypeToExtract extends keyof TypesOfSchema = 'input'> = TSchema extends Schema<{
35
+ input: infer TInputType;
36
+ validate: infer TValidateType;
37
+ internal: infer TInternalType;
38
+ output: infer TOutputType;
39
+ representation: infer TRepresentationType;
40
+ }, any> | StringSchema<{
41
+ input: infer TInputType;
42
+ validate: infer TValidateType;
43
+ internal: infer TInternalType;
44
+ output: infer TOutputType;
45
+ representation: infer TRepresentationType;
46
+ }, any> | ObjectSchema<{
47
+ input: infer TInputType;
48
+ validate: infer TValidateType;
49
+ internal: infer TInternalType;
50
+ output: infer TOutputType;
51
+ representation: infer TRepresentationType;
52
+ }, any, any> | BooleanSchema<{
53
+ input: infer TInputType;
54
+ validate: infer TValidateType;
55
+ internal: infer TInternalType;
56
+ output: infer TOutputType;
57
+ representation: infer TRepresentationType;
58
+ }, any> ? TTypeToExtract extends 'input' ? TInputType : TTypeToExtract extends 'validate' ? TValidateType : TTypeToExtract extends 'internal' ? TInternalType : TTypeToExtract extends 'output' ? TOutputType : TRepresentationType : never;
59
+ export type ExtractTypeFromObjectOfSchemas<TData extends Record<string, Schema>, TTypeToExtract extends keyof TypesOfSchema = 'input'> = {
60
+ [key in keyof TData as undefined extends ExtractTypeFromSchemaByTypeOfSchema<TData[key], TTypeToExtract> ? never : key]: ExtractTypeFromSchemaByTypeOfSchema<TData[key], TTypeToExtract>;
61
+ } & {
62
+ [key in keyof TData as undefined extends ExtractTypeFromSchemaByTypeOfSchema<TData[key], TTypeToExtract> ? key : never]?: ExtractTypeFromSchemaByTypeOfSchema<TData[key], TTypeToExtract>;
63
+ };
64
+ export type ExtractTypeFromArrayOfSchemas<TSchemas extends readonly [Schema, ...Schema[]] | [Schema[]], TTypeToExtract extends keyof TypesOfSchema = 'input', TResult extends any[] = []> = TSchemas extends readonly [infer TSchema, ...infer TRestSchemas] ? TSchema extends Schema ? TRestSchemas extends readonly [Schema, ...Schema[]] ? ExtractTypeFromArrayOfSchemas<TRestSchemas, TTypeToExtract, [
65
+ ...TResult,
66
+ ExtractTypeFromSchemaByTypeOfSchema<TSchema, TTypeToExtract>
67
+ ]> : [...TResult, ExtractTypeFromSchemaByTypeOfSchema<TSchema, TTypeToExtract>] : TSchemas extends [infer TArraySchema] ? TArraySchema extends Schema[] ? ExtractTypeFromSchemaByTypeOfSchema<TArraySchema[number], TTypeToExtract>[] : never : never : never;
68
+ export type ExtractUnionTypesFromSchemas<TSchemas extends readonly Schema<any, any>[]> = TSchemas[number] extends Schema<infer TType, any> ? TType : never;
69
+ export {};
70
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/schema/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,388 @@
1
+ import Schema from './schema';
2
+ import type { DefinitionsOfSchemaType } from './types';
3
+ import type FieldAdapter from '../adapter/fields';
4
+ import type { Narrow } from '@palmares/core';
5
+ export default class UnionSchema<TType extends {
6
+ input: any;
7
+ validate: any;
8
+ internal: any;
9
+ representation: any;
10
+ output: any;
11
+ } = {
12
+ input: Record<any, any>;
13
+ output: Record<any, any>;
14
+ validate: Record<any, any>;
15
+ internal: Record<any, any>;
16
+ representation: Record<any, any>;
17
+ }, TDefinitions extends DefinitionsOfSchemaType = DefinitionsOfSchemaType, TSchemas extends readonly [Schema<any, any>, Schema<any, any>, ...Schema<any, any>[]] = [
18
+ Schema<any, any>,
19
+ Schema<any, any>,
20
+ ...Schema<any, any>[]
21
+ ]> extends Schema<TType, TDefinitions> {
22
+ protected __schemas: Set<Schema<any, DefinitionsOfSchemaType>>;
23
+ constructor(schemas: TSchemas);
24
+ protected _transformToAdapter(options: Parameters<Schema['__transformToAdapter']>[0]): Promise<ReturnType<FieldAdapter['translate']>>;
25
+ /**
26
+ * This let's you refine the schema with custom validations. This is useful when you want to validate something that is not supported by default by the schema adapter.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * import * as p from '@palmares/schemas';
31
+ *
32
+ * const numberSchema = p.number().refine((value) => {
33
+ * if (value < 0) return { code: 'invalid_number', message: 'The number should be greater than 0' };
34
+ * });
35
+ *
36
+ * const { errors, parsed } = await numberSchema.parse(-1);
37
+ *
38
+ * console.log(errors); // [{ isValid: false, code: 'invalid_number', message: 'The number should be greater than 0', path: [] }]
39
+ * ```
40
+ *
41
+ * @param refinementCallback - The callback that will be called to validate the value.
42
+ * @param options - Options for the refinement.
43
+ * @param options.isAsync - Whether the callback is async or not. Defaults to true.
44
+ */
45
+ refine(refinementCallback: (value: TType['input']) => Promise<void | undefined | {
46
+ code: string;
47
+ message: string;
48
+ }> | void | undefined | {
49
+ code: string;
50
+ message: string;
51
+ }): UnionSchema<{
52
+ input: TType["input"];
53
+ validate: TType["validate"];
54
+ internal: TType["internal"];
55
+ output: TType["output"];
56
+ representation: TType["representation"];
57
+ }, TDefinitions, TSchemas>;
58
+ /**
59
+ * Allows the value to be either undefined or null.
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * import * as p from '@palmares/schemas';
64
+ *
65
+ * const numberSchema = p.number().optional();
66
+ *
67
+ * const { errors, parsed } = await numberSchema.parse(undefined);
68
+ *
69
+ * console.log(parsed); // undefined
70
+ *
71
+ * const { errors, parsed } = await numberSchema.parse(null);
72
+ *
73
+ * console.log(parsed); // null
74
+ *
75
+ * const { errors, parsed } = await numberSchema.parse(1);
76
+ *
77
+ * console.log(parsed); // 1
78
+ * ```
79
+ *
80
+ * @returns - The schema we are working with.
81
+ */
82
+ optional(options?: {
83
+ message: string;
84
+ allow: false;
85
+ }): UnionSchema<{
86
+ input: TType["input"] | undefined | null;
87
+ validate: TType["validate"] | undefined | null;
88
+ internal: TType["internal"] | undefined | null;
89
+ output: TType["output"] | undefined | null;
90
+ representation: TType["representation"] | undefined | null;
91
+ }, TDefinitions, TSchemas>;
92
+ /**
93
+ * Allows the value to be null and ONLY null. You can also use this function to set a custom message when the value is NULL by setting
94
+ * the { message: 'Your custom message', allow: false } on the options.
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * import * as p from '@palmares/schemas';
99
+ *
100
+ * const numberSchema = p.number().nullable();
101
+ *
102
+ * const { errors, parsed } = await numberSchema.parse(null);
103
+ *
104
+ * console.log(parsed); // null
105
+ *
106
+ * const { errors, parsed } = await numberSchema.parse(undefined);
107
+ *
108
+ * console.log(errors); // [{ isValid: false, code: 'invalid_type', message: 'Invalid type', path: [] }]
109
+ * ```
110
+ *
111
+ * @param options - The options for the nullable function.
112
+ * @param options.message - The message to be shown when the value is not null. Defaults to 'Cannot be null'.
113
+ * @param options.allow - Whether the value can be null or not. Defaults to true.
114
+ *
115
+ * @returns The schema.
116
+ */
117
+ nullable(options?: {
118
+ message: string;
119
+ allow: false;
120
+ }): UnionSchema<{
121
+ input: TType["input"] | null;
122
+ validate: TType["validate"] | null;
123
+ internal: TType["internal"] | null;
124
+ output: TType["output"] | null;
125
+ representation: TType["representation"] | null;
126
+ }, TDefinitions, TSchemas>;
127
+ /**
128
+ * This method will remove the value from the representation of the schema. If the value is undefined it will keep that way
129
+ * otherwise it will set the value to undefined after it's validated.
130
+ * This is used in conjunction with the {@link data} function, the {@link parse} function or {@link validate}
131
+ * function. This will remove the value from the representation of the schema.
132
+ *
133
+ * By default, the value will be removed just from the representation, in other words, when you call the {@link data} function.
134
+ * But if you want to remove the value from the internal representation, you can pass the argument `toInternal` as true.
135
+ * Then if you still want to remove the value from the representation, you will need to pass the argument `toRepresentation` as true as well.
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * import * as p from '@palmares/schemas';
140
+ *
141
+ * const userSchema = p.object({
142
+ * id: p.number().optional(),
143
+ * name: p.string(),
144
+ * password: p.string().omit()
145
+ * });
146
+ *
147
+ * const user = await userSchema.data({
148
+ * id: 1,
149
+ * name: 'John Doe',
150
+ * password: '123456'
151
+ * });
152
+ *
153
+ * console.log(user); // { id: 1, name: 'John Doe' }
154
+ * ```
155
+ *
156
+ *
157
+ * @param args - By default, the value will be removed just from the representation, in other words, when you call the {@link data} function.
158
+ * But if you want to remove the value from the internal representation, you can pass the argument `toInternal` as true.
159
+ * Then if you still want to remove the value from the representation, you will need to pass the argument `toRepresentation` as true as well.
160
+ *
161
+ * @returns The schema.
162
+ */
163
+ omit<TToInternal extends boolean, TToRepresentation extends boolean = boolean extends TToInternal ? true : false>(args?: {
164
+ toInternal?: TToInternal;
165
+ toRepresentation?: TToRepresentation;
166
+ }): UnionSchema<{
167
+ input: TToInternal extends true ? TType["input"] | undefined : TType["input"];
168
+ validate: TToInternal extends true ? TType["validate"] | undefined : TType["validate"];
169
+ internal: TToInternal extends true ? undefined : TType["internal"];
170
+ output: TToRepresentation extends true ? TType["output"] | undefined : TType["output"];
171
+ representation: TToRepresentation extends true ? undefined : TType["representation"];
172
+ }, TDefinitions, TSchemas>;
173
+ /**
174
+ * This function is used in conjunction with the {@link validate} function. It's used to save a value to an external source
175
+ * like a database. You should always return the schema after you save the value, that way we will always have the correct type
176
+ * of the schema after the save operation.
177
+ *
178
+ * You can use the {@link toRepresentation} function to transform and clean the value it returns after the save.
179
+ *
180
+ * @example
181
+ * ```typescript
182
+ * import * as p from '@palmares/schemas';
183
+ *
184
+ * import { User } from './models';
185
+ *
186
+ * const userSchema = p.object({
187
+ * id: p.number().optional(),
188
+ * name: p.string(),
189
+ * email: p.string().email(),
190
+ * }).onSave(async (value) => {
191
+ * // Create or update the user on the database using palmares models or any other library of your choice.
192
+ * if (value.id)
193
+ * await User.default.set(value, { search: { id: value.id } });
194
+ * else
195
+ * await User.default.set(value);
196
+ *
197
+ * return value;
198
+ * });
199
+ *
200
+ *
201
+ * // Then, on your controller, do something like this:
202
+ * const { isValid, save, errors } = await userSchema.validate(req.body);
203
+ * if (isValid) {
204
+ * const savedValue = await save();
205
+ * return Response.json(savedValue, { status: 201 });
206
+ * }
207
+ *
208
+ * return Response.json({ errors }, { status: 400 });
209
+ * ```
210
+ *
211
+ * @param callback - The callback that will be called to save the value on an external source.
212
+ *
213
+ * @returns The schema.
214
+ */
215
+ onSave(callback: (value: TType['internal']) => Promise<TType['output']> | TType['output']): UnionSchema<{
216
+ input: TType["input"];
217
+ validate: TType["validate"];
218
+ internal: TType["internal"];
219
+ output: TType["output"];
220
+ representation: TType["representation"];
221
+ }, TDefinitions & {
222
+ hasSave: true;
223
+ }, TSchemas>;
224
+ /**
225
+ * This function is used to add a default value to the schema. If the value is either undefined or null, the default value will be used.
226
+ *
227
+ * @example
228
+ * ```typescript
229
+ * import * as p from '@palmares/schemas';
230
+ *
231
+ * const numberSchema = p.number().default(0);
232
+ *
233
+ * const { errors, parsed } = await numberSchema.parse(undefined);
234
+ *
235
+ * console.log(parsed); // 0
236
+ * ```
237
+ */
238
+ default<TDefaultValue extends TType['input'] | (() => Promise<TType['input']>)>(defaultValueOrFunction: TDefaultValue): UnionSchema<{
239
+ input: TType["input"] | undefined | null;
240
+ validate: TType["validate"];
241
+ internal: TType["internal"];
242
+ output: TType["output"] | undefined | null;
243
+ representation: TType["representation"];
244
+ }, TDefinitions, TSchemas>;
245
+ /**
246
+ * This function let's you customize the schema your own way. After we translate the schema on the adapter we call this function to let you customize
247
+ * the custom schema your own way. Our API does not support passthrough? No problem, you can use this function to customize the zod schema.
248
+ *
249
+ * @example
250
+ * ```typescript
251
+ * import * as p from '@palmares/schemas';
252
+ *
253
+ * const numberSchema = p.number().extends((schema) => {
254
+ * return schema.nonnegative();
255
+ * });
256
+ *
257
+ * const { errors, parsed } = await numberSchema.parse(-1);
258
+ *
259
+ * console.log(errors); // [{ isValid: false, code: 'nonnegative', message: 'The number should be nonnegative', path: [] }]
260
+ * ```
261
+ *
262
+ * @param callback - The callback that will be called to customize the schema.
263
+ * @param toStringCallback - The callback that will be called to transform the schema to a string when you want to compile the underlying schema
264
+ * to a string so you can save it for future runs.
265
+ *
266
+ * @returns The schema.
267
+ */
268
+ extends(callback: (schema: Awaited<ReturnType<NonNullable<TDefinitions['schemaAdapter']['union']>['translate']>>) => Awaited<ReturnType<NonNullable<TDefinitions['schemaAdapter']['field']>['translate']>> | any, toStringCallback?: (schemaAsString: string) => string): this;
269
+ /**
270
+ * This function is used to transform the value to the representation of the schema. When using the {@link data} function. With this function you have full
271
+ * control to add data cleaning for example, transforming the data and whatever. Another use case is when you want to return deeply nested recursive data.
272
+ * The schema maps to itself.
273
+ *
274
+ * @example
275
+ * ```typescript
276
+ * import * as p from '@palmares/schemas';
277
+ *
278
+ * const recursiveSchema = p.object({
279
+ * id: p.number().optional(),
280
+ * name: p.string(),
281
+ * }).toRepresentation(async (value) => {
282
+ * return {
283
+ * id: value.id,
284
+ * name: value.name,
285
+ * children: await Promise.all(value.children.map(async (child) => await recursiveSchema.data(child)))
286
+ * }
287
+ * });
288
+ *
289
+ * const data = await recursiveSchema.data({
290
+ * id: 1,
291
+ * name: 'John Doe',
292
+ * });
293
+ * ```
294
+ *
295
+ * @example
296
+ * ```
297
+ * import * as p from '@palmares/schemas';
298
+ *
299
+ * const colorToRGBSchema = p.string().toRepresentation(async (value) => {
300
+ * switch (value) {
301
+ * case 'red': return { r: 255, g: 0, b: 0 };
302
+ * case 'green': return { r: 0, g: 255, b: 0 };
303
+ * case 'blue': return { r: 0, g: 0, b: 255 };
304
+ * default: return { r: 0, g: 0, b: 0 };
305
+ * }
306
+ * });
307
+ * ```
308
+ * @param toRepresentationCallback - The callback that will be called to transform the value to the representation.
309
+ *
310
+ * @returns The schema with a new return type
311
+ */
312
+ toRepresentation<TRepresentation>(toRepresentationCallback: (value: TType['representation']) => Promise<TRepresentation>): UnionSchema<{
313
+ input: TType["input"];
314
+ validate: TType["validate"];
315
+ internal: TType["internal"];
316
+ output: TType["output"];
317
+ representation: TRepresentation;
318
+ }, TDefinitions, TSchemas>;
319
+ /**
320
+ * This function is used to transform the value to the internal representation of the schema. This is useful when you want to transform the value
321
+ * to a type that the schema adapter can understand. For example, you might want to transform a string to a date. This is the function you use.
322
+ *
323
+ * @example
324
+ * ```typescript
325
+ * import * as p from '@palmares/schemas';
326
+ *
327
+ * const dateSchema = p.string().toInternal((value) => {
328
+ * return new Date(value);
329
+ * });
330
+ *
331
+ * const date = await dateSchema.parse('2021-01-01');
332
+ *
333
+ * console.log(date); // Date object
334
+ *
335
+ * const rgbToColorSchema = p.object({
336
+ * r: p.number().min(0).max(255),
337
+ * g: p.number().min(0).max(255),
338
+ * b: p.number().min(0).max(255),
339
+ * }).toInternal(async (value) => {
340
+ * if (value.r === 255 && value.g === 0 && value.b === 0) return 'red';
341
+ * if (value.r === 0 && value.g === 255 && value.b === 0) return 'green';
342
+ * if (value.r === 0 && value.g === 0 && value.b === 255) return 'blue';
343
+ * return `rgb(${value.r}, ${value.g}, ${value.b})`;
344
+ * });
345
+ * ```
346
+ *
347
+ * @param toInternalCallback - The callback that will be called to transform the value to the internal representation.
348
+ *
349
+ * @returns The schema with a new return type.
350
+ */
351
+ toInternal<TInternal>(toInternalCallback: (value: TType['validate']) => Promise<TInternal>): UnionSchema<{
352
+ input: TType["input"];
353
+ validate: TType["validate"];
354
+ internal: TInternal;
355
+ output: TType["output"];
356
+ representation: TType["representation"];
357
+ }, TDefinitions, TSchemas>;
358
+ /**
359
+ * Called before the validation of the schema. Let's say that you want to validate a date that might receive a string, you can convert that string to a date
360
+ * here BEFORE the validation. This pretty much transforms the value to a type that the schema adapter can understand.
361
+ *
362
+ * @example
363
+ * ```
364
+ * import * as p from '@palmares/schemas';
365
+ * import * as z from 'zod';
366
+ *
367
+ * const customRecordToMapSchema = p.schema().appendSchema(z.map()).toValidate(async (value) => {
368
+ * return new Map(value); // Before validating we transform the value to a map.
369
+ * });
370
+ *
371
+ * const { errors, parsed } = await customRecordToMapSchema.parse({ key: 'value' });
372
+ * ```
373
+ *
374
+ * @param toValidateCallback - The callback that will be called to validate the value.
375
+ *
376
+ * @returns The schema with a new return type.
377
+ */
378
+ toValidate<TValidate>(toValidateCallback: (value: TType['input']) => Promise<TValidate> | TValidate): UnionSchema<{
379
+ input: TType["input"];
380
+ validate: TValidate;
381
+ internal: TType["internal"];
382
+ output: TType["output"];
383
+ representation: TType["representation"];
384
+ }, TDefinitions, TSchemas>;
385
+ static new<TSchemas extends readonly [Schema<any, any>, Schema<any, any>, ...Schema<any, any>[]], TDefinitions extends DefinitionsOfSchemaType = DefinitionsOfSchemaType>(schemas: Narrow<TSchemas>): UnionSchema<TSchemas[number] extends Schema<infer TType, any> ? TType : never>;
386
+ }
387
+ export declare const union: typeof UnionSchema.new;
388
+ //# sourceMappingURL=union.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"union.d.ts","sourceRoot":"","sources":["../../../../src/schema/union.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type Schema from './schema/schema';
2
+ import type { ValidatorTypes } from './validators/types';
3
+ export type MaybePromise<T> = T | Promise<T>;
4
+ export type FallbackFunctionsType<TArguments> = {
5
+ [TKey in keyof TArguments]?: (args: NonNullable<TArguments[TKey]>) => {
6
+ type: ValidatorTypes;
7
+ callback: NonNullable<Schema['__rootFallbacksValidator']['fallbacks'][number]>;
8
+ };
9
+ };
10
+ export type SupportedSchemas = 'number' | 'object' | 'union' | 'string' | 'array' | 'boolean' | 'datetime';
11
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C,MAAM,MAAM,qBAAqB,CAAC,UAAU,IAAI;KAC7C,IAAI,IAAI,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK;QACpE,IAAI,EAAE,cAAc,CAAC;QACrB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;KAChF;CACF,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC"}
@@ -0,0 +1,79 @@
1
+ import type SchemaAdapter from './adapter';
2
+ import type FieldAdapter from './adapter/fields';
3
+ import type { ValidationDataBasedOnType } from './adapter/types';
4
+ import type Schema from './schema/schema';
5
+ import type { ValidationFallbackCallbackReturnType, ValidationFallbackReturnType } from './schema/types';
6
+ import type { FallbackFunctionsType, SupportedSchemas } from './types';
7
+ /**
8
+ * The usage of this is that imagine that the library doesn't support a specific feature that we support on our schema definition, it can return an instance
9
+ * of this class and with this instance we are able to fallback to our default implementation of the schema validation.
10
+ */
11
+ export default class WithFallback<TType extends SupportedSchemas> {
12
+ fallbackFor: Set<keyof Omit<ValidationDataBasedOnType<TType>, 'withFallback' | 'parsers'> | keyof ValidationDataBasedOnType<TType>['parsers']>;
13
+ transformedSchema: any;
14
+ adapterType: TType;
15
+ constructor(adapterType: TType, fallbackFor: (keyof Omit<ValidationDataBasedOnType<TType>, 'withFallback' | 'parsers'> | keyof ValidationDataBasedOnType<TType>['parsers'])[], transformedSchema: any);
16
+ }
17
+ /**
18
+ * Factory function for creating a new instance of WithFallback. We call that function when parsing the schema adapter, and then, inside of the adapter the user will can the inner function
19
+ * to create a new instance of WithFallback.
20
+ *
21
+ * @param adapterType - The type of the adapter that we are using.
22
+ *
23
+ * @returns - A currying function that will create a new instance of WithFallback.
24
+ */
25
+ export declare function withFallbackFactory<TType extends SupportedSchemas>(adapterType: TType): (fallbackFor: (keyof Omit<ValidationDataBasedOnType<TType>, "withFallback" | "parsers"> | keyof ValidationDataBasedOnType<TType>["parsers"])[], transformedSchema: WithFallback<SupportedSchemas>["transformedSchema"]) => WithFallback<TType>;
26
+ export declare function parseErrorsFactory(schemaAdapter: SchemaAdapter): (errorOrErrors: any | any[], metadata?: any) => Promise<Awaited<ReturnType<SchemaAdapter["formatError"]>>[]>;
27
+ /**
28
+ * The default transform function that we use for the schema adapters. This function tries to abstract away the complexity of translating the schema to the adapter.
29
+ *
30
+ * So first things first, WHAT IS a fallback? A fallback is a function that we call when the user defines a validation that is not supported by the adapter. For example, imagine that
31
+ * for some reason the adapter doesn't support the `max` validation, we can define a fallback for that validation and then, when the user defines that validation, we call the fallback
32
+ * function. So, even if the adapter doesn't support that validation our schema will still be able to validate that.
33
+ *
34
+ * @param type - The type of the adapter that we are using, can be a number, an object, all of the possible schema adapters.
35
+ * @param schema - The schema that we are translating.
36
+ * @param validationData - The data that we are using to validate the schema. This means for example, the `max` validation, the `min` validation, etc. The message of the validation when
37
+ * it is not valid, etc.
38
+ * @param fallbackFunctions - The fallback functions that we are using to validate the schema. Those are the functions we fallback to when the user defines a validation that is not
39
+ * supported by the adapter.
40
+ *
41
+ * @returns - The translated schema for something that the adapter is able to understand.
42
+ */
43
+ export declare function defaultTransform<TType extends SupportedSchemas>(type: TType, schema: Schema<any, any>, adapter: SchemaAdapter, fieldAdapter: FieldAdapter | undefined, getValidationData: (isStringVersion: boolean) => ValidationDataBasedOnType<TType>, fallbackFunctions: FallbackFunctionsType<Omit<Awaited<ReturnType<typeof getValidationData>>, 'parsers'>>, options: {
44
+ validatorsIfFallbackOrNotSupported?: ValidationFallbackReturnType | ValidationFallbackReturnType[];
45
+ /**
46
+ * If the schema is not supported by the adapter, this means, that the adapter hasn't defined an adapter for that field type, we can fallback to a custom implementation.
47
+ * The problem is that, for example: Unions,
48
+ *
49
+ * Let's say we have a schema like this: ObjectSchema.new({ age: UnionSchema.new([NumberSchema.new(), StringSchema.new()] )});
50
+ *
51
+ * The root object will be validated by the adapter so what we need to do is create two schemas on the root object, one where the
52
+ * value of `age` key is a number and another where the value of `age` key is a string. Now the root object has two schemas memoized on __transformedSchemas, nice,
53
+ * what's the logic on that case? The ObjectSchema shouldn't take care of that logic. So the Union schema takes control of validating through the adapter. Is adapter 1 without errors?
54
+ * If yes, return the result, if not, try the second adapter. If the second adapter is without errors, return the result, if not, return the errors.
55
+ *
56
+ * In other words, the `fallbackIfNotSupported` function on Unions should return the two schemas saved on it on that case, that way the root ObjectSchema will
57
+ * create those two schemas on the array.
58
+ */
59
+ fallbackIfNotSupported?: () => ReturnType<Schema['__transformToAdapter']>;
60
+ } & Pick<Parameters<Schema['__transformToAdapter']>[0], 'shouldAddStringVersion'>): Promise<any[]>;
61
+ /**
62
+ * This function is used to transform the schema to the adapter. By default it caches the transformed schemas on the schema instance. So on subsequent validations we don't need
63
+ * to transform to the schema again.
64
+ */
65
+ export declare function defaultTransformToAdapter(callback: (adapter: SchemaAdapter) => ReturnType<FieldAdapter['translate']>, transformedSchemas: Schema['__transformedSchemas'], options: Parameters<Schema['__transformToAdapter']>[0], type: string): Promise<any[]>;
66
+ export declare function formatErrorFromParseMethod(adapter: SchemaAdapter, fieldAdapter: FieldAdapter, error: any, path: ValidationFallbackCallbackReturnType['errors'][number]['path'], errorsAsHashedSet: Set<string>): Promise<{
67
+ isValid: boolean;
68
+ code: import("./adapter/types").ErrorCodes;
69
+ message: string;
70
+ path: (string | number)[];
71
+ }>;
72
+ /**
73
+ * Transform the schema and check if we should add a fallback validation for that schema. This is used for complex schemas like Objects, arrays, unions, etc.
74
+ */
75
+ export declare function transformSchemaAndCheckIfShouldBeHandledByFallbackOnComplexSchemas(schema: Schema, options: Parameters<Schema['__transformToAdapter']>[0]): Promise<readonly [{
76
+ transformed: ReturnType<FieldAdapter["translate"]>;
77
+ asString: string;
78
+ }[], boolean]>;
79
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type ArraySchema from '../schema/array';
2
+ import type Schema from '../schema/schema';
3
+ import type { ValidationFallbackReturnType } from '../schema/types';
4
+ export declare function arrayValidation(isTuple: boolean, schemas: Schema<any, any>[]): ValidationFallbackReturnType;
5
+ export declare function minLength(args: ArraySchema['__minLength']): ValidationFallbackReturnType;
6
+ export declare function maxLength(args: ArraySchema['__maxLength']): ValidationFallbackReturnType;
7
+ export declare function nonEmpty(args: ArraySchema['__nonEmpty']): ValidationFallbackReturnType;
8
+ //# sourceMappingURL=array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../../src/validators/array.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAwC,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAE1G,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,4BAA4B,CAoF3G;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,4BAA4B,CAuBxF;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,4BAA4B,CAuBxF;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,4BAA4B,CAuBtF"}
@@ -0,0 +1,4 @@
1
+ import type { ValidationFallbackReturnType } from '../schema/types';
2
+ export declare function booleanValidation(): ValidationFallbackReturnType;
3
+ export declare function allowStringParser(): ValidationFallbackReturnType;
4
+ //# sourceMappingURL=boolean.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean.d.ts","sourceRoot":"","sources":["../../../../src/validators/boolean.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAEpE,wBAAgB,iBAAiB,IAAI,4BAA4B,CAwBhE;AAED,wBAAgB,iBAAiB,IAAI,4BAA4B,CAgBhE"}
@@ -0,0 +1,7 @@
1
+ import type DatetimeSchema from '../schema/datetime';
2
+ import type { ValidationFallbackReturnType } from '../schema/types';
3
+ export declare function datetimeValidation(): ValidationFallbackReturnType;
4
+ export declare function allowStringParser(): ValidationFallbackReturnType;
5
+ export declare function below(args: DatetimeSchema['__below']): ValidationFallbackReturnType;
6
+ export declare function above(args: DatetimeSchema['__above']): ValidationFallbackReturnType;
7
+ //# sourceMappingURL=datetime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../../../src/validators/datetime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAEpE,wBAAgB,kBAAkB,IAAI,4BAA4B,CAwBjE;AAED,wBAAgB,iBAAiB,IAAI,4BAA4B,CAwBhE;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,GAAG,4BAA4B,CA2BnF;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,GAAG,4BAA4B,CA2BnF"}
@@ -0,0 +1,10 @@
1
+ import type NumberSchema from '../schema/number';
2
+ import type { ValidationFallbackReturnType } from '../schema/types';
3
+ export declare function numberValidation(): ValidationFallbackReturnType;
4
+ export declare function max(args: NumberSchema['__max']): ValidationFallbackReturnType;
5
+ export declare function min(args: NumberSchema['__min']): ValidationFallbackReturnType;
6
+ export declare function negative(args: NumberSchema['__allowNegative']): ValidationFallbackReturnType;
7
+ export declare function positive(args: NumberSchema['__allowPositive']): ValidationFallbackReturnType;
8
+ export declare function maxDigits(args: NumberSchema['__maxDigits']): ValidationFallbackReturnType;
9
+ export declare function decimalPlaces(args: NumberSchema['__decimalPlaces']): ValidationFallbackReturnType;
10
+ //# sourceMappingURL=number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../../../src/validators/number.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAEpE,wBAAgB,gBAAgB,IAAI,4BAA4B,CAmB/D;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,4BAA4B,CAiC7E;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,4BAA4B,CA+B7E;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,4BAA4B,CAsB5F;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,4BAA4B,CAsB5F;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,aAAa,CAAC,GAAG,4BAA4B,CAsBzF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,4BAA4B,CAsBjG"}
@@ -0,0 +1,6 @@
1
+ import type Schema from '../schema/schema';
2
+ import type { ValidationFallbackReturnType } from '../schema/types';
3
+ export declare function objectValidation(keysToFallback: {
4
+ [key: string]: Schema;
5
+ }): ValidationFallbackReturnType;
6
+ //# sourceMappingURL=object.d.ts.map