@decaf-ts/decorator-validation 1.10.5 → 1.11.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 (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 +9 -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 +138 -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 +9 -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 +154 -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 @@
1
+ {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../src/overrides/overrides.ts"],"names":[],"mappings":"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"}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -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;
@@ -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,13 +1,11 @@
1
+ import { DecorationKeys } from "@decaf-ts/decoration";
1
2
  /**
2
3
  * @description Enum containing metadata keys used for reflection in the model system
3
4
  * @summary Defines the various Model keys used for reflection and metadata storage.
4
5
  * These keys are used throughout the library to store and retrieve metadata about models,
5
6
  * their properties, and their behavior.
6
7
  *
7
- * @property {string} REFLECT - Prefix to all other keys, used as a namespace
8
8
  * @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
9
  * @property {string} MODEL - Key for identifying model metadata
12
10
  * @property {string} ANCHOR - Anchor key that serves as a ghost property in the model
13
11
  * @property {string} CONSTRUCTION - Key for storing construction information
@@ -22,26 +20,15 @@
22
20
  */
23
21
  export var ModelKeys;
24
22
  (function (ModelKeys) {
25
- ModelKeys["REFLECT"] = "decaf.model.";
26
- ModelKeys["DESCRIPTION"] = "decaf.description.";
23
+ ModelKeys["DESCRIPTION"] = "description";
27
24
  ModelKeys["TYPE"] = "design:type";
28
- ModelKeys["PARAMS"] = "design:paramtypes";
29
- ModelKeys["RETURN"] = "design:returntype";
30
25
  ModelKeys["MODEL"] = "model";
31
26
  ModelKeys["ANCHOR"] = "__model";
32
27
  ModelKeys["CONSTRUCTION"] = "constructed-by";
33
28
  ModelKeys["ATTRIBUTE"] = "__attributes";
34
29
  ModelKeys["HASHING"] = "hashing";
35
30
  ModelKeys["SERIALIZATION"] = "serialization";
31
+ ModelKeys["DECORATORS"] = "decorators";
32
+ ModelKeys["CONSTRUCTOR"] = "__original";
36
33
  })(ModelKeys || (ModelKeys = {}));
37
- /**
38
- * @description Default flavour identifier for the decorator system
39
- * @summary Defines the default flavour used by the Decoration class when no specific flavour is provided.
40
- * This constant is used throughout the library as the fallback flavour for decorators.
41
- *
42
- * @const {string}
43
- * @memberOf module:decorator-validation
44
- * @category Model
45
- */
46
- export const DefaultFlavour = "decaf";
47
34
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAN,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,KAAT,SAAS,QAYpB;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAN,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,KAAT,SAAS,QAWpB"}
@@ -1,4 +1,3 @@
1
- import "reflect-metadata";
2
1
  /**
3
2
  * @summary Reverses the process from {@link formatDate}
4
3
  *
@@ -1,4 +1,3 @@
1
- import "reflect-metadata";
2
1
  import { DAYS_OF_WEEK_NAMES, MONTH_NAMES, } from "./../validation/Validators/constants.js";
3
2
  import { sf } from "./strings.js";
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,56 @@
1
+ /**
2
+ * @description Enhanced algorithm for deep comparison of any two values with optional ignored properties
3
+ * @summary Performs a deep equality check between two values, handling various types including primitives, objects, arrays, dates, and more
4
+ * @param {unknown} a - First value to compare
5
+ * @param {unknown} b - Second value to compare
6
+ * @param {string[]} propsToIgnore - A list of property names to ignore during comparison
7
+ * @return {boolean} Returns true if the values are deeply equal, false otherwise
8
+ * @function isEqual
9
+ * @mermaid
10
+ * sequenceDiagram
11
+ * participant Caller
12
+ * participant isEqual
13
+ * participant Recursion
14
+ *
15
+ * Caller->>isEqual: isEqual(a, b, propsToIgnore)
16
+ * Note over isEqual: Check simple cases (identity, null, primitives)
17
+ *
18
+ * alt a === b
19
+ * isEqual-->>Caller: true (with special case for +0/-0)
20
+ * else a or b is null
21
+ * isEqual-->>Caller: a === b
22
+ * else different types
23
+ * isEqual-->>Caller: false
24
+ * else both NaN
25
+ * isEqual-->>Caller: true
26
+ * else primitive types
27
+ * isEqual-->>Caller: a === b
28
+ * else both Date objects
29
+ * isEqual-->>Caller: Compare timestamps
30
+ * else both RegExp objects
31
+ * isEqual-->>Caller: Compare string representations
32
+ * else both Error objects
33
+ * isEqual-->>Caller: Compare name and message
34
+ * else both Arrays
35
+ * Note over isEqual: Check length
36
+ * loop For each element
37
+ * isEqual->>Recursion: isEqual(a[i], b[i], propsToIgnore)
38
+ * end
39
+ * else both Maps or Sets
40
+ * Note over isEqual: Compare size and entries
41
+ * else both TypedArrays
42
+ * Note over isEqual: Compare byte by byte
43
+ * else both Objects
44
+ * Note over isEqual: Filter keys by propsToIgnore
45
+ * Note over isEqual: Compare key counts
46
+ * loop For each key
47
+ * isEqual->>Recursion: isEqual(a[key], b[key], propsToIgnore)
48
+ * end
49
+ * Note over isEqual: Check Symbol properties
50
+ * Note over isEqual: Compare prototypes
51
+ * end
52
+ *
53
+ * isEqual-->>Caller: Comparison result
54
+ * @memberOf module:decorator-validation
55
+ */
56
+ export declare function isEqual(a: unknown, b: unknown, ...propsToIgnore: string[]): boolean;
@@ -0,0 +1,160 @@
1
+ /**
2
+ * @description Enhanced algorithm for deep comparison of any two values with optional ignored properties
3
+ * @summary Performs a deep equality check between two values, handling various types including primitives, objects, arrays, dates, and more
4
+ * @param {unknown} a - First value to compare
5
+ * @param {unknown} b - Second value to compare
6
+ * @param {string[]} propsToIgnore - A list of property names to ignore during comparison
7
+ * @return {boolean} Returns true if the values are deeply equal, false otherwise
8
+ * @function isEqual
9
+ * @mermaid
10
+ * sequenceDiagram
11
+ * participant Caller
12
+ * participant isEqual
13
+ * participant Recursion
14
+ *
15
+ * Caller->>isEqual: isEqual(a, b, propsToIgnore)
16
+ * Note over isEqual: Check simple cases (identity, null, primitives)
17
+ *
18
+ * alt a === b
19
+ * isEqual-->>Caller: true (with special case for +0/-0)
20
+ * else a or b is null
21
+ * isEqual-->>Caller: a === b
22
+ * else different types
23
+ * isEqual-->>Caller: false
24
+ * else both NaN
25
+ * isEqual-->>Caller: true
26
+ * else primitive types
27
+ * isEqual-->>Caller: a === b
28
+ * else both Date objects
29
+ * isEqual-->>Caller: Compare timestamps
30
+ * else both RegExp objects
31
+ * isEqual-->>Caller: Compare string representations
32
+ * else both Error objects
33
+ * isEqual-->>Caller: Compare name and message
34
+ * else both Arrays
35
+ * Note over isEqual: Check length
36
+ * loop For each element
37
+ * isEqual->>Recursion: isEqual(a[i], b[i], propsToIgnore)
38
+ * end
39
+ * else both Maps or Sets
40
+ * Note over isEqual: Compare size and entries
41
+ * else both TypedArrays
42
+ * Note over isEqual: Compare byte by byte
43
+ * else both Objects
44
+ * Note over isEqual: Filter keys by propsToIgnore
45
+ * Note over isEqual: Compare key counts
46
+ * loop For each key
47
+ * isEqual->>Recursion: isEqual(a[key], b[key], propsToIgnore)
48
+ * end
49
+ * Note over isEqual: Check Symbol properties
50
+ * Note over isEqual: Compare prototypes
51
+ * end
52
+ *
53
+ * isEqual-->>Caller: Comparison result
54
+ * @memberOf module:decorator-validation
55
+ */
56
+ export function isEqual(a, b, ...propsToIgnore) {
57
+ // Handle simple cases
58
+ if (a === b) {
59
+ // Special case for +0 and -0
60
+ return a !== 0 || 1 / a === 1 / b;
61
+ }
62
+ if (a == null || b == null)
63
+ return a === b;
64
+ if (typeof a !== typeof b)
65
+ return false;
66
+ // Handle NaN
67
+ if (Number.isNaN(a) && Number.isNaN(b))
68
+ return true;
69
+ // Handle primitive types
70
+ if (typeof a !== "object")
71
+ return a === b;
72
+ // Handle Date objects
73
+ if (a instanceof Date && b instanceof Date) {
74
+ // Check if both dates are invalid
75
+ if (isNaN(a.getTime()) && isNaN(b.getTime()))
76
+ return true;
77
+ return a.getTime() === b.getTime();
78
+ }
79
+ // Handle RegExp objects
80
+ if (a instanceof RegExp && b instanceof RegExp)
81
+ return a.toString() === b.toString();
82
+ // Handle Error objects
83
+ if (a instanceof Error && b instanceof Error) {
84
+ return a.name === b.name && a.message === b.message;
85
+ }
86
+ // Handle Array objects
87
+ if (Array.isArray(a) && Array.isArray(b)) {
88
+ if (a.length !== b.length)
89
+ return false;
90
+ for (let i = 0; i < a.length; i++) {
91
+ if (!isEqual(a[i], b[i], ...propsToIgnore))
92
+ return false;
93
+ }
94
+ return true;
95
+ }
96
+ // Handle Map objects
97
+ if (a instanceof Map && b instanceof Map) {
98
+ if (a.size !== b.size)
99
+ return false;
100
+ for (const [key, value] of a) {
101
+ if (!b.has(key) || !isEqual(value, b.get(key), ...propsToIgnore))
102
+ return false;
103
+ }
104
+ return true;
105
+ }
106
+ // Handle Set objects
107
+ if (a instanceof Set && b instanceof Set) {
108
+ if (a.size !== b.size)
109
+ return false;
110
+ for (const item of a) {
111
+ if (!b.has(item))
112
+ return false;
113
+ }
114
+ return true;
115
+ }
116
+ // Handle TypedArray objects
117
+ if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
118
+ if (a.byteLength !== b.byteLength)
119
+ return false;
120
+ if (a.byteOffset !== b.byteOffset)
121
+ return false;
122
+ if (a.buffer.byteLength !== b.buffer.byteLength)
123
+ return false;
124
+ const uint8A = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
125
+ const uint8B = new Uint8Array(b.buffer, b.byteOffset, b.byteLength);
126
+ for (let i = 0; i < uint8A.length; i++) {
127
+ if (uint8A[i] !== uint8B[i])
128
+ return false;
129
+ }
130
+ return true;
131
+ }
132
+ // Handle other objects
133
+ const aKeys = Object.keys(a).filter((k) => !propsToIgnore.includes(k));
134
+ const bKeys = Object.keys(b).filter((k) => !propsToIgnore.includes(k));
135
+ if (aKeys.length !== bKeys.length)
136
+ return false;
137
+ for (const key of aKeys) {
138
+ if (!bKeys.includes(key))
139
+ return false;
140
+ if (!isEqual(a[key], b[key], ...propsToIgnore))
141
+ return false;
142
+ }
143
+ // Handle Symbol properties
144
+ const aSymbols = Object.getOwnPropertySymbols(a).filter((s) => !propsToIgnore.includes(s.toString()));
145
+ const bSymbols = Object.getOwnPropertySymbols(b).filter((s) => !propsToIgnore.includes(s.toString()));
146
+ if (aSymbols.length !== bSymbols.length)
147
+ return false;
148
+ for (const sym of aSymbols) {
149
+ if (!bSymbols.includes(sym))
150
+ return false;
151
+ if (!isEqual(a[sym], b[sym], ...propsToIgnore))
152
+ return false;
153
+ }
154
+ // Add this check right before the final return statement
155
+ if (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) {
156
+ return false;
157
+ }
158
+ return true;
159
+ }
160
+ //# sourceMappingURL=equality.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equality.js","sourceRoot":"","sources":["../../../src/utils/equality.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  export * from "./constants";
2
2
  export * from "./dates";
3
- export * from "./Decoration";
4
- export * from "./decorators";
3
+ export * from "./equality";
5
4
  export * from "./hashing";
6
5
  export * from "./PathProxy";
7
6
  export * from "./registry";
@@ -1,7 +1,6 @@
1
1
  export * from "./constants.js";
2
2
  export * from "./dates.js";
3
- export * from "./Decoration.js";
4
- export * from "./decorators.js";
3
+ export * from "./equality.js";
5
4
  export * from "./hashing.js";
6
5
  export * from "./PathProxy.js";
7
6
  export * from "./registry.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAC5B,2BAAwB;AACxB,gCAA6B;AAC7B,gCAA6B;AAC7B,6BAA0B;AAC1B,+BAA4B;AAC5B,8BAA2B;AAC3B,mCAAgC;AAChC,6BAA0B;AAC1B,2BAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAC5B,2BAAwB;AACxB,8BAA2B;AAC3B,6BAA0B;AAC1B,+BAA4B;AAC5B,8BAA2B;AAC3B,mCAAgC;AAChC,6BAA0B;AAC1B,2BAAwB"}
