@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,240 @@
1
+ import SchemaAdapter from './adapter';
2
+ import { modelSchema } from './model';
3
+ import ArraySchema, { array } from './schema/array';
4
+ import BooleanSchema, { boolean } from './schema/boolean';
5
+ import DatetimeSchema, { datetime } from './schema/datetime';
6
+ import NumberSchema, { number } from './schema/number';
7
+ import ObjectSchema, { object } from './schema/object';
8
+ import Schema, { schema } from './schema/schema';
9
+ import StringSchema, { string } from './schema/string';
10
+ import UnionSchema, { union } from './schema/union';
11
+ import type { DefinitionsOfSchemaType, ExtractTypeFromObjectOfSchemas } from "./schema/types";
12
+ import type { Narrow } from '@palmares/core';
13
+ import type { Model, ModelFields } from "@palmares/databases";
14
+ export { default as default } from './domain';
15
+ export { default as FieldAdapter } from './adapter/fields';
16
+ export { default as NumberAdapter } from './adapter/fields/number';
17
+ export { default as ObjectFieldAdapter } from './adapter/fields/object';
18
+ export { default as UnionFieldAdapter } from './adapter/fields/union';
19
+ export { default as StringFieldAdapter } from './adapter/fields/string';
20
+ export { default as ArrayFieldAdapter } from './adapter/fields/array';
21
+ export { default as BooleanFieldAdapter } from './adapter/fields/boolean';
22
+ export { default as DatetimeFieldAdapter } from './adapter/fields/datetime';
23
+ export { setDefaultAdapter } from './conf';
24
+ export * from './adapter/types';
25
+ export * from './schema';
26
+ export { SchemaAdapter, NumberSchema, ObjectSchema, UnionSchema, StringSchema, ArraySchema, BooleanSchema, DatetimeSchema, Schema, };
27
+ export { schema, number, object, union, string, array, datetime, boolean };
28
+ export { default as compile } from './compile';
29
+ export { modelSchema };
30
+ export declare function getSchemasWithDefaultAdapter<TAdapter extends SchemaAdapter>(): {
31
+ number: () => NumberSchema<{
32
+ input: number | bigint;
33
+ output: number | bigint;
34
+ internal: number | bigint;
35
+ representation: number | bigint;
36
+ validate: number | bigint;
37
+ }, {
38
+ schemaAdapter: TAdapter;
39
+ schemaType: "number";
40
+ hasSave: false;
41
+ }>;
42
+ string: () => StringSchema<{
43
+ input: string;
44
+ output: string;
45
+ internal: string;
46
+ representation: string;
47
+ validate: string;
48
+ }, {
49
+ schemaAdapter: TAdapter;
50
+ schemaType: "string";
51
+ hasSave: false;
52
+ }>;
53
+ array: <TSchemas extends readonly [Schema, ...Schema[]] | [Schema[]]>(...schemas: TSchemas) => ArraySchema<{
54
+ input: import("./schema/types").ExtractTypeFromArrayOfSchemas<TSchemas, "input", []>;
55
+ validate: import("./schema/types").ExtractTypeFromArrayOfSchemas<TSchemas, "validate", []>;
56
+ internal: import("./schema/types").ExtractTypeFromArrayOfSchemas<TSchemas, "internal", []>;
57
+ output: import("./schema/types").ExtractTypeFromArrayOfSchemas<TSchemas, "output", []>;
58
+ representation: import("./schema/types").ExtractTypeFromArrayOfSchemas<TSchemas, "representation", []>;
59
+ }, {
60
+ schemaAdapter: TAdapter;
61
+ schemaType: "array";
62
+ hasSave: false;
63
+ }, TSchemas>;
64
+ boolean: () => BooleanSchema<{
65
+ input: boolean;
66
+ validate: boolean;
67
+ internal: boolean;
68
+ output: boolean;
69
+ representation: boolean;
70
+ }, {
71
+ schemaAdapter: TAdapter;
72
+ schemaType: "boolean";
73
+ hasSave: false;
74
+ }>;
75
+ object: <TData extends Record<any, Schema<any, any>>>(data: TData) => ObjectSchema<{
76
+ input: ExtractTypeFromObjectOfSchemas<TData, "input">;
77
+ validate: ExtractTypeFromObjectOfSchemas<TData, "validate">;
78
+ internal: ExtractTypeFromObjectOfSchemas<TData, "internal">;
79
+ representation: ExtractTypeFromObjectOfSchemas<TData, "representation">;
80
+ output: ExtractTypeFromObjectOfSchemas<TData, "output">;
81
+ }, {
82
+ schemaAdapter: TAdapter;
83
+ schemaType: "object";
84
+ hasSave: false;
85
+ }, TData>;
86
+ union: <TSchemas extends readonly [Schema<any, any>, Schema<any, any>, ...Schema<any, any>[]]>(...schemas: Narrow<TSchemas>) => UnionSchema<TSchemas[number] extends Schema<infer TType extends {
87
+ input: any;
88
+ validate: any;
89
+ internal: any;
90
+ output: any;
91
+ representation: any;
92
+ }, any> ? TType : never, DefinitionsOfSchemaType, [Schema<any, any>, Schema<any, any>, ...Schema<any, any>[]]>;
93
+ datetime: () => DatetimeSchema<{
94
+ input: Date;
95
+ validate: Date;
96
+ internal: Date;
97
+ output: Date;
98
+ representation: Date;
99
+ }, {
100
+ schemaAdapter: TAdapter;
101
+ schemaType: "datetime";
102
+ hasSave: false;
103
+ }>;
104
+ /**
105
+ * Different from other models, this function is a factory function that returns either an ObjectSchema or an ArraySchema.
106
+ * The idea is to build the schema of a model dynamically based on its fields.
107
+ *
108
+ * Another feature is that it can automatically add the foreign key relation to the schema, but for that you need to define
109
+ * the fields of the related model in the fields object.
110
+ *
111
+ * For example: A User model have a field `companyId` that is a ForeignKeyField to the Company model. The `relationName`
112
+ * is the direct relation from the User model to the Company model, and the `relatedName` is the reverse relation from the
113
+ * Company model to the User model. If you define the fieldName as either the relatedName or the relationName it will fetch
114
+ * the data automatically.
115
+ *
116
+ * **Important**: We build the schema dynamically but also lazily, if you don't try to parse or validate the schema, it won't be built.
117
+ * After the first time it's built, it's cached and never built again.
118
+ *
119
+ * **Important 2**: If you want to use the automatic relation feature, you need to define guarantee that the foreignKey field fieldName
120
+ * exists on `show` array, or that it doesn't exist on `omit` array.
121
+ *
122
+ * Like: `{ options: { show: ['id', 'name', 'companyId'] }}` or `{ options: { omit: ['id'] }}` it **will work**.
123
+ *
124
+ * If you do `{ options: { show: ['id', 'name'] }}` or `{ options: { omit: ['companyId']} }` it **won't work**.
125
+ *
126
+ * **Important 3**: If you want to return an array instead of an object, you need to pass the `many` option as true.
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * import { auto, choice, foreignKey, Model, define } from '@palmares/databases';
131
+ * import * as p from '@palmares/schemas';
132
+ *
133
+ * const Company = define('Company', {
134
+ * fields: {
135
+ * id: auto(),
136
+ * name: text(),
137
+ * },
138
+ * options: {
139
+ * tableName: 'company',
140
+ * }
141
+ * });
142
+ *
143
+ * class User extends Model<User>() {
144
+ * fields = {
145
+ * id: auto(),
146
+ * type: choice({ choices: ['user', 'admin'] }),
147
+ * companyId: foreignKey({
148
+ * relatedTo: Company,
149
+ * relationName: 'company',
150
+ * relatedName: 'usersOfCompany',
151
+ * toField: 'id',
152
+ * onDelete: 'CASCADE',
153
+ * }),
154
+ * }
155
+ *
156
+ * options = {
157
+ * tableName: 'user',
158
+ * }
159
+ * }
160
+ *
161
+ * const userSchema = p.modelSchema(User, {
162
+ * fields: {
163
+ * company: p.modelSchema(Company).optional({ outputOnly: true });
164
+ * },
165
+ * show: ['type', 'companyId']
166
+ * });
167
+ *
168
+ * const companySchema = p.modelSchema(Company, {
169
+ * fields: {
170
+ * usersOfCompany: p.modelSchema(User, { many: true }).optional({ outputOnly: true });
171
+ * },
172
+ * show: ['id', 'type']
173
+ * });
174
+ *```
175
+ * @param model - The model that you want to build the schema from.
176
+ * @param options - The options to build the schema.
177
+ * @param options.ignoreExtraneousFields - If you want to ignore extraneous fields set this to true.
178
+ * @param options.engineInstance - What engine instance you want to use to fetch the data. Defaults to the first one.
179
+ * @param options.fields - Extra fields that you want to add to the schema. If it has the same name as the model field,
180
+ * We will not create a schema for that field and use the one you have defined here.
181
+ * @param options.omit - Fields that you want to omit from the schema. If that is defined, we ignore `show` option.
182
+ * @param options.show - Fields that you want to show on the schema. If that is defined, we ignore `omit` option.
183
+ * @param options.many - If you want to return an array instead of an object, set this to true. With that we create
184
+ * an ArraySchema instead of an ObjectSchema.
185
+ *
186
+ * @returns - If you pass the `many` option as true, we return an ArraySchema, otherwise we return an ObjectSchema.
187
+ */
188
+ modelSchema: <TModel extends ReturnType<typeof Model>, const TOmit extends readonly (keyof ModelFields<InstanceType<TModel>>)[] | undefined[] = undefined[], const TShow extends readonly (keyof ModelFields<InstanceType<TModel>>)[] | undefined[] = undefined[], TMany extends boolean = false, TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> | undefined = undefined, TAllModelFields = ModelFields<InstanceType<TModel>>, TFieldsOnModel = TOmit extends undefined[] ? TShow extends undefined[] ? TAllModelFields : Pick<TAllModelFields, TShow[number] extends keyof TAllModelFields ? TShow[number] : never> : Omit<TAllModelFields, TOmit[number] extends keyof TAllModelFields ? TOmit[number] : never>, TReturnType extends {
189
+ input: any;
190
+ output: any;
191
+ validate: any;
192
+ internal: any;
193
+ representation: any;
194
+ } = {
195
+ input: TFields extends undefined ? TFieldsOnModel : Omit<TFieldsOnModel, keyof ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, "input">> & ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, "input">;
196
+ output: TFields extends undefined ? TFieldsOnModel : (Omit<TFieldsOnModel, keyof ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, "output">> & ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, "output">);
197
+ internal: TFields extends undefined ? TFieldsOnModel : (Omit<TFieldsOnModel, keyof ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, "internal">> & ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, "internal">);
198
+ representation: TFields extends undefined ? TFieldsOnModel : (Omit<TFieldsOnModel, keyof ExtractTypeFromObjectOfSchemas<TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> ? TFields : {}, "representation">> & ExtractTypeFromObjectOfSchemas<TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> ? TFields : {}, "representation">);
199
+ validate: TFields extends undefined ? TFieldsOnModel : Omit<TFieldsOnModel, keyof ExtractTypeFromObjectOfSchemas<TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> ? TFields : {}, "validate">> & ExtractTypeFromObjectOfSchemas<TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> ? TFields : {}, "validate">;
200
+ }>(model: TModel, options?: {
201
+ ignoreExtraneousFields?: boolean;
202
+ engineInstance?: string;
203
+ fields?: TFields;
204
+ omit?: TOmit;
205
+ omitRelation?: readonly (keyof TFields)[];
206
+ show?: TShow;
207
+ many?: TMany;
208
+ }) => TMany extends true ? ArraySchema<{
209
+ input: TReturnType["input"][];
210
+ output: TReturnType["output"][];
211
+ internal: TReturnType["internal"][];
212
+ representation: TReturnType["representation"][];
213
+ validate: TReturnType["validate"][];
214
+ }, {
215
+ schemaAdapter: TAdapter;
216
+ schemaType: "object";
217
+ hasSave: false;
218
+ }, [ObjectSchema<{
219
+ input: TReturnType["input"];
220
+ output: TReturnType["output"];
221
+ internal: TReturnType["internal"];
222
+ representation: TReturnType["representation"];
223
+ validate: TReturnType["validate"];
224
+ }, {
225
+ schemaAdapter: TAdapter;
226
+ schemaType: "object";
227
+ hasSave: false;
228
+ }, Record<any, any>>[]]> : ObjectSchema<{
229
+ input: TReturnType["input"];
230
+ output: TReturnType["output"];
231
+ internal: TReturnType["internal"];
232
+ representation: TReturnType["representation"];
233
+ validate: TReturnType["validate"];
234
+ }, {
235
+ schemaAdapter: TAdapter;
236
+ schemaType: "object";
237
+ hasSave: false;
238
+ }, Record<any, any>>;
239
+ };
240
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import { type Model, type ModelFields } from '@palmares/databases';
2
+ import ArraySchema from './schema/array';
3
+ import ObjectSchema from './schema/object';
4
+ import Schema from './schema/schema';
5
+ import type { DefinitionsOfSchemaType, ExtractTypeFromObjectOfSchemas } from './schema/types';
6
+ /**
7
+ * Different from other schemas, this function is a factory function that returns either an ObjectSchema or an ArraySchema.
8
+ * The idea is to build the schema of a model dynamically based on its fields.
9
+ *
10
+ * Another feature is that it can automatically add the foreign key relation to the schema, but for that you need to define
11
+ * the fields of the related model in the fields object.
12
+ *
13
+ * For example: A User model have a field `companyId` that is a ForeignKeyField to the Company model. The `relationName`
14
+ * is the direct relation from the User model to the Company model, and the `relatedName` is the reverse relation from the
15
+ * Company model to the User model. If you define the fieldName as either the relatedName or the relationName it will fetch
16
+ * the data automatically.
17
+ *
18
+ * **Important**: We build the schema dynamically but also lazily, if you don't try to parse or validate the schema, it won't be built.
19
+ * After the first time it's built, it's cached and never built again.
20
+ *
21
+ * **Important 2**: If you want to use the automatic relation feature, you need to define guarantee that the foreignKey field fieldName
22
+ * exists on `show` array, or that it doesn't exist on `omit` array.
23
+ *
24
+ * Like: `{ options: { show: ['id', 'name', 'companyId'] }}` or `{ options: { omit: ['id'] }}` it **will work**.
25
+ *
26
+ * If you do `{ options: { show: ['id', 'name'] }}` or `{ options: { omit: ['companyId']} }` it **won't work**.
27
+ *
28
+ * **Important 3**: If you want to return an array instead of an object, you need to pass the `many` option as true.
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * import { auto, choice, foreignKey, Model, define } from '@palmares/databases';
33
+ * import * as p from '@palmares/schemas';
34
+ *
35
+ * const Company = define('Company', {
36
+ * fields: {
37
+ * id: auto(),
38
+ * name: text(),
39
+ * },
40
+ * options: {
41
+ * tableName: 'company',
42
+ * }
43
+ * });
44
+ *
45
+ * class User extends Model<User>() {
46
+ * fields = {
47
+ * id: auto(),
48
+ * type: choice({ choices: ['user', 'admin'] }),
49
+ * companyId: foreignKey({
50
+ * relatedTo: Company,
51
+ * relationName: 'company',
52
+ * relatedName: 'usersOfCompany',
53
+ * toField: 'id',
54
+ * onDelete: 'CASCADE',
55
+ * }),
56
+ * }
57
+ *
58
+ * options = {
59
+ * tableName: 'user',
60
+ * }
61
+ * }
62
+ *
63
+ * const userSchema = p.modelSchema(User, {
64
+ * fields: {
65
+ * company: p.modelSchema(Company).optional({ outputOnly: true });
66
+ * },
67
+ * show: ['type', 'companyId'], // 'companyId' is required for the automatic relation to work, otherwise it won't show
68
+ * omitRelation: ['company']
69
+ * });
70
+ *
71
+ * const companySchema = p.modelSchema(Company, {
72
+ * fields: {
73
+ * usersOfCompany: p.modelSchema(User, { many: true }).optional({ outputOnly: true });
74
+ * },
75
+ * show: ['id', 'type'] // The `companyId` field on the 'User' model is tied to the `id` field on the 'Company' model so 'id' is required.
76
+ * });
77
+ *```
78
+ * @param model - The model that you want to build the schema from.
79
+ * @param options - The options to build the schema.
80
+ * @param options.ignoreExtraneousFields - If you want to ignore extraneous fields set this to true.
81
+ * @param options.engineInstance - What engine instance you want to use to fetch the data. Defaults to the first one.
82
+ * @param options.omitRelation - Fields that you want to omit from the relation. For example, on the example above, on the
83
+ * `userSchema` you can omit the `companyId` field from the relation by just passing `['company']`, on the `companySchema`
84
+ * you can omit the `id` field from company by passing `['usersOfCompany']`.
85
+ *
86
+ * @param options.fields - Extra fields that you want to add to the schema. If it has the same name as the model field,
87
+ * We will not create a schema for that field and use the one you have defined here.
88
+ * @param options.omit - Fields that you want to omit from the schema. If that is defined, we ignore `show` option.
89
+ * @param options.show - Fields that you want to show on the schema. If that is defined, we ignore `omit` option.
90
+ * @param options.many - If you want to return an array instead of an object, set this to true. With that we create
91
+ * an ArraySchema instead of an ObjectSchema.
92
+ *
93
+ * @returns - If you pass the `many` option as true, we return an ArraySchema, otherwise we return an ObjectSchema.
94
+ */
95
+ export declare function modelSchema<TModel extends ReturnType<typeof Model>, const TOmit extends readonly (keyof ModelFields<InstanceType<TModel>>)[] | undefined[] = undefined[], const TShow extends readonly (keyof ModelFields<InstanceType<TModel>>)[] | undefined[] = undefined[], TMany extends boolean = false, TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> | undefined = undefined, TAllModelFields = ModelFields<InstanceType<TModel>>, TDefinitionsOfSchemaType extends DefinitionsOfSchemaType = DefinitionsOfSchemaType, TFieldsOnModel = TOmit extends undefined[] ? TShow extends undefined[] ? TAllModelFields : Pick<TAllModelFields, TShow[number] extends keyof TAllModelFields ? TShow[number] : never> : Omit<TAllModelFields, TOmit[number] extends keyof TAllModelFields ? TOmit[number] : never>, TReturnType extends {
96
+ input: any;
97
+ output: any;
98
+ validate: any;
99
+ internal: any;
100
+ representation: any;
101
+ } = {
102
+ input: TFields extends undefined ? TFieldsOnModel : Omit<TFieldsOnModel, keyof ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, 'input'>> & ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, 'input'>;
103
+ output: TFields extends undefined ? TFieldsOnModel : Omit<TFieldsOnModel, keyof ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, 'output'>> & ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, 'output'>;
104
+ internal: TFields extends undefined ? TFieldsOnModel : Omit<TFieldsOnModel, keyof ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, 'internal'>> & ExtractTypeFromObjectOfSchemas<TFields extends undefined ? {} : TFields, 'internal'>;
105
+ representation: TFields extends undefined ? TFieldsOnModel : Omit<TFieldsOnModel, keyof ExtractTypeFromObjectOfSchemas<TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> ? TFields : {}, 'representation'>> & ExtractTypeFromObjectOfSchemas<TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> ? TFields : {}, 'representation'>;
106
+ validate: TFields extends undefined ? TFieldsOnModel : Omit<TFieldsOnModel, keyof ExtractTypeFromObjectOfSchemas<TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> ? TFields : {}, 'validate'>> & ExtractTypeFromObjectOfSchemas<TFields extends Record<any, Schema<any, DefinitionsOfSchemaType>> ? TFields : {}, 'validate'>;
107
+ }>(model: TModel, options?: {
108
+ ignoreExtraneousFields?: boolean;
109
+ engineInstance?: string;
110
+ fields?: TFields;
111
+ omit?: TOmit;
112
+ show?: TShow;
113
+ omitRelation?: readonly (keyof TFields)[];
114
+ many?: TMany;
115
+ }): TMany extends true ? ArraySchema<{
116
+ input: TReturnType['input'][];
117
+ output: TReturnType['output'][];
118
+ internal: TReturnType['internal'][];
119
+ representation: TReturnType['representation'][];
120
+ validate: TReturnType['validate'][];
121
+ }, TDefinitionsOfSchemaType, [
122
+ ObjectSchema<{
123
+ input: TReturnType['input'];
124
+ output: TReturnType['output'];
125
+ internal: TReturnType['internal'];
126
+ representation: TReturnType['representation'];
127
+ validate: TReturnType['validate'];
128
+ }, TDefinitionsOfSchemaType, Record<any, any>>[]
129
+ ]> : ObjectSchema<{
130
+ input: TReturnType['input'];
131
+ output: TReturnType['output'];
132
+ internal: TReturnType['internal'];
133
+ representation: TReturnType['representation'];
134
+ validate: TReturnType['validate'];
135
+ }, TDefinitionsOfSchemaType, Record<any, any>>;
136
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type Schema from '../schema/schema';
2
+ /**
3
+ * This will convert a value from a number to any other type.
4
+ *
5
+ * @param callback
6
+ * @returns
7
+ */
8
+ export default function convertFromNumberBuilder(callback: (value: number) => Awaited<ReturnType<Parameters<Schema['__parsers']['high']['set']>[1]>>): (value: any) => {
9
+ value: any;
10
+ preventNextParsers: boolean;
11
+ } | {
12
+ value: any;
13
+ preventNextParsers: boolean;
14
+ };
15
+ //# sourceMappingURL=convert-from-number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-from-number.d.ts","sourceRoot":"","sources":["../../../../src/parsers/convert-from-number.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAEpF,GAAG;;;;;;EACnB"}
@@ -0,0 +1,9 @@
1
+ import type Schema from '../schema/schema';
2
+ /**
3
+ * This will convert a value from a string to any other type.
4
+ *
5
+ * @param callback
6
+ * @returns
7
+ */
8
+ export default function convertFromStringBuilder(callback: (value: string) => Awaited<ReturnType<Parameters<Schema['__parsers']['high']['set']>[1]>>): Parameters<Schema['__parsers']['high']['set']>[1];
9
+ //# sourceMappingURL=convert-from-string.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-from-string.d.ts","sourceRoot":"","sources":["../../../../src/parsers/convert-from-string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAClG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAQnD"}
@@ -0,0 +1,3 @@
1
+ export { default as convertFromNumberBuilder } from './convert-from-number';
2
+ export { default as convertFromStringBuilder } from './convert-from-string';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC"}