@decaf-ts/decorator-validation 1.10.5 → 1.11.0

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 (218) hide show
  1. package/README.md +1 -1
  2. package/dist/decorator-validation.cjs +1 -1
  3. package/dist/decorator-validation.cjs.map +1 -1
  4. package/dist/decorator-validation.js +1 -1
  5. package/dist/decorator-validation.js.map +1 -1
  6. package/lib/esm/index.d.ts +2 -1
  7. package/lib/esm/index.js +2 -1
  8. package/lib/esm/index.js.map +1 -1
  9. package/lib/esm/model/Builder.d.ts +84 -0
  10. package/lib/esm/model/Builder.js +395 -129
  11. package/lib/esm/model/Builder.js.map +1 -1
  12. package/lib/esm/model/Model.d.ts +21 -19
  13. package/lib/esm/model/Model.js +112 -105
  14. package/lib/esm/model/Model.js.map +1 -1
  15. package/lib/esm/model/constants.d.ts +8 -8
  16. package/lib/esm/model/constants.js +8 -9
  17. package/lib/esm/model/constants.js.map +1 -1
  18. package/lib/esm/model/decorators.d.ts +2 -12
  19. package/lib/esm/model/decorators.js +5 -39
  20. package/lib/esm/model/decorators.js.map +1 -1
  21. package/lib/esm/model/index.d.ts +1 -0
  22. package/lib/esm/model/index.js +1 -0
  23. package/lib/esm/model/index.js.map +1 -1
  24. package/lib/esm/model/types.d.ts +0 -12
  25. package/lib/esm/model/utils.d.ts +0 -3
  26. package/lib/esm/model/utils.js +0 -10
  27. package/lib/esm/model/utils.js.map +1 -1
  28. package/lib/esm/model/validation.d.ts +4 -37
  29. package/lib/esm/model/validation.js +30 -106
  30. package/lib/esm/model/validation.js.map +1 -1
  31. package/lib/esm/overrides/Metadata.d.ts +128 -0
  32. package/lib/esm/overrides/Metadata.js +2 -0
  33. package/lib/esm/overrides/Metadata.js.map +1 -0
  34. package/lib/esm/overrides/index.d.ts +3 -0
  35. package/lib/esm/overrides/index.js +4 -0
  36. package/lib/esm/overrides/index.js.map +1 -0
  37. package/lib/esm/overrides/overrides.d.ts +1 -0
  38. package/lib/esm/overrides/overrides.js +79 -0
  39. package/lib/esm/overrides/overrides.js.map +1 -0
  40. package/lib/esm/overrides/types.d.ts +9 -0
  41. package/lib/esm/overrides/types.js +2 -0
  42. package/lib/esm/overrides/types.js.map +1 -0
  43. package/lib/esm/types/validation.d.ts +4 -2
  44. package/lib/esm/utils/constants.d.ts +4 -18
  45. package/lib/esm/utils/constants.js +4 -17
  46. package/lib/esm/utils/constants.js.map +1 -1
  47. package/lib/esm/utils/dates.d.ts +0 -1
  48. package/lib/esm/utils/dates.js +0 -1
  49. package/lib/esm/utils/dates.js.map +1 -1
  50. package/lib/esm/utils/equality.d.ts +56 -0
  51. package/lib/esm/utils/equality.js +160 -0
  52. package/lib/esm/utils/equality.js.map +1 -0
  53. package/lib/esm/utils/index.d.ts +1 -2
  54. package/lib/esm/utils/index.js +1 -2
  55. package/lib/esm/utils/index.js.map +1 -1
  56. package/lib/esm/utils/registry.d.ts +1 -1
  57. package/lib/esm/utils/serialization.d.ts +2 -2
  58. package/lib/esm/utils/serialization.js +10 -2
  59. package/lib/esm/utils/serialization.js.map +1 -1
  60. package/lib/esm/utils/types.d.ts +0 -102
  61. package/lib/esm/validation/Validation.d.ts +2 -3
  62. package/lib/esm/validation/Validation.js +11 -6
  63. package/lib/esm/validation/Validation.js.map +1 -1
  64. package/lib/esm/validation/Validators/BaseValidator.js +7 -3
  65. package/lib/esm/validation/Validators/BaseValidator.js.map +1 -1
  66. package/lib/esm/validation/Validators/DiffValidator.js +1 -1
  67. package/lib/esm/validation/Validators/DiffValidator.js.map +1 -1
  68. package/lib/esm/validation/Validators/EqualsValidator.js +1 -1
  69. package/lib/esm/validation/Validators/EqualsValidator.js.map +1 -1
  70. package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.js +1 -1
  71. package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.js.map +1 -1
  72. package/lib/esm/validation/Validators/LessThanOrEqualValidator.js +1 -1
  73. package/lib/esm/validation/Validators/LessThanOrEqualValidator.js.map +1 -1
  74. package/lib/esm/validation/Validators/ListValidator.js +4 -4
  75. package/lib/esm/validation/Validators/ListValidator.js.map +1 -1
  76. package/lib/esm/validation/Validators/MaxLengthValidator.js +3 -2
  77. package/lib/esm/validation/Validators/MaxLengthValidator.js.map +1 -1
  78. package/lib/esm/validation/Validators/MaxValidator.js +1 -1
  79. package/lib/esm/validation/Validators/MaxValidator.js.map +1 -1
  80. package/lib/esm/validation/Validators/MinLengthValidator.js +3 -2
  81. package/lib/esm/validation/Validators/MinLengthValidator.js.map +1 -1
  82. package/lib/esm/validation/Validators/MinValidator.js +1 -1
  83. package/lib/esm/validation/Validators/MinValidator.js.map +1 -1
  84. package/lib/esm/validation/Validators/OptionValidator.d.ts +29 -0
  85. package/lib/esm/validation/Validators/OptionValidator.js +61 -0
  86. package/lib/esm/validation/Validators/OptionValidator.js.map +1 -0
  87. package/lib/esm/validation/Validators/TypeValidator.js +2 -2
  88. package/lib/esm/validation/Validators/TypeValidator.js.map +1 -1
  89. package/lib/esm/validation/Validators/constants.d.ts +2 -1
  90. package/lib/esm/validation/Validators/constants.js +3 -2
  91. package/lib/esm/validation/Validators/constants.js.map +1 -1
  92. package/lib/esm/validation/Validators/decorators.d.ts +1 -1
  93. package/lib/esm/validation/Validators/decorators.js +2 -2
  94. package/lib/esm/validation/Validators/decorators.js.map +1 -1
  95. package/lib/esm/validation/Validators/index.d.ts +1 -0
  96. package/lib/esm/validation/Validators/index.js +1 -0
  97. package/lib/esm/validation/Validators/index.js.map +1 -1
  98. package/lib/esm/validation/Validators/utils.d.ts +33 -0
  99. package/lib/esm/validation/Validators/utils.js +62 -0
  100. package/lib/esm/validation/Validators/utils.js.map +1 -1
  101. package/lib/esm/validation/decorators.d.ts +28 -17
  102. package/lib/esm/validation/decorators.js +86 -55
  103. package/lib/esm/validation/decorators.js.map +1 -1
  104. package/lib/esm/validation/types.d.ts +15 -5
  105. package/lib/esm/validation/types.js.map +1 -1
  106. package/lib/index.cjs +2 -1
  107. package/lib/index.d.ts +2 -1
  108. package/lib/index.js.map +1 -1
  109. package/lib/model/Builder.cjs +399 -128
  110. package/lib/model/Builder.d.ts +84 -0
  111. package/lib/model/Builder.js.map +1 -1
  112. package/lib/model/Model.cjs +114 -107
  113. package/lib/model/Model.d.ts +21 -19
  114. package/lib/model/Model.js.map +1 -1
  115. package/lib/model/constants.cjs +8 -9
  116. package/lib/model/constants.d.ts +8 -8
  117. package/lib/model/constants.js.map +1 -1
  118. package/lib/model/decorators.cjs +4 -39
  119. package/lib/model/decorators.d.ts +2 -12
  120. package/lib/model/decorators.js.map +1 -1
  121. package/lib/model/index.cjs +1 -0
  122. package/lib/model/index.d.ts +1 -0
  123. package/lib/model/index.js.map +1 -1
  124. package/lib/model/types.d.ts +0 -12
  125. package/lib/model/utils.cjs +0 -12
  126. package/lib/model/utils.d.ts +0 -3
  127. package/lib/model/utils.js.map +1 -1
  128. package/lib/model/validation.cjs +30 -108
  129. package/lib/model/validation.d.ts +4 -37
  130. package/lib/model/validation.js.map +1 -1
  131. package/lib/overrides/Metadata.cjs +3 -0
  132. package/lib/overrides/Metadata.d.ts +128 -0
  133. package/lib/overrides/Metadata.js.map +1 -0
  134. package/lib/overrides/index.cjs +20 -0
  135. package/lib/overrides/index.d.ts +3 -0
  136. package/lib/overrides/index.js.map +1 -0
  137. package/lib/overrides/overrides.cjs +81 -0
  138. package/lib/overrides/overrides.d.ts +1 -0
  139. package/lib/overrides/overrides.js.map +1 -0
  140. package/lib/overrides/types.cjs +3 -0
  141. package/lib/overrides/types.d.ts +9 -0
  142. package/lib/overrides/types.js.map +1 -0
  143. package/lib/types/validation.d.ts +4 -2
  144. package/lib/utils/constants.cjs +5 -18
  145. package/lib/utils/constants.d.ts +4 -18
  146. package/lib/utils/constants.js.map +1 -1
  147. package/lib/utils/dates.cjs +0 -1
  148. package/lib/utils/dates.d.ts +0 -1
  149. package/lib/utils/dates.js.map +1 -1
  150. package/lib/utils/equality.cjs +163 -0
  151. package/lib/utils/equality.d.ts +56 -0
  152. package/lib/utils/equality.js.map +1 -0
  153. package/lib/utils/index.cjs +1 -2
  154. package/lib/utils/index.d.ts +1 -2
  155. package/lib/utils/index.js.map +1 -1
  156. package/lib/utils/registry.d.ts +1 -1
  157. package/lib/utils/serialization.cjs +10 -2
  158. package/lib/utils/serialization.d.ts +2 -2
  159. package/lib/utils/serialization.js.map +1 -1
  160. package/lib/utils/types.d.ts +0 -102
  161. package/lib/validation/Validation.cjs +11 -6
  162. package/lib/validation/Validation.d.ts +2 -3
  163. package/lib/validation/Validation.js.map +1 -1
  164. package/lib/validation/Validators/BaseValidator.cjs +7 -3
  165. package/lib/validation/Validators/BaseValidator.js.map +1 -1
  166. package/lib/validation/Validators/DiffValidator.cjs +2 -2
  167. package/lib/validation/Validators/DiffValidator.js.map +1 -1
  168. package/lib/validation/Validators/EqualsValidator.cjs +2 -2
  169. package/lib/validation/Validators/EqualsValidator.js.map +1 -1
  170. package/lib/validation/Validators/GreaterThanOrEqualValidator.cjs +2 -2
  171. package/lib/validation/Validators/GreaterThanOrEqualValidator.js.map +1 -1
  172. package/lib/validation/Validators/LessThanOrEqualValidator.cjs +2 -2
  173. package/lib/validation/Validators/LessThanOrEqualValidator.js.map +1 -1
  174. package/lib/validation/Validators/ListValidator.cjs +4 -4
  175. package/lib/validation/Validators/ListValidator.js.map +1 -1
  176. package/lib/validation/Validators/MaxLengthValidator.cjs +3 -2
  177. package/lib/validation/Validators/MaxLengthValidator.js.map +1 -1
  178. package/lib/validation/Validators/MaxValidator.cjs +1 -1
  179. package/lib/validation/Validators/MaxValidator.js.map +1 -1
  180. package/lib/validation/Validators/MinLengthValidator.cjs +3 -2
  181. package/lib/validation/Validators/MinLengthValidator.js.map +1 -1
  182. package/lib/validation/Validators/MinValidator.cjs +1 -1
  183. package/lib/validation/Validators/MinValidator.js.map +1 -1
  184. package/lib/validation/Validators/OptionValidator.cjs +64 -0
  185. package/lib/validation/Validators/OptionValidator.d.ts +29 -0
  186. package/lib/validation/Validators/OptionValidator.js.map +1 -0
  187. package/lib/validation/Validators/TypeValidator.cjs +2 -2
  188. package/lib/validation/Validators/TypeValidator.js.map +1 -1
  189. package/lib/validation/Validators/constants.cjs +5 -4
  190. package/lib/validation/Validators/constants.d.ts +2 -1
  191. package/lib/validation/Validators/constants.js.map +1 -1
  192. package/lib/validation/Validators/decorators.cjs +3 -3
  193. package/lib/validation/Validators/decorators.d.ts +1 -1
  194. package/lib/validation/Validators/decorators.js.map +1 -1
  195. package/lib/validation/Validators/index.cjs +1 -0
  196. package/lib/validation/Validators/index.d.ts +1 -0
  197. package/lib/validation/Validators/index.js.map +1 -1
  198. package/lib/validation/Validators/utils.cjs +66 -0
  199. package/lib/validation/Validators/utils.d.ts +33 -0
  200. package/lib/validation/Validators/utils.js.map +1 -1
  201. package/lib/validation/decorators.cjs +102 -69
  202. package/lib/validation/decorators.d.ts +28 -17
  203. package/lib/validation/decorators.js.map +1 -1
  204. package/lib/validation/types.d.ts +15 -5
  205. package/lib/validation/types.js.map +1 -1
  206. package/package.json +2 -3
  207. package/lib/esm/utils/Decoration.d.ts +0 -135
  208. package/lib/esm/utils/Decoration.js +0 -227
  209. package/lib/esm/utils/Decoration.js.map +0 -1
  210. package/lib/esm/utils/decorators.d.ts +0 -38
  211. package/lib/esm/utils/decorators.js +0 -64
  212. package/lib/esm/utils/decorators.js.map +0 -1
  213. package/lib/utils/Decoration.cjs +0 -231
  214. package/lib/utils/Decoration.d.ts +0 -135
  215. package/lib/utils/Decoration.js.map +0 -1
  216. package/lib/utils/decorators.cjs +0 -68
  217. package/lib/utils/decorators.d.ts +0 -38
  218. package/lib/utils/decorators.js.map +0 -1