@@ -1,4 +1,4 @@
1
- import { Constructor } from "../model/types";
1
+ import { Constructor } from "@decaf-ts/decoration";
2
2
  /**
3
3
  * @summary Basic interface for Registries
4
4
  *
@@ -1,4 +1,4 @@
1
- import { Constructor } from "../model/types";
1
+ import { Constructor } from "@decaf-ts/decoration";
2
2
  import { Serializer } from "./types";
3
3
  import { Model } from "../model/Model";
4
4
  export declare const DefaultSerializationMethod = "json";
@@ -15,7 +15,7 @@ export declare const DefaultSerializationMethod = "json";
15
15
  *
16
16
  * @category Model
17
17
  */
18
- export declare class JSONSerializer<T extends Model> implements Serializer<T> {
18
+ export declare class JSONSerializer<T extends Model<boolean>> implements Serializer<T> {
19
19
  constructor();
20
20
  /**
21
21
  * @summary prepares the model for serialization
@@ -1,6 +1,6 @@
1
+ import { Metadata } from "@decaf-ts/decoration";
1
2
  import { Model } from "./../model/Model.js";
2
3
  import { ModelKeys } from "./constants.js";
3
- import { getMetadata } from "./../model/utils.js";
4
4
  export const DefaultSerializationMethod = "json";
5
5
  /**
6
6
  * @summary Concrete implementation of a {@link Serializer} in JSON format
@@ -27,8 +27,16 @@ export class JSONSerializer {
27
27
  */
28
28
  preSerialize(model) {
29
29
  // TODO: nested preserialization (so increase performance when deserializing)
30
+ // TODO: Verify why there is no metadata
30
31
  const toSerialize = Object.assign({}, model);
31
- const metadata = getMetadata(model);
32
+ let metadata;
33
+ try {
34
+ metadata = Metadata.modelName(model.constructor);
35
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
36
+ }
37
+ catch (error) {
38
+ metadata = undefined;
39
+ }
32
40
  toSerialize[ModelKeys.ANCHOR] = metadata || model.constructor.name;
33
41
  return toSerialize;
34
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../../src/utils/serialization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../../src/utils/serialization.ts"],"names":[],"mappings":"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"}
@@ -1,106 +1,4 @@
1
1
  import { Model } from "../model";
2
- import { DecoratorData } from "./Decoration";
3
- /**
4
- * @description Interface for the final stage of the decoration builder pattern
5
- * @summary Represents the build stage of the decoration builder, providing the ability to apply
6
- * the configured decorator to a target. This is the final stage in the builder chain.
7
- *
8
- * @interface DecorationBuilderBuild
9
- * @memberOf module:decorator-validation
10
- * @category Model
11
- */
12
- export interface DecorationBuilderBuild {
13
- /**
14
- * @description Creates and returns the decorator function
15
- * @summary Finalizes the builder process and returns a decorator function that can be applied to a class,
16
- * property, or method.
17
- *
18
- * @returns {function} A decorator function that can be applied to a target
19
- */
20
- apply(): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
21
- }
22
- /**
23
- * @description Interface for the extension stage of the decoration builder pattern
24
- * @summary Represents the extension stage of the decoration builder, providing the ability to add
25
- * additional decorators to the existing configuration.
26
- *
27
- * @interface DecorationBuilderEnd
28
- * @memberOf module:decorator-validation
29
- * @category Model
30
- */
31
- export interface DecorationBuilderEnd {
32
- /**
33
- * @description Adds additional decorators to the existing configuration
34
- * @summary Extends the current decorator configuration with additional decorators.
35
- * This is useful for adding behavior to existing decorators.
36
- *
37
- * @param {...(ClassDecorator|PropertyDecorator|MethodDecorator)} decorators - Additional decorators to add
38
- * @returns {DecorationBuilderBuild} The build stage of the builder pattern
39
- */
40
- extend(...decorators: DecoratorData[]): DecorationBuilderBuild;
41
- }
42
- /**
43
- * @description Interface for the middle stage of the decoration builder pattern
44
- * @summary Represents the middle stage of the decoration builder, extending the end stage
45
- * and providing the ability to define the primary decorators for the configuration.
46
- *
47
- * @interface DecorationBuilderMid
48
- * @memberOf module:decorator-validation
49
- * @category Model
50
- */
51
- export interface DecorationBuilderMid extends DecorationBuilderEnd {
52
- /**
53
- * @description Defines the primary decorators for the configuration
54
- * @summary Sets the main decorators for the current context. This is typically
55
- * called after specifying the key with the 'for' method.
56
- */
57
- define(...decorators: DecoratorData[]): DecorationBuilderEnd & DecorationBuilderBuild;
58
- }
59
- /**
60
- * @description Interface for the starting stage of the decoration builder pattern
61
- * @summary Represents the initial stage of the decoration builder, providing the entry point
62
- * for the builder pattern by specifying the key for the decorator.
63
- *
64
- * @interface DecorationBuilderStart
65
- * @memberOf module:decorator-validation
66
- * @category Model
67
- */
68
- export interface DecorationBuilderStart {
69
- /**
70
- * @description Specifies the key for the decorator
71
- * @summary Sets the identifier for the decorator, which is used to register and retrieve
72
- * the decorator in the decoration registry.
73
- *
74
- * @param {string} id - The identifier for the decorator
75
- * @return {DecorationBuilderMid} The middle stage of the builder pattern
76
- */
77
- for(id: string): DecorationBuilderMid;
78
- }
79
- /**
80
- * @description Comprehensive interface for the complete decoration builder pattern
81
- * @summary A unified interface that combines all stages of the decoration builder pattern,
82
- * providing a complete API for creating, configuring, and applying decorators.
83
- * This interface is implemented by the Decoration class.
84
- *
85
- * @interface IDecorationBuilder
86
- * @memberOf module:decorator-validation
87
- * @category Model
88
- */
89
- export interface IDecorationBuilder extends DecorationBuilderStart, DecorationBuilderMid, DecorationBuilderEnd, DecorationBuilderBuild {
90
- }
91
- /**
92
- * @description Type definition for a function that resolves the flavour for a target
93
- * @summary Defines a function type that determines the appropriate flavour for a given target object.
94
- * This is used by the Decoration class to resolve which flavour of decorator to apply based on the target.
95
- *
96
- * @typedef {function(object): string} FlavourResolver
97
- *
98
- * @param {object} target - The target object to resolve the flavour for
99
- * @return {string} The resolved flavour identifier
100
- * @memberOf module:decorator-validation
101
- * @category Model
102
- */
103
- export type FlavourResolver = (target: object) => string;
104
2
  /**
105
3
  * @description Interface for serializing and deserializing model objects
106
4
  * @summary Defines the contract for classes that can convert model objects to and from string representations.
@@ -10,7 +10,6 @@ import { IValidatorRegistry, ValidatorDefinition } from "./types";
10
10
  */
11
11
  export declare class Validation {
12
12
  private static actingValidatorRegistry?;
13
- private static loadedDecorators;
14
13
  private constructor();
15
14
  /**
16
15
  * @summary Defines the acting ValidatorRegistry
@@ -49,6 +48,6 @@ export declare class Validation {
49
48
  * @summary Returns all registered validation keys
50
49
  */
51
50
  static keys(): string[];
52
- static registerDecorator(key: string, decorator: PropertyDecorator): void;
53
- static decoratorFromKey(key: string): PropertyDecorator;
51
+ static registerDecorator(key: string, decorator: (...args: any[]) => PropertyDecorator): void;
52
+ static decoratorFromKey(key: string): any;
54
53
  }