@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,628 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "modelSchema", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return modelSchema;
9
+ }
10
+ });
11
+ var _databases = require("@palmares/databases");
12
+ var _exceptions = require("./exceptions");
13
+ var _schema = require("./schema");
14
+ var _array = /*#__PURE__*/ _interop_require_default(require("./schema/array"));
15
+ var _boolean = require("./schema/boolean");
16
+ var _datetime = require("./schema/datetime");
17
+ var _object = /*#__PURE__*/ _interop_require_default(require("./schema/object"));
18
+ var _schema1 = /*#__PURE__*/ _interop_require_default(require("./schema/schema"));
19
+ var _string = require("./schema/string");
20
+ var _union = require("./schema/union");
21
+ function _array_like_to_array(arr, len) {
22
+ if (len == null || len > arr.length) len = arr.length;
23
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
24
+ return arr2;
25
+ }
26
+ function _array_with_holes(arr) {
27
+ if (Array.isArray(arr)) return arr;
28
+ }
29
+ function _array_without_holes(arr) {
30
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
31
+ }
32
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
33
+ try {
34
+ var info = gen[key](arg);
35
+ var value = info.value;
36
+ } catch (error) {
37
+ reject(error);
38
+ return;
39
+ }
40
+ if (info.done) {
41
+ resolve(value);
42
+ } else {
43
+ Promise.resolve(value).then(_next, _throw);
44
+ }
45
+ }
46
+ function _async_to_generator(fn) {
47
+ return function() {
48
+ var self = this, args = arguments;
49
+ return new Promise(function(resolve, reject) {
50
+ var gen = fn.apply(self, args);
51
+ function _next(value) {
52
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
53
+ }
54
+ function _throw(err) {
55
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
56
+ }
57
+ _next(undefined);
58
+ });
59
+ };
60
+ }
61
+ function _define_property(obj, key, value) {
62
+ if (key in obj) {
63
+ Object.defineProperty(obj, key, {
64
+ value: value,
65
+ enumerable: true,
66
+ configurable: true,
67
+ writable: true
68
+ });
69
+ } else {
70
+ obj[key] = value;
71
+ }
72
+ return obj;
73
+ }
74
+ function _instanceof(left, right) {
75
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
76
+ return !!right[Symbol.hasInstance](left);
77
+ } else {
78
+ return left instanceof right;
79
+ }
80
+ }
81
+ function _interop_require_default(obj) {
82
+ return obj && obj.__esModule ? obj : {
83
+ default: obj
84
+ };
85
+ }
86
+ function _iterable_to_array(iter) {
87
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
88
+ }
89
+ function _iterable_to_array_limit(arr, i) {
90
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
91
+ if (_i == null) return;
92
+ var _arr = [];
93
+ var _n = true;
94
+ var _d = false;
95
+ var _s, _e;
96
+ try {
97
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
98
+ _arr.push(_s.value);
99
+ if (i && _arr.length === i) break;
100
+ }
101
+ } catch (err) {
102
+ _d = true;
103
+ _e = err;
104
+ } finally{
105
+ try {
106
+ if (!_n && _i["return"] != null) _i["return"]();
107
+ } finally{
108
+ if (_d) throw _e;
109
+ }
110
+ }
111
+ return _arr;
112
+ }
113
+ function _non_iterable_rest() {
114
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
115
+ }
116
+ function _non_iterable_spread() {
117
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
118
+ }
119
+ function _sliced_to_array(arr, i) {
120
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
121
+ }
122
+ function _to_consumable_array(arr) {
123
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
124
+ }
125
+ function _type_of(obj) {
126
+ "@swc/helpers - typeof";
127
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
128
+ }
129
+ function _unsupported_iterable_to_array(o, minLen) {
130
+ if (!o) return;
131
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
132
+ var n = Object.prototype.toString.call(o).slice(8, -1);
133
+ if (n === "Object" && o.constructor) n = o.constructor.name;
134
+ if (n === "Map" || n === "Set") return Array.from(n);
135
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
136
+ }
137
+ function _ts_generator(thisArg, body) {
138
+ var f, y, t, g, _ = {
139
+ label: 0,
140
+ sent: function() {
141
+ if (t[0] & 1) throw t[1];
142
+ return t[1];
143
+ },
144
+ trys: [],
145
+ ops: []
146
+ };
147
+ return g = {
148
+ next: verb(0),
149
+ "throw": verb(1),
150
+ "return": verb(2)
151
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
152
+ return this;
153
+ }), g;
154
+ function verb(n) {
155
+ return function(v) {
156
+ return step([
157
+ n,
158
+ v
159
+ ]);
160
+ };
161
+ }
162
+ function step(op) {
163
+ if (f) throw new TypeError("Generator is already executing.");
164
+ while(_)try {
165
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
166
+ if (y = 0, t) op = [
167
+ op[0] & 2,
168
+ t.value
169
+ ];
170
+ switch(op[0]){
171
+ case 0:
172
+ case 1:
173
+ t = op;
174
+ break;
175
+ case 4:
176
+ _.label++;
177
+ return {
178
+ value: op[1],
179
+ done: false
180
+ };
181
+ case 5:
182
+ _.label++;
183
+ y = op[1];
184
+ op = [
185
+ 0
186
+ ];
187
+ continue;
188
+ case 7:
189
+ op = _.ops.pop();
190
+ _.trys.pop();
191
+ continue;
192
+ default:
193
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
194
+ _ = 0;
195
+ continue;
196
+ }
197
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
198
+ _.label = op[1];
199
+ break;
200
+ }
201
+ if (op[0] === 6 && _.label < t[1]) {
202
+ _.label = t[1];
203
+ t = op;
204
+ break;
205
+ }
206
+ if (t && _.label < t[2]) {
207
+ _.label = t[2];
208
+ _.ops.push(op);
209
+ break;
210
+ }
211
+ if (t[2]) _.ops.pop();
212
+ _.trys.pop();
213
+ continue;
214
+ }
215
+ op = body.call(thisArg, _);
216
+ } catch (e) {
217
+ op = [
218
+ 6,
219
+ e
220
+ ];
221
+ y = 0;
222
+ } finally{
223
+ f = t = 0;
224
+ }
225
+ if (op[0] & 5) throw op[1];
226
+ return {
227
+ value: op[0] ? op[1] : void 0,
228
+ done: true
229
+ };
230
+ }
231
+ }
232
+ function getSchemaFromModelField(model, field, parent, definedFields, engineInstanceName, options) {
233
+ return _getSchemaFromModelField.apply(this, arguments);
234
+ }
235
+ function _getSchemaFromModelField() {
236
+ _getSchemaFromModelField = _async_to_generator(function(model, field, parent, definedFields, engineInstanceName, options) {
237
+ var schema, allChoicesOfTypeStrings, allChoicesOfTypeNumbers, schemaForChoicesAsStrings, schemaForChoicesAsNumbers, _parent___data, _parent___data1, doesADefinedFieldExistWithRelatedName, doesADefinedFieldExistWithRelationName, fieldWithRelatedName, fieldWithRelationName, isFieldWithRelatedNameAModelField, isFieldWithRelationNameAModelField, relatedToModel, toField, engineInstance, relatedToModelInstance, modelFieldsOfRelatedModel;
238
+ return _ts_generator(this, function(_state) {
239
+ switch(_state.label){
240
+ case 0:
241
+ schema = undefined;
242
+ if (!(_instanceof(field, _databases.AutoField) || _instanceof(field, _databases.BigAutoField))) return [
243
+ 3,
244
+ 1
245
+ ];
246
+ schema = (0, _schema.number)().integer().optional();
247
+ return [
248
+ 3,
249
+ 10
250
+ ];
251
+ case 1:
252
+ if (!_instanceof(field, _databases.DecimalField)) return [
253
+ 3,
254
+ 2
255
+ ];
256
+ schema = (0, _schema.number)().decimalPlaces(field.decimalPlaces).maxDigits(field.maxDigits);
257
+ return [
258
+ 3,
259
+ 10
260
+ ];
261
+ case 2:
262
+ if (!_instanceof(field, _databases.IntegerField)) return [
263
+ 3,
264
+ 3
265
+ ];
266
+ schema = (0, _schema.number)().integer();
267
+ return [
268
+ 3,
269
+ 10
270
+ ];
271
+ case 3:
272
+ if (!_instanceof(field, _databases.BooleanField)) return [
273
+ 3,
274
+ 4
275
+ ];
276
+ schema = (0, _boolean.boolean)();
277
+ return [
278
+ 3,
279
+ 10
280
+ ];
281
+ case 4:
282
+ if (!(_instanceof(field, _databases.TextField) || _instanceof(field, _databases.CharField) || _instanceof(field, _databases.UuidField))) return [
283
+ 3,
284
+ 5
285
+ ];
286
+ schema = (0, _string.string)();
287
+ if (field.allowBlank === false) schema = schema.minLength(1);
288
+ if (_instanceof(field, _databases.CharField) && typeof field.maxLength === 'number') schema = schema.maxLength(field.maxLength);
289
+ if (_instanceof(field, _databases.UuidField)) {
290
+ schema = schema.uuid();
291
+ if (field.autoGenerate) schema = schema.optional();
292
+ }
293
+ return [
294
+ 3,
295
+ 10
296
+ ];
297
+ case 5:
298
+ if (!_instanceof(field, _databases.DateField)) return [
299
+ 3,
300
+ 6
301
+ ];
302
+ schema = (0, _datetime.datetime)().allowString();
303
+ if (field.autoNow || field.autoNowAdd) schema = schema.optional();
304
+ return [
305
+ 3,
306
+ 10
307
+ ];
308
+ case 6:
309
+ if (!_instanceof(field, _databases.EnumField)) return [
310
+ 3,
311
+ 7
312
+ ];
313
+ allChoicesOfTypeStrings = field.choices.filter(function(choice) {
314
+ return typeof choice === 'string';
315
+ });
316
+ allChoicesOfTypeNumbers = field.choices.filter(function(choice) {
317
+ return typeof choice === 'number';
318
+ });
319
+ schemaForChoicesAsStrings = undefined;
320
+ schemaForChoicesAsNumbers = undefined;
321
+ if (allChoicesOfTypeStrings.length > 0) schemaForChoicesAsStrings = (0, _string.string)().is(_to_consumable_array(allChoicesOfTypeStrings));
322
+ if (allChoicesOfTypeNumbers.length > 0) schemaForChoicesAsNumbers = (0, _schema.number)().is(_to_consumable_array(allChoicesOfTypeNumbers));
323
+ if (schemaForChoicesAsStrings && schemaForChoicesAsNumbers) schema = (0, _union.union)([
324
+ schemaForChoicesAsStrings,
325
+ schemaForChoicesAsNumbers
326
+ ]);
327
+ else if (schemaForChoicesAsStrings) schema = schemaForChoicesAsStrings;
328
+ else if (schemaForChoicesAsNumbers) schema = schemaForChoicesAsNumbers;
329
+ return [
330
+ 3,
331
+ 10
332
+ ];
333
+ case 7:
334
+ if (!_instanceof(field, _databases.ForeignKeyField)) return [
335
+ 3,
336
+ 9
337
+ ];
338
+ doesADefinedFieldExistWithRelatedName = parent && field.relatedName && ((_parent___data = parent.__data) === null || _parent___data === void 0 ? void 0 : _parent___data[field.relatedName]);
339
+ doesADefinedFieldExistWithRelationName = definedFields && field.relationName && definedFields[field.relationName];
340
+ fieldWithRelatedName = doesADefinedFieldExistWithRelatedName ? (_parent___data1 = parent.__data) === null || _parent___data1 === void 0 ? void 0 : _parent___data1[field.relatedName] : undefined;
341
+ fieldWithRelationName = doesADefinedFieldExistWithRelationName ? definedFields[field.relationName] : undefined;
342
+ isFieldWithRelatedNameAModelField = _instanceof(fieldWithRelatedName, _schema1.default) && fieldWithRelatedName.__model !== undefined;
343
+ isFieldWithRelationNameAModelField = _instanceof(fieldWithRelationName, _schema1.default) && fieldWithRelationName.__model !== undefined;
344
+ relatedToModel = field.relatedTo;
345
+ toField = field.toField;
346
+ return [
347
+ 4,
348
+ model.default.getEngineInstance(engineInstanceName)
349
+ ];
350
+ case 8:
351
+ engineInstance = _state.sent();
352
+ relatedToModelInstance = engineInstance.__modelsOfEngine[relatedToModel];
353
+ modelFieldsOfRelatedModel = relatedToModelInstance.__cachedFields[toField];
354
+ if (isFieldWithRelatedNameAModelField) {
355
+ if ((typeof options === "undefined" ? "undefined" : _type_of(options)) !== 'object') options = {};
356
+ options.foreignKeyRelation = {
357
+ schema: parent,
358
+ isArray: _instanceof(fieldWithRelatedName, _array.default),
359
+ model: fieldWithRelatedName.__model,
360
+ fieldToSearchOnModel: field.fieldName,
361
+ fieldToGetFromData: field.toField,
362
+ relationOrRelatedName: field.relatedName
363
+ };
364
+ } else if (isFieldWithRelationNameAModelField) {
365
+ if ((typeof options === "undefined" ? "undefined" : _type_of(options)) !== 'object') options = {};
366
+ options.foreignKeyRelation = {
367
+ isArray: _instanceof(fieldWithRelationName, _array.default),
368
+ model: fieldWithRelationName.__model,
369
+ fieldToSearchOnModel: field.toField,
370
+ fieldToGetFromData: field.fieldName,
371
+ relationOrRelatedName: field.relationName
372
+ };
373
+ }
374
+ return [
375
+ 2,
376
+ getSchemaFromModelField(relatedToModelInstance, modelFieldsOfRelatedModel, parent, definedFields, engineInstanceName, options)
377
+ ];
378
+ case 9:
379
+ if (_instanceof(field, _databases.TranslatableField) && field.customAttributes.schema) {
380
+ if (_instanceof(field.customAttributes.schema, _schema1.default) === false) throw new _exceptions.TranslatableFieldNotImplementedError(field.fieldName);
381
+ schema = field.customAttributes.schema;
382
+ }
383
+ _state.label = 10;
384
+ case 10:
385
+ if (field.allowNull && schema) schema = schema.nullable().optional();
386
+ if (field.defaultValue && schema) schema = schema.default(field.defaultValue);
387
+ return [
388
+ 2,
389
+ schema || (0, _string.string)()
390
+ ];
391
+ }
392
+ });
393
+ });
394
+ return _getSchemaFromModelField.apply(this, arguments);
395
+ }
396
+ function modelSchema(model, options) {
397
+ var lazyModelSchema = _object.default.new({});
398
+ var parentSchema = (options === null || options === void 0 ? void 0 : options.many) === true ? _array.default.new([
399
+ lazyModelSchema
400
+ ]) : lazyModelSchema;
401
+ var omitRelationAsSet = new Set((options === null || options === void 0 ? void 0 : options.omitRelation) || []);
402
+ var omitAsSet = new Set((options === null || options === void 0 ? void 0 : options.omit) || []);
403
+ var showAsSet = new Set((options === null || options === void 0 ? void 0 : options.show) || []);
404
+ var fieldsAsObject = (options === null || options === void 0 ? void 0 : options.fields) || {};
405
+ var customFieldValues = Object.values(fieldsAsObject);
406
+ // We need to add it to the instance to be able to access it on the `toRepresentation` callback
407
+ lazyModelSchema.__omitRelation = omitRelationAsSet;
408
+ parentSchema.__model = model;
409
+ lazyModelSchema.__model = model;
410
+ // Add this callback to transform the model fields
411
+ parentSchema.__runBeforeParseAndData = /*#__PURE__*/ _async_to_generator(function() {
412
+ var fieldsOfModels, fieldsAsEntries, fieldsWithAutomaticRelations, fields, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step;
413
+ return _ts_generator(this, function(_state) {
414
+ switch(_state.label){
415
+ case 0:
416
+ if (parentSchema.__alreadyAppliedModel) return [
417
+ 2
418
+ ];
419
+ parentSchema.__alreadyAppliedModel = true;
420
+ fieldsOfModels = model._fields();
421
+ fieldsAsEntries = Object.entries(fieldsOfModels);
422
+ fieldsWithAutomaticRelations = new Map();
423
+ return [
424
+ 4,
425
+ fieldsAsEntries.reduce(function() {
426
+ var _ref = _async_to_generator(function(accumulatorAsPromise, param) {
427
+ var _param, key, value, schema, optionsForForeignKeyRelation, _parentSchema___getParent, newSchema, _optionsForForeignKeyRelation_foreignKeyRelation, rootSchema, existingRelations, accumulator;
428
+ return _ts_generator(this, function(_state) {
429
+ switch(_state.label){
430
+ case 0:
431
+ _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
432
+ if (omitAsSet.has(key)) return [
433
+ 2,
434
+ accumulatorAsPromise
435
+ ];
436
+ if (showAsSet.size > 0 && !showAsSet.has(key)) return [
437
+ 2,
438
+ accumulatorAsPromise
439
+ ];
440
+ schema = fieldsAsObject[key];
441
+ optionsForForeignKeyRelation = {};
442
+ if (!(!schema || _instanceof(value, _databases.ForeignKeyField))) return [
443
+ 3,
444
+ 2
445
+ ];
446
+ return [
447
+ 4,
448
+ getSchemaFromModelField(model, value, parentSchema === null || parentSchema === void 0 ? void 0 : (_parentSchema___getParent = parentSchema.__getParent) === null || _parentSchema___getParent === void 0 ? void 0 : _parentSchema___getParent.call(parentSchema), options === null || options === void 0 ? void 0 : options.fields, options === null || options === void 0 ? void 0 : options.engineInstance, optionsForForeignKeyRelation)
449
+ ];
450
+ case 1:
451
+ newSchema = _state.sent();
452
+ if (!schema) schema = newSchema;
453
+ _state.label = 2;
454
+ case 2:
455
+ // Appends the foreign key relation to the schema automatically.
456
+ if (optionsForForeignKeyRelation.foreignKeyRelation) {
457
+ ;
458
+ rootSchema = (optionsForForeignKeyRelation === null || optionsForForeignKeyRelation === void 0 ? void 0 : (_optionsForForeignKeyRelation_foreignKeyRelation = optionsForForeignKeyRelation.foreignKeyRelation) === null || _optionsForForeignKeyRelation_foreignKeyRelation === void 0 ? void 0 : _optionsForForeignKeyRelation_foreignKeyRelation.schema) || lazyModelSchema;
459
+ existingRelations = fieldsWithAutomaticRelations.get(rootSchema) || [];
460
+ existingRelations.push({
461
+ relationOrRelatedName: optionsForForeignKeyRelation.foreignKeyRelation.relationOrRelatedName,
462
+ isArray: optionsForForeignKeyRelation.foreignKeyRelation.isArray,
463
+ model: optionsForForeignKeyRelation.foreignKeyRelation.model,
464
+ fieldToSearchOnModel: optionsForForeignKeyRelation.foreignKeyRelation.fieldToSearchOnModel,
465
+ fieldToGetFromData: optionsForForeignKeyRelation.foreignKeyRelation.fieldToGetFromData
466
+ });
467
+ fieldsWithAutomaticRelations.set(rootSchema, existingRelations);
468
+ }
469
+ return [
470
+ 4,
471
+ accumulatorAsPromise
472
+ ];
473
+ case 3:
474
+ accumulator = _state.sent();
475
+ accumulator[key] = schema;
476
+ return [
477
+ 2,
478
+ accumulator
479
+ ];
480
+ }
481
+ });
482
+ });
483
+ return function(accumulatorAsPromise, _) {
484
+ return _ref.apply(this, arguments);
485
+ };
486
+ }(), Promise.resolve(fieldsAsObject))
487
+ ];
488
+ case 1:
489
+ fields = _state.sent();
490
+ if (fieldsWithAutomaticRelations.size > 0) {
491
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
492
+ try {
493
+ _loop = function() {
494
+ var _step_value = _sliced_to_array(_step.value, 2), schema = _step_value[0], relations = _step_value[1];
495
+ schema.toRepresentation(function() {
496
+ var _ref = _async_to_generator(function(data) {
497
+ var allData;
498
+ return _ts_generator(this, function(_state) {
499
+ switch(_state.label){
500
+ case 0:
501
+ allData = Array.isArray(data) ? data : [
502
+ data
503
+ ];
504
+ // since we are changing the data by reference, just return the data itself.
505
+ return [
506
+ 4,
507
+ Promise.all(allData.map(function() {
508
+ var _ref = _async_to_generator(function(data) {
509
+ return _ts_generator(this, function(_state) {
510
+ return [
511
+ 2,
512
+ Promise.all(relations.map(function() {
513
+ var _ref = _async_to_generator(function(relation) {
514
+ var relationData;
515
+ return _ts_generator(this, function(_state) {
516
+ switch(_state.label){
517
+ case 0:
518
+ // Ignore if the data of the relation already exists
519
+ if (relation.relationOrRelatedName in data) return [
520
+ 2
521
+ ];
522
+ return [
523
+ 4,
524
+ relation.model.default.get({
525
+ search: _define_property({}, relation.fieldToSearchOnModel, data[relation.fieldToGetFromData])
526
+ })
527
+ ];
528
+ case 1:
529
+ relationData = _state.sent();
530
+ if (relation.isArray !== true) relationData = relationData[0];
531
+ data[relation.relationOrRelatedName] = relationData;
532
+ if (schema.__omitRelation.has(relation.relationOrRelatedName)) delete data[relation.fieldToGetFromData];
533
+ return [
534
+ 2
535
+ ];
536
+ }
537
+ });
538
+ });
539
+ return function(relation) {
540
+ return _ref.apply(this, arguments);
541
+ };
542
+ }()))
543
+ ];
544
+ });
545
+ });
546
+ return function(data) {
547
+ return _ref.apply(this, arguments);
548
+ };
549
+ }()))
550
+ ];
551
+ case 1:
552
+ _state.sent();
553
+ return [
554
+ 2,
555
+ data
556
+ ];
557
+ }
558
+ });
559
+ });
560
+ return function(data) {
561
+ return _ref.apply(this, arguments);
562
+ };
563
+ }(), {
564
+ after: true
565
+ });
566
+ };
567
+ // This way we can get all of the relations concurrently with Promise.all
568
+ for(_iterator = fieldsWithAutomaticRelations.entries()[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
569
+ } catch (err) {
570
+ _didIteratorError = true;
571
+ _iteratorError = err;
572
+ } finally{
573
+ try {
574
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
575
+ _iterator.return();
576
+ }
577
+ } finally{
578
+ if (_didIteratorError) {
579
+ throw _iteratorError;
580
+ }
581
+ }
582
+ }
583
+ }
584
+ lazyModelSchema.__data = fields;
585
+ return [
586
+ 4,
587
+ Promise.all(customFieldValues.map(function() {
588
+ var _ref = _async_to_generator(function(schema) {
589
+ return _ts_generator(this, function(_state) {
590
+ switch(_state.label){
591
+ case 0:
592
+ schema['__getParent'] = function() {
593
+ return lazyModelSchema;
594
+ };
595
+ if (!schema['__runBeforeParseAndData']) return [
596
+ 3,
597
+ 2
598
+ ];
599
+ return [
600
+ 4,
601
+ schema['__runBeforeParseAndData'](schema)
602
+ ];
603
+ case 1:
604
+ _state.sent();
605
+ _state.label = 2;
606
+ case 2:
607
+ return [
608
+ 2
609
+ ];
610
+ }
611
+ });
612
+ });
613
+ return function(schema) {
614
+ return _ref.apply(this, arguments);
615
+ };
616
+ }()))
617
+ ];
618
+ case 2:
619
+ _state.sent();
620
+ return [
621
+ 2
622
+ ];
623
+ }
624
+ });
625
+ });
626
+ if ((options === null || options === void 0 ? void 0 : options.ignoreExtraneousFields) !== true) lazyModelSchema.removeExtraneous();
627
+ return parentSchema;
628
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, /**
6
+ * This will convert a value from a number to any other type.
7
+ *
8
+ * @param callback
9
+ * @returns
10
+ */ "default", {
11
+ enumerable: true,
12
+ get: function() {
13
+ return convertFromNumberBuilder;
14
+ }
15
+ });
16
+ function convertFromNumberBuilder(callback) {
17
+ return function(value) {
18
+ return callback(value);
19
+ };
20
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, /**
6
+ * This will convert a value from a string to any other type.
7
+ *
8
+ * @param callback
9
+ * @returns
10
+ */ "default", {
11
+ enumerable: true,
12
+ get: function() {
13
+ return convertFromStringBuilder;
14
+ }
15
+ });
16
+ function convertFromStringBuilder(callback) {
17
+ return function(value) {
18
+ if (typeof value === 'string') return callback(value);
19
+ return {
20
+ value: value,
21
+ preventNextParsers: false
22
+ };
23
+ };
24
+ }