@@ -0,0 +1,128 @@
1
+ import { Model } from "../model/Model";
2
+ import { Constructor } from "@decaf-ts/decoration";
3
+ import { designTypeReturn, ExtendedMetadata } from "./types";
4
+ import { ValidationMetadata } from "../validation/index";
5
+ declare module "@decaf-ts/decoration" {
6
+ namespace Metadata {
7
+ /**
8
+ * @description Retrieves validation metadata for a specific property of a model
9
+ * @summary Fetches validation rules and constraints that were applied to a property
10
+ * via decorators. The optional key parameter allows drilling down to specific
11
+ * validation types (e.g., 'required', 'min', 'max').
12
+ *
13
+ * @template M - The model type extending from Model
14
+ * @param {Constructor<M>} model - The constructor of the target model class
15
+ * @param {keyof M} property - The property name to retrieve validation for
16
+ * @param {string} [key] - Optional specific validation key to retrieve (e.g., 'required', 'pattern')
17
+ * @return {any} The validation metadata object or value at the specified key
18
+ *
19
+ * @example
20
+ * class User extends Model {
21
+ * @required()
22
+ * @maxLength(100)
23
+ * name!: string;
24
+ * }
25
+ *
26
+ * // Get all validation metadata for 'name'
27
+ * const validations = Metadata.validationFor(User, 'name');
28
+ *
29
+ * // Get specific validation metadata
30
+ * const required = Metadata.validationFor(User, 'name', 'required');
31
+ */
32
+ function validationFor<M extends Model, P extends keyof M = keyof M, K extends string = string>(this: Metadata, model: Constructor<M>, property?: keyof M, key?: string): (K extends string ? ValidationMetadata : P extends keyof M ? Record<string, ValidationMetadata> : Record<keyof M, Record<string, ValidationMetadata>>) | undefined;
33
+ /**
34
+ * @description Retrieves all validatable for a model
35
+ * @param model
36
+ */
37
+ function validatableProperties<M extends Model>(model: Constructor<M>, ...propsToIgnore: string[]): string[];
38
+ /**
39
+ * @description Retrieves extended metadata for a model or a specific key within it
40
+ * @summary When called with a constructor only, returns the entire metadata object
41
+ * associated with the model, including validation rules, property types, relationships,
42
+ * and other decorator-applied metadata. This override extends the base Metadata.get
43
+ * method with type-safe support for ExtendedMetadata.
44
+ *
45
+ * @template M - The model type
46
+ * @template META - The extended metadata type, defaults to ExtendedMetadata<M>
47
+ * @param {Constructor<M>} model - The target constructor used to locate the metadata record
48
+ * @param {keyof M} prop - Optional property of the model.
49
+ * @return {META|undefined} The complete metadata object for the model, or undefined if no metadata exists
50
+ *
51
+ * @example
52
+ * class Article extends Model {
53
+ * @pk()
54
+ * @type(Number)
55
+ * id!: number;
56
+ *
57
+ * @required()
58
+ * @maxLength(200)
59
+ * title!: string;
60
+ *
61
+ * @oneToMany(() => Comment, { update: true, delete: true }, true)
62
+ * comments!: Comment[];
63
+ * }
64
+ *
65
+ * // Get all metadata for the Article model
66
+ * const metadata = Metadata.get<Article>(Article);
67
+ * // metadata contains:
68
+ * // - property definitions
69
+ * // - validation rules
70
+ * // - relationship mappings
71
+ * // - primary key information
72
+ * // - column mappings
73
+ *
74
+ * @remarks
75
+ * The @ts-expect-error directive is used because this declaration intentionally
76
+ * overrides the signature from the base module to provide enhanced type information
77
+ * specific to the decorator-validation system.
78
+ */
79
+ function get<M, META extends ExtendedMetadata<M> = ExtendedMetadata<M>>(model: Constructor<M>, prop?: keyof M): META | undefined;
80
+ /**
81
+ * @description Retrieves the original constructor name for a model
82
+ * @summary Fetches the original constructor name for a model from the metadata of a model.
83
+ *
84
+ * @template M - The model type extending from Model
85
+ * @param {Constructor<M>} model - The constructor of the target model class
86
+ * @return {string} The metadata object or value
87
+ *
88
+ * @example
89
+ * class User extends Model {
90
+ *
91
+ * // Get the constructor name for 'User'
92
+ * const constName = Metadata.modelName(User);
93
+ */
94
+ function modelName<M>(model: Constructor<M>): string;
95
+ /**
96
+ * @description Retrieves all allowed types for a model or a property
97
+ * @summary Retrieves all allowed types for a model or a property from it's metadata.
98
+ *
99
+ * @template M - The model type extending from Model
100
+ * @param {Constructor<M>} model - The constructor of the target model class
101
+ * @param {keyof M} property - The property name to retrieve validation for
102
+ * @return {any[]} An array of the allowed types
103
+ *
104
+ * @example
105
+ * class User extends Model {
106
+ *
107
+ * // Get all validation metadata for 'User'
108
+ * const allowedTypes = Metadata.meallowedTypestadata(User);
109
+ */
110
+ function allowedTypes<M>(model: Constructor<M>, property?: keyof M): any[];
111
+ /**
112
+ * @description Retrieves all allowed types for a model or a property
113
+ * @summary Retrieves all allowed types for a model or a property from it's metadata.
114
+ *
115
+ * @template model - The model type extending from Model
116
+ * @param {Constructor<M>} model - The constructor of the target model class
117
+ * @param {keyof M} property - The property name to retrieve validation for
118
+ * @return {designTypeReturn} An object of the designtypes
119
+ *
120
+ * @example
121
+ * class User extends Model {
122
+ *
123
+ * // Get the designtypes for property name
124
+ * const { designTypes, designType } = Metadata.getPropDesignTypes(User.constructor, 'name');
125
+ */
126
+ function getPropDesignTypes<M>(model: Constructor<M>, property: keyof M): designTypeReturn;
127
+ }
128
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../src/overrides/Metadata.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Metadata.cjs"), exports);
18
+ __exportStar(require("./overrides.cjs"), exports);
19
+ __exportStar(require("./types.cjs"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ export * from "./Metadata";
2
+ export * from "./overrides";
3
+ export * from "./types";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/overrides/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA2B;AAC3B,kDAA4B;AAC5B,8CAAwB"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("./Metadata.cjs");
4
+ const decoration_1 = require("@decaf-ts/decoration");
5
+ const Model_1 = require("./../model/Model.cjs");
6
+ const constants_1 = require("./../validation/Validators/constants.cjs");
7
+ const constants_2 = require("./../model/constants.cjs");
8
+ decoration_1.Metadata.validationFor = function (model, property, key) {
9
+ const meta = decoration_1.Metadata.get(model);
10
+ if (!meta)
11
+ return undefined;
12
+ if (!property)
13
+ return meta.validation;
14
+ if (!meta.validation)
15
+ return undefined;
16
+ if (!meta.validation[constants_1.ValidationKeys.TYPE]) {
17
+ const { designTypes } = decoration_1.Metadata.getPropDesignTypes(model, property);
18
+ // Adds by default the type validation
19
+ // If the designtypes is object, we exclude it. It causes problems with pks.
20
+ if (meta.validation[property] &&
21
+ designTypes?.length &&
22
+ designTypes[0] !== constants_2.ReservedModels.OBJECT)
23
+ meta.validation[property][constants_1.ValidationKeys.TYPE] = {
24
+ customTypes: designTypes,
25
+ message: constants_1.DEFAULT_ERROR_MESSAGES.TYPE,
26
+ description: "defines the accepted types for the attribute",
27
+ async: false,
28
+ };
29
+ }
30
+ if (!key) {
31
+ const validationsForProp = meta.validation[property];
32
+ return validationsForProp;
33
+ }
34
+ const propValidation = meta.validation[property];
35
+ if (!propValidation)
36
+ return undefined;
37
+ return propValidation[key];
38
+ }.bind(decoration_1.Metadata);
39
+ decoration_1.Metadata.modelName = function (model) {
40
+ const constr = decoration_1.Metadata.constr(model);
41
+ return constr ? constr.name : model.name;
42
+ }.bind(decoration_1.Metadata);
43
+ decoration_1.Metadata.validatableProperties = function (model, ...propsToIgnore) {
44
+ const metavalidation = decoration_1.Metadata.validationFor(model);
45
+ const keys = metavalidation ? Object.keys(metavalidation) : [];
46
+ const props = [...new Set([...Model_1.Model.getAttributes(model), ...keys])];
47
+ return props.filter((k) => !propsToIgnore || !propsToIgnore?.includes(k));
48
+ }.bind(decoration_1.Metadata);
49
+ decoration_1.Metadata.allowedTypes = function (model, prop) {
50
+ const designType = decoration_1.Metadata.type(model, prop);
51
+ if (!designType)
52
+ throw new Error(`No metadata found for property ${String(prop)}`);
53
+ const validation = decoration_1.Metadata.validationFor(model, prop);
54
+ // TODO: CHeck why some are not iterable
55
+ return validation &&
56
+ validation[constants_1.ValidationKeys.TYPE] &&
57
+ typeof validation[constants_1.ValidationKeys.TYPE]?.customTypes[Symbol.iterator] ===
58
+ "function"
59
+ ? [...validation[constants_1.ValidationKeys.TYPE].customTypes]
60
+ : [designType];
61
+ }.bind(decoration_1.Metadata);
62
+ decoration_1.Metadata.getPropDesignTypes = function (model, prop) {
63
+ const metadata = decoration_1.Metadata.get(model);
64
+ const designTypeMeta = decoration_1.Metadata.type(model, prop);
65
+ const validation = metadata?.[constants_1.ValidationKeys.REFLECT]?.[prop];
66
+ if (!designTypeMeta && (!validation || !validation[constants_1.ValidationKeys.TYPE]))
67
+ return {};
68
+ const propTypes = validation && validation[constants_1.ValidationKeys.TYPE]
69
+ ? [validation[constants_1.ValidationKeys.TYPE].customTypes]
70
+ : [designTypeMeta];
71
+ if (!propTypes?.length)
72
+ return {};
73
+ const designTypeDec = propTypes[0];
74
+ const designType = designTypeDec.class ||
75
+ designTypeDec.clazz ||
76
+ designTypeDec.customTypes ||
77
+ designTypeDec;
78
+ const designTypes = (Array.isArray(designType) ? designType : [designType]).map((e) => (e = typeof e === "function" && !e.name ? e() : e));
79
+ return { designTypes, designType };
80
+ }.bind(decoration_1.Metadata);
81
+ //# sourceMappingURL=overrides.js.map
@@ -0,0 +1 @@
1
+ import "./Metadata";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/overrides/overrides.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,9 @@
1
+ import { BasicMetadata } from "@decaf-ts/decoration";
2
+ import { ValidatorOptions } from "../validation/index";
3
+ export type ExtendedMetadata<M> = BasicMetadata<M> & {
4
+ validation: Record<keyof M, ValidatorOptions>;
5
+ };
6
+ export type designTypeReturn = {
7
+ designTypes: any[];
8
+ designType: any;
9
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/overrides/types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,3 @@
1
- import { DecoratorMetadata } from "@decaf-ts/reflection";
2
1
  import { Model } from "../model/Model";
3
2
  import { ModelErrorDefinition } from "../model/ModelErrorDefinition";
4
3
  /**
@@ -20,7 +19,10 @@ import { ModelErrorDefinition } from "../model/ModelErrorDefinition";
20
19
  * @memberOf module:decorator-validation
21
20
  */
22
21
  export type ConditionalAsync<Async extends boolean, T> = Async extends true ? Promise<T> : T;
23
- export type DecoratorMetadataAsync = DecoratorMetadata & {
22
+ export type DecoratorMetadataAsync = {
24
23
  async?: boolean;
25
24
  };
25
+ /**
26
+ * @deprecated
27
+ */
26
28
  export type ModelConditionalAsync<M> = M extends Model<true> ? Promise<ModelErrorDefinition | undefined> : ModelErrorDefinition | undefined;
@@ -1,16 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultFlavour = exports.ModelKeys = void 0;
3
+ exports.ModelKeys = void 0;
4
+ const decoration_1 = require("@decaf-ts/decoration");
4
5
  /**
5
6
  * @description Enum containing metadata keys used for reflection in the model system
6
7
  * @summary Defines the various Model keys used for reflection and metadata storage.
7
8
  * These keys are used throughout the library to store and retrieve metadata about models,
8
9
  * their properties, and their behavior.
9
10
  *
10
- * @property {string} REFLECT - Prefix to all other keys, used as a namespace
11
11
  * @property {string} TYPE - Key for storing design type information
12
- * @property {string} PARAMS - Key for storing method parameter types
13
- * @property {string} RETURN - Key for storing method return type
14
12
  * @property {string} MODEL - Key for identifying model metadata
15
13
  * @property {string} ANCHOR - Anchor key that serves as a ghost property in the model
16
14
  * @property {string} CONSTRUCTION - Key for storing construction information
@@ -25,26 +23,15 @@ exports.DefaultFlavour = exports.ModelKeys = void 0;
25
23
  */
26
24
  var ModelKeys;
27
25
  (function (ModelKeys) {
28
- ModelKeys["REFLECT"] = "decaf.model.";
29
- ModelKeys["DESCRIPTION"] = "decaf.description.";
26
+ ModelKeys["DESCRIPTION"] = "description";
30
27
  ModelKeys["TYPE"] = "design:type";
31
- ModelKeys["PARAMS"] = "design:paramtypes";
32
- ModelKeys["RETURN"] = "design:returntype";
33
28
  ModelKeys["MODEL"] = "model";
34
29
  ModelKeys["ANCHOR"] = "__model";
35
30
  ModelKeys["CONSTRUCTION"] = "constructed-by";
36
31
  ModelKeys["ATTRIBUTE"] = "__attributes";
37
32
  ModelKeys["HASHING"] = "hashing";
38
33
  ModelKeys["SERIALIZATION"] = "serialization";
34
+ ModelKeys["DECORATORS"] = "decorators";
35
+ ModelKeys["CONSTRUCTOR"] = "__original";
39
36
  })(ModelKeys || (exports.ModelKeys = ModelKeys = {}));
40
- /**
41
- * @description Default flavour identifier for the decorator system
42
- * @summary Defines the default flavour used by the Decoration class when no specific flavour is provided.
43
- * This constant is used throughout the library as the fallback flavour for decorators.
44
- *
45
- * @const {string}
46
- * @memberOf module:decorator-validation
47
- * @category Model
48
- */
49
- exports.DefaultFlavour = "decaf";
50
37
  //# sourceMappingURL=constants.js.map
@@ -4,10 +4,7 @@
4
4
  * These keys are used throughout the library to store and retrieve metadata about models,
5
5
  * their properties, and their behavior.
6
6
  *
7
- * @property {string} REFLECT - Prefix to all other keys, used as a namespace
8
7
  * @property {string} TYPE - Key for storing design type information
9
- * @property {string} PARAMS - Key for storing method parameter types
10
- * @property {string} RETURN - Key for storing method return type
11
8
  * @property {string} MODEL - Key for identifying model metadata
12
9
  * @property {string} ANCHOR - Anchor key that serves as a ghost property in the model
13
10
  * @property {string} CONSTRUCTION - Key for storing construction information
@@ -21,25 +18,14 @@
21
18
  * @category Model
22
19
  */
23
20
  export declare enum ModelKeys {
24
- REFLECT = "decaf.model.",
25
- DESCRIPTION = "decaf.description.",
21
+ DESCRIPTION = "description",
26
22
  TYPE = "design:type",
27
- PARAMS = "design:paramtypes",
28
- RETURN = "design:returntype",
29
23
  MODEL = "model",
30
24
  ANCHOR = "__model",
31
25
  CONSTRUCTION = "constructed-by",
32
26
  ATTRIBUTE = "__attributes",
33
27
  HASHING = "hashing",
34
- SERIALIZATION = "serialization"
28
+ SERIALIZATION = "serialization",
29
+ DECORATORS = "decorators",
30
+ CONSTRUCTOR = "__original"
35
31
  }
36
- /**
37
- * @description Default flavour identifier for the decorator system
38
- * @summary Defines the default flavour used by the Decoration class when no specific flavour is provided.
39
- * This constant is used throughout the library as the fallback flavour for decorators.
40
- *
41
- * @const {string}
42
- * @memberOf module:decorator-validation
43
- * @category Model
44
- */
45
- export declare const DefaultFlavour = "decaf";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,IAAY,SAYX;AAZD,WAAY,SAAS;IACnB,qCAAwB,CAAA;IACxB,+CAAkC,CAAA;IAClC,iCAAoB,CAAA;IACpB,yCAA4B,CAAA;IAC5B,yCAA4B,CAAA;IAC5B,4BAAe,CAAA;IACf,+BAAkB,CAAA;IAClB,4CAA+B,CAAA;IAC/B,uCAA0B,CAAA;IAC1B,gCAAmB,CAAA;IACnB,4CAA+B,CAAA;AACjC,CAAC,EAZW,SAAS,yBAAT,SAAS,QAYpB;AAED;;;;;;;;GAQG;AACU,QAAA,cAAc,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":";;;AAAA,qDAAsD;AACtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,wCAA6C,CAAA;IAC7C,iCAAsC,CAAA;IACtC,4BAAe,CAAA;IACf,+BAAkB,CAAA;IAClB,4CAA+B,CAAA;IAC/B,uCAA0B,CAAA;IAC1B,gCAAmB,CAAA;IACnB,4CAA+B,CAAA;IAC/B,sCAAyB,CAAA;IACzB,uCAA6C,CAAA;AAC/C,CAAC,EAXW,SAAS,yBAAT,SAAS,QAWpB"}
@@ -6,7 +6,6 @@ exports.isValidDate = isValidDate;
6
6
  exports.twoDigitPad = twoDigitPad;
7
7
  exports.formatDate = formatDate;
8
8
  exports.parseDate = parseDate;
9
- require("reflect-metadata");
10
9
  const constants_1 = require("./../validation/Validators/constants.cjs");
11
10
  const strings_1 = require("./strings.cjs");
12
11
  /**
@@ -1,4 +1,3 @@
1
- import "reflect-metadata";
2
1
  /**
3
2
  * @summary Reverses the process from {@link formatDate}
4
3
  *
@@ -1 +1 @@
1
- {"version":3,"file":"dates.js","sourceRoot":"","sources":["../../src/utils/dates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dates.js","sourceRoot":"","sources":["../../src/utils/dates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isEqual = isEqual;
4
+ /**
5
+ * @description Enhanced algorithm for deep comparison of any two values with optional ignored properties
6
+ * @summary Performs a deep equality check between two values, handling various types including primitives, objects, arrays, dates, and more
7
+ * @param {unknown} a - First value to compare
8
+ * @param {unknown} b - Second value to compare
9
+ * @param {string[]} propsToIgnore - A list of property names to ignore during comparison
10
+ * @return {boolean} Returns true if the values are deeply equal, false otherwise
11
+ * @function isEqual
12
+ * @mermaid
13
+ * sequenceDiagram
14
+ * participant Caller
15
+ * participant isEqual
16
+ * participant Recursion
17
+ *
18
+ * Caller->>isEqual: isEqual(a, b, propsToIgnore)
19
+ * Note over isEqual: Check simple cases (identity, null, primitives)
20
+ *
21
+ * alt a === b
22
+ * isEqual-->>Caller: true (with special case for +0/-0)
23
+ * else a or b is null
24
+ * isEqual-->>Caller: a === b
25
+ * else different types
26
+ * isEqual-->>Caller: false
27
+ * else both NaN
28
+ * isEqual-->>Caller: true
29
+ * else primitive types
30
+ * isEqual-->>Caller: a === b
31
+ * else both Date objects
32
+ * isEqual-->>Caller: Compare timestamps
33
+ * else both RegExp objects
34
+ * isEqual-->>Caller: Compare string representations
35
+ * else both Error objects
36
+ * isEqual-->>Caller: Compare name and message
37
+ * else both Arrays
38
+ * Note over isEqual: Check length
39
+ * loop For each element
40
+ * isEqual->>Recursion: isEqual(a[i], b[i], propsToIgnore)
41
+ * end
42
+ * else both Maps or Sets
43
+ * Note over isEqual: Compare size and entries
44
+ * else both TypedArrays
45
+ * Note over isEqual: Compare byte by byte
46
+ * else both Objects
47
+ * Note over isEqual: Filter keys by propsToIgnore
48
+ * Note over isEqual: Compare key counts
49
+ * loop For each key
50
+ * isEqual->>Recursion: isEqual(a[key], b[key], propsToIgnore)
51
+ * end
52
+ * Note over isEqual: Check Symbol properties
53
+ * Note over isEqual: Compare prototypes
54
+ * end
55
+ *
56
+ * isEqual-->>Caller: Comparison result
57
+ * @memberOf module:decorator-validation
58
+ */
59
+ function isEqual(a, b, ...propsToIgnore) {
60
+ // Handle simple cases
61
+ if (a === b) {
62
+ // Special case for +0 and -0
63
+ return a !== 0 || 1 / a === 1 / b;
64
+ }
65
+ if (a == null || b == null)
66
+ return a === b;
67
+ if (typeof a !== typeof b)
68
+ return false;
69
+ // Handle NaN
70
+ if (Number.isNaN(a) && Number.isNaN(b))
71
+ return true;
72
+ // Handle primitive types
73
+ if (typeof a !== "object")
74
+ return a === b;
75
+ // Handle Date objects
76
+ if (a instanceof Date && b instanceof Date) {
77
+ // Check if both dates are invalid
78
+ if (isNaN(a.getTime()) && isNaN(b.getTime()))
79
+ return true;
80
+ return a.getTime() === b.getTime();
81
+ }
82
+ // Handle RegExp objects
83
+ if (a instanceof RegExp && b instanceof RegExp)
84
+ return a.toString() === b.toString();
85
+ // Handle Error objects
86
+ if (a instanceof Error && b instanceof Error) {
87
+ return a.name === b.name && a.message === b.message;
88
+ }
89
+ // Handle Array objects
90
+ if (Array.isArray(a) && Array.isArray(b)) {
91
+ if (a.length !== b.length)
92
+ return false;
93
+ for (let i = 0; i < a.length; i++) {
94
+ if (!isEqual(a[i], b[i], ...propsToIgnore))
95
+ return false;
96
+ }
97
+ return true;
98
+ }
99
+ // Handle Map objects
100
+ if (a instanceof Map && b instanceof Map) {
101
+ if (a.size !== b.size)
102
+ return false;
103
+ for (const [key, value] of a) {
104
+ if (!b.has(key) || !isEqual(value, b.get(key), ...propsToIgnore))
105
+ return false;
106
+ }
107
+ return true;
108
+ }
109
+ // Handle Set objects
110
+ if (a instanceof Set && b instanceof Set) {
111
+ if (a.size !== b.size)
112
+ return false;
113
+ for (const item of a) {
114
+ if (!b.has(item))
115
+ return false;
116
+ }
117
+ return true;
118
+ }
119
+ // Handle TypedArray objects
120
+ if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
121
+ if (a.byteLength !== b.byteLength)
122
+ return false;
123
+ if (a.byteOffset !== b.byteOffset)
124
+ return false;
125
+ if (a.buffer.byteLength !== b.buffer.byteLength)
126
+ return false;
127
+ const uint8A = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
128
+ const uint8B = new Uint8Array(b.buffer, b.byteOffset, b.byteLength);
129
+ for (let i = 0; i < uint8A.length; i++) {
130
+ if (uint8A[i] !== uint8B[i])
131
+ return false;
132
+ }
133
+ return true;
134
+ }
135
+ // Handle other objects
136
+ const aKeys = Object.keys(a).filter((k) => !propsToIgnore.includes(k));
137
+ const bKeys = Object.keys(b).filter((k) => !propsToIgnore.includes(k));
138
+ if (aKeys.length !== bKeys.length)
139
+ return false;
140
+ for (const key of aKeys) {
141
+ if (!bKeys.includes(key))
142
+ return false;
143
+ if (!isEqual(a[key], b[key], ...propsToIgnore))
144
+ return false;
145
+ }
146
+ // Handle Symbol properties
147
+ const aSymbols = Object.getOwnPropertySymbols(a).filter((s) => !propsToIgnore.includes(s.toString()));
148
+ const bSymbols = Object.getOwnPropertySymbols(b).filter((s) => !propsToIgnore.includes(s.toString()));
149
+ if (aSymbols.length !== bSymbols.length)
150
+ return false;
151
+ for (const sym of aSymbols) {
152
+ if (!bSymbols.includes(sym))
153
+ return false;
154
+ if (!isEqual(a[sym], b[sym], ...propsToIgnore))
155
+ return false;
156
+ }
157
+ // Add this check right before the final return statement
158
+ if (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) {
159
+ return false;
160
+ }
161
+ return true;
162
+ }
163
+ //# sourceMappingURL=equality.js.map