@decaf-ts/db-decorators 0.6.19 → 0.7.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 (130) hide show
  1. package/README.md +1 -1
  2. package/dist/db-decorators.cjs +1 -1
  3. package/dist/db-decorators.cjs.map +1 -1
  4. package/dist/db-decorators.js +1 -1
  5. package/dist/db-decorators.js.map +1 -1
  6. package/lib/esm/identity/decorators.d.ts +1 -1
  7. package/lib/esm/identity/decorators.js +8 -4
  8. package/lib/esm/identity/decorators.js.map +1 -1
  9. package/lib/esm/identity/index.d.ts +0 -1
  10. package/lib/esm/identity/index.js +0 -1
  11. package/lib/esm/identity/index.js.map +1 -1
  12. package/lib/esm/index.d.ts +3 -1
  13. package/lib/esm/index.js +5 -1
  14. package/lib/esm/index.js.map +1 -1
  15. package/lib/esm/model/constants.js +1 -1
  16. package/lib/esm/model/constants.js.map +1 -1
  17. package/lib/esm/model/decorators.d.ts +3 -3
  18. package/lib/esm/model/decorators.js +9 -11
  19. package/lib/esm/model/decorators.js.map +1 -1
  20. package/lib/esm/model/index.d.ts +0 -2
  21. package/lib/esm/model/index.js +0 -2
  22. package/lib/esm/model/index.js.map +1 -1
  23. package/lib/esm/model/validation.d.ts +7 -7
  24. package/lib/esm/model/validation.js +52 -56
  25. package/lib/esm/model/validation.js.map +1 -1
  26. package/lib/esm/operations/constants.d.ts +11 -0
  27. package/lib/esm/operations/constants.js +12 -0
  28. package/lib/esm/operations/constants.js.map +1 -1
  29. package/lib/esm/operations/decorators.js +4 -6
  30. package/lib/esm/operations/decorators.js.map +1 -1
  31. package/lib/esm/overrides/Metadata.d.ts +50 -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/Model.d.ts +65 -0
  35. package/lib/esm/overrides/Model.js +2 -0
  36. package/lib/esm/overrides/Model.js.map +1 -0
  37. package/lib/esm/overrides/index.d.ts +3 -0
  38. package/lib/esm/overrides/index.js +4 -0
  39. package/lib/esm/overrides/index.js.map +1 -0
  40. package/lib/esm/overrides/overrides.js +102 -0
  41. package/lib/esm/overrides/overrides.js.map +1 -0
  42. package/lib/esm/repository/BaseRepository.d.ts +3 -1
  43. package/lib/esm/repository/BaseRepository.js +6 -4
  44. package/lib/esm/repository/BaseRepository.js.map +1 -1
  45. package/lib/esm/repository/Context.d.ts +2 -1
  46. package/lib/esm/repository/Context.js.map +1 -1
  47. package/lib/esm/repository/Repository.d.ts +2 -9
  48. package/lib/esm/repository/Repository.js +0 -11
  49. package/lib/esm/repository/Repository.js.map +1 -1
  50. package/lib/esm/repository/types.d.ts +5 -4
  51. package/lib/esm/repository/utils.d.ts +2 -16
  52. package/lib/esm/repository/utils.js +96 -77
  53. package/lib/esm/repository/utils.js.map +1 -1
  54. package/lib/esm/validation/decorators.d.ts +1 -1
  55. package/lib/esm/validation/decorators.js +13 -8
  56. package/lib/esm/validation/decorators.js.map +1 -1
  57. package/lib/esm/validation/validators/ReadOnlyValidator.js +1 -1
  58. package/lib/esm/validation/validators/ReadOnlyValidator.js.map +1 -1
  59. package/lib/identity/decorators.cjs +7 -3
  60. package/lib/identity/decorators.d.ts +1 -1
  61. package/lib/identity/decorators.js.map +1 -1
  62. package/lib/identity/index.cjs +0 -1
  63. package/lib/identity/index.d.ts +0 -1
  64. package/lib/identity/index.js.map +1 -1
  65. package/lib/index.cjs +6 -2
  66. package/lib/index.d.ts +3 -1
  67. package/lib/index.js.map +1 -1
  68. package/lib/model/constants.cjs +1 -1
  69. package/lib/model/constants.js.map +1 -1
  70. package/lib/model/decorators.cjs +10 -12
  71. package/lib/model/decorators.d.ts +3 -3
  72. package/lib/model/decorators.js.map +1 -1
  73. package/lib/model/index.cjs +0 -2
  74. package/lib/model/index.d.ts +0 -2
  75. package/lib/model/index.js.map +1 -1
  76. package/lib/model/validation.cjs +51 -55
  77. package/lib/model/validation.d.ts +7 -7
  78. package/lib/model/validation.js.map +1 -1
  79. package/lib/operations/constants.cjs +13 -1
  80. package/lib/operations/constants.d.ts +11 -0
  81. package/lib/operations/constants.js.map +1 -1
  82. package/lib/operations/decorators.cjs +3 -5
  83. package/lib/operations/decorators.js.map +1 -1
  84. package/lib/overrides/Metadata.cjs +3 -0
  85. package/lib/overrides/Metadata.d.ts +50 -0
  86. package/lib/overrides/Metadata.js.map +1 -0
  87. package/lib/overrides/Model.cjs +4 -0
  88. package/lib/overrides/Model.d.ts +65 -0
  89. package/lib/overrides/Model.js.map +1 -0
  90. package/lib/overrides/index.cjs +20 -0
  91. package/lib/overrides/index.d.ts +3 -0
  92. package/lib/overrides/index.js.map +1 -0
  93. package/lib/overrides/overrides.cjs +104 -0
  94. package/lib/overrides/overrides.js.map +1 -0
  95. package/lib/repository/BaseRepository.cjs +6 -4
  96. package/lib/repository/BaseRepository.d.ts +3 -1
  97. package/lib/repository/BaseRepository.js.map +1 -1
  98. package/lib/repository/Context.d.ts +2 -1
  99. package/lib/repository/Context.js.map +1 -1
  100. package/lib/repository/Repository.cjs +0 -11
  101. package/lib/repository/Repository.d.ts +2 -9
  102. package/lib/repository/Repository.js.map +1 -1
  103. package/lib/repository/types.d.ts +5 -4
  104. package/lib/repository/utils.cjs +96 -78
  105. package/lib/repository/utils.d.ts +2 -16
  106. package/lib/repository/utils.js.map +1 -1
  107. package/lib/validation/decorators.cjs +16 -11
  108. package/lib/validation/decorators.d.ts +1 -1
  109. package/lib/validation/decorators.js.map +1 -1
  110. package/lib/validation/validators/ReadOnlyValidator.cjs +2 -2
  111. package/lib/validation/validators/ReadOnlyValidator.js.map +1 -1
  112. package/package.json +2 -3
  113. package/lib/esm/identity/utils.d.ts +0 -47
  114. package/lib/esm/identity/utils.js +0 -75
  115. package/lib/esm/identity/utils.js.map +0 -1
  116. package/lib/esm/model/overrides.js +0 -33
  117. package/lib/esm/model/overrides.js.map +0 -1
  118. package/lib/esm/model/utils.d.ts +0 -45
  119. package/lib/esm/model/utils.js +0 -71
  120. package/lib/esm/model/utils.js.map +0 -1
  121. package/lib/identity/utils.cjs +0 -79
  122. package/lib/identity/utils.d.ts +0 -47
  123. package/lib/identity/utils.js.map +0 -1
  124. package/lib/model/overrides.cjs +0 -35
  125. package/lib/model/overrides.js.map +0 -1
  126. package/lib/model/utils.cjs +0 -75
  127. package/lib/model/utils.d.ts +0 -45
  128. package/lib/model/utils.js.map +0 -1
  129. /package/lib/esm/{model → overrides}/overrides.d.ts +0 -0
  130. /package/lib/{model → overrides}/overrides.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAA6B;AAC7B,8CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAA6B"}
package/lib/index.cjs CHANGED
@@ -14,11 +14,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.VERSION = void 0;
17
+ exports.PACKAGE_NAME = exports.VERSION = void 0;
18
+ const decoration_1 = require("@decaf-ts/decoration");
18
19
  __exportStar(require("./identity/index.cjs"), exports);
19
20
  __exportStar(require("./interfaces/index.cjs"), exports);
20
21
  __exportStar(require("./model/index.cjs"), exports);
21
22
  __exportStar(require("./operations/index.cjs"), exports);
23
+ __exportStar(require("./overrides/index.cjs"), exports);
22
24
  __exportStar(require("./repository/index.cjs"), exports);
23
25
  __exportStar(require("./validation/index.cjs"), exports);
24
26
  /**
@@ -32,5 +34,7 @@ __exportStar(require("./validation/index.cjs"), exports);
32
34
  * @const VERSION
33
35
  * @memberOf module:db-decorators
34
36
  */
35
- exports.VERSION = "0.6.18";
37
+ exports.VERSION = "0.6.20";
38
+ exports.PACKAGE_NAME = "@decaf-ts/db-decorators";
39
+ decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
36
40
  //# sourceMappingURL=index.js.map
package/lib/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from "./identity";
2
2
  export * from "./interfaces";
3
3
  export * from "./model";
4
4
  export * from "./operations";
5
+ export * from "./overrides";
5
6
  export * from "./repository";
6
7
  export * from "./validation";
7
8
  /**
@@ -15,4 +16,5 @@ export * from "./validation";
15
16
  * @const VERSION
16
17
  * @memberOf module:db-decorators
17
18
  */
18
- export declare const VERSION = "0.6.18";
19
+ export declare const VERSION = "0.6.20";
20
+ export declare const PACKAGE_NAME = "@decaf-ts/db-decorators";
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uDAA2B;AAC3B,yDAA6B;AAC7B,oDAAwB;AACxB,yDAA6B;AAC7B,yDAA6B;AAC7B,yDAA6B;AAE7B;;;;GAIG;AAGH;;;;;GAKG;AACU,QAAA,OAAO,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAgD;AAEhD,uDAA2B;AAC3B,yDAA6B;AAC7B,oDAAwB;AACxB,yDAA6B;AAC7B,wDAA4B;AAC5B,yDAA6B;AAC7B,yDAA6B;AAE7B;;;;GAIG;AAEH;;;;;GAKG;AACU,QAAA,OAAO,GAAG,aAAa,CAAC;AACxB,QAAA,YAAY,GAAG,aAAa,CAAC;AAC1C,qBAAQ,CAAC,eAAe,CAAC,oBAAY,EAAE,eAAO,CAAC,CAAC"}
@@ -9,7 +9,7 @@ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
9
9
  * @memberOf module:db-decorators
10
10
  */
11
11
  exports.DBKeys = {
12
- REFLECT: `${decorator_validation_1.ModelKeys.REFLECT}persistence.`,
12
+ REFLECT: `${decorator_validation_1.ModelKeys.MODEL}.persistence.`,
13
13
  REPOSITORY: "repository",
14
14
  CLASS: "_class",
15
15
  ID: "id",
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/model/constants.ts"],"names":[],"mappings":";;;AAAA,yEAA2D;AAE3D;;;;;GAKG;AACU,QAAA,MAAM,GAAG;IACpB,OAAO,EAAE,GAAG,gCAAS,CAAC,OAAO,cAAc;IAC3C,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,QAAQ;IACf,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,eAAe;CAC1B,CAAC;AAEF;;;;;GAKG;AACU,QAAA,gBAAgB,GAAG,GAAG,CAAC;AAEpC;;;;;GAKG;AACU,QAAA,wBAAwB,GAAG,uBAAuB,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/model/constants.ts"],"names":[],"mappings":";;;AAAA,yEAA2D;AAE3D;;;;;GAKG;AACU,QAAA,MAAM,GAAG;IACpB,OAAO,EAAE,GAAG,gCAAS,CAAC,KAAK,eAAe;IAC1C,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,QAAQ;IACf,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,eAAe;CAC1B,CAAC;AAEF;;;;;GAKG;AACU,QAAA,gBAAgB,GAAG,GAAG,CAAC;AAEpC;;;;;GAKG;AACU,QAAA,wBAAwB,GAAG,uBAAuB,CAAC"}
@@ -9,12 +9,11 @@ exports.versionCreateUpdate = versionCreateUpdate;
9
9
  exports.version = version;
10
10
  exports.transient = transient;
11
11
  const constants_1 = require("./constants.cjs");
12
- const reflection_1 = require("@decaf-ts/reflection");
13
12
  const decorator_validation_1 = require("@decaf-ts/decorator-validation");
14
13
  const decorators_1 = require("./../operations/decorators.cjs");
15
14
  const errors_1 = require("./../repository/errors.cjs");
16
- const Repository_1 = require("./../repository/Repository.cjs");
17
15
  const operations_1 = require("./../operations/index.cjs");
16
+ const decoration_1 = require("@decaf-ts/decoration");
18
17
  /**
19
18
  * @description Hashes a property value during create or update operations
20
19
  * @summary Callback function used by the hash decorator to apply hashing to a property value
@@ -48,7 +47,7 @@ function hashOnCreateUpdate(context, data, key, model, oldModel) {
48
47
  * @category Property Decorators
49
48
  */
50
49
  function hash() {
51
- return (0, reflection_1.apply)((0, decorators_1.onCreateUpdate)(hashOnCreateUpdate), (0, decorator_validation_1.propMetadata)(Repository_1.Repository.key(constants_1.DBKeys.HASH), {}));
50
+ return (0, decoration_1.apply)((0, decorators_1.onCreateUpdate)(hashOnCreateUpdate), (0, decoration_1.propMetadata)(constants_1.DBKeys.HASH, {}));
52
51
  }
53
52
  /**
54
53
  * @description Composes a property value from other properties during create or update operations
@@ -113,11 +112,11 @@ function composedFrom(args, hashResult = false, separator = constants_1.DefaultS
113
112
  };
114
113
  const decorators = [
115
114
  (0, decorators_1.onCreateUpdate)(composedFromCreateUpdate, data, groupsort),
116
- (0, decorator_validation_1.propMetadata)(Repository_1.Repository.key(constants_1.DBKeys.COMPOSED), data),
115
+ (0, decoration_1.propMetadata)(constants_1.DBKeys.COMPOSED, data),
117
116
  ];
118
117
  if (hashResult)
119
118
  decorators.push(hash());
120
- return (0, reflection_1.apply)(...decorators);
119
+ return (0, decoration_1.apply)(...decorators);
121
120
  }
122
121
  /**
123
122
  * @description Creates a decorator that composes a property value from property keys
@@ -208,9 +207,9 @@ function versionCreateUpdate(operation) {
208
207
  * @category PropertyDecorators
209
208
  */
210
209
  function version() {
211
- const key = Repository_1.Repository.key(constants_1.DBKeys.VERSION);
212
- return decorator_validation_1.Decoration.for(key)
213
- .define((0, decorator_validation_1.type)(Number.name), (0, decorators_1.onCreate)(versionCreateUpdate(operations_1.OperationKeys.CREATE)), (0, decorators_1.onUpdate)(versionCreateUpdate(operations_1.OperationKeys.UPDATE)), (0, decorator_validation_1.propMetadata)(key, true))
210
+ const key = constants_1.DBKeys.VERSION;
211
+ return decoration_1.Decoration.for(key)
212
+ .define((0, decorator_validation_1.type)(Number), (0, decorators_1.onCreate)(versionCreateUpdate(operations_1.OperationKeys.CREATE)), (0, decorators_1.onUpdate)(versionCreateUpdate(operations_1.OperationKeys.UPDATE)), (0, decoration_1.propMetadata)(key, true))
214
213
  .apply();
215
214
  }
216
215
  /**
@@ -221,11 +220,10 @@ function version() {
221
220
  * @category PropertyDecorators
222
221
  */
223
222
  function transient() {
224
- const key = Repository_1.Repository.key(constants_1.DBKeys.TRANSIENT);
225
- return decorator_validation_1.Decoration.for(key)
223
+ return decoration_1.Decoration.for(constants_1.DBKeys.TRANSIENT)
226
224
  .define(function transient(model, attribute) {
227
- (0, decorator_validation_1.propMetadata)(Repository_1.Repository.key(constants_1.DBKeys.TRANSIENT), true)(model, attribute);
228
- (0, decorator_validation_1.propMetadata)(Repository_1.Repository.key(constants_1.DBKeys.TRANSIENT), true)(model.constructor);
225
+ (0, decoration_1.propMetadata)(constants_1.DBKeys.TRANSIENT, true)(model.constructor);
226
+ (0, decoration_1.propMetadata)(decoration_1.Metadata.key(constants_1.DBKeys.TRANSIENT, attribute), {})(model, attribute);
229
227
  })
230
228
  .apply();
231
229
  }
@@ -28,7 +28,7 @@ export declare function hashOnCreateUpdate<M extends Model, R extends IRepositor
28
28
  * @function hash
29
29
  * @category Property Decorators
30
30
  */
31
- export declare function hash(): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
31
+ export declare function hash(): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
32
32
  /**
33
33
  * @description Metadata for composed property decorators
34
34
  * @summary Configuration options for property composition from other properties
@@ -79,7 +79,7 @@ export declare function composedFromCreateUpdate<M extends Model, R extends IRep
79
79
  * @function composedFromKeys
80
80
  * @category PropertyDecorators
81
81
  */
82
- export declare function composedFromKeys(args: string[], separator?: string, hash?: boolean, prefix?: string, suffix?: string, groupsort?: GroupSort): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
82
+ export declare function composedFromKeys(args: string[], separator?: string, hash?: boolean, prefix?: string, suffix?: string, groupsort?: GroupSort): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
83
83
  /**
84
84
  * @description Creates a decorator that composes a property value from property values
85
85
  * @summary Decorator that generates a property value by joining the values of other properties
@@ -93,7 +93,7 @@ export declare function composedFromKeys(args: string[], separator?: string, has
93
93
  * @function composed
94
94
  * @category PropertyDecorators
95
95
  */
96
- export declare function composed(args: string[], separator?: string, hash?: boolean, prefix?: string, suffix?: string, groupsort?: GroupSort): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
96
+ export declare function composed(args: string[], separator?: string, hash?: boolean, prefix?: string, suffix?: string, groupsort?: GroupSort): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
97
97
  /**
98
98
  * @description Creates a function that updates a version property during operations
99
99
  * @summary Factory function that generates a callback for incrementing version numbers
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/model/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/model/decorators.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,4 @@ __exportStar(require("./validation.cjs"), exports);
18
18
  __exportStar(require("./constants.cjs"), exports);
19
19
  __exportStar(require("./decorators.cjs"), exports);
20
20
  __exportStar(require("./model.cjs"), exports);
21
- __exportStar(require("./overrides.cjs"), exports);
22
- __exportStar(require("./utils.cjs"), exports);
23
21
  //# sourceMappingURL=index.js.map
@@ -2,5 +2,3 @@ export * from "./validation";
2
2
  export * from "./constants";
3
3
  export * from "./decorators";
4
4
  export * from "./model";
5
- export * from "./overrides";
6
- export * from "./utils";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAA6B;AAC7B,kDAA4B;AAC5B,mDAA6B;AAC7B,8CAAwB;AACxB,kDAA4B;AAC5B,8CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAA6B;AAC7B,kDAA4B;AAC5B,mDAA6B;AAC7B,8CAAwB"}
@@ -5,9 +5,7 @@ exports.validateDecorator = validateDecorator;
5
5
  exports.validateDecorators = validateDecorators;
6
6
  exports.validateCompare = validateCompare;
7
7
  const decorator_validation_1 = require("@decaf-ts/decorator-validation");
8
- const reflection_1 = require("@decaf-ts/reflection");
9
- const validation_1 = require("./../validation/index.cjs");
10
- const identity_1 = require("./../identity/index.cjs");
8
+ const decoration_1 = require("@decaf-ts/decoration");
11
9
  /**
12
10
  * @description
13
11
  * Retrieves validation decorator definitions from a model for update operations, including
@@ -32,14 +30,17 @@ const identity_1 = require("./../identity/index.cjs");
32
30
  function getValidatableUpdateProps(model, propsToIgnore) {
33
31
  const decoratedProperties = [];
34
32
  for (const prop in model) {
35
- if (Object.prototype.hasOwnProperty.call(model, prop) &&
36
- !propsToIgnore.includes(prop)) {
37
- const validationPropertyDefinition = (0, decorator_validation_1.getValidationDecorators)(model, prop, validation_1.UpdateValidationKeys.REFLECT);
38
- const listDecorator = (0, decorator_validation_1.getValidationDecorators)(model, prop).decorators.find(({ key }) => key === decorator_validation_1.ValidationKeys.LIST);
39
- if (listDecorator)
40
- validationPropertyDefinition.decorators.push(listDecorator);
41
- decoratedProperties.push(validationPropertyDefinition);
42
- }
33
+ if (!Object.prototype.hasOwnProperty.call(model, prop) ||
34
+ propsToIgnore.includes(prop))
35
+ continue;
36
+ const decorators = decoration_1.Metadata.validationFor(model.constructor, prop) || {};
37
+ // Intentionally leaving this part commented out until all tests are complete
38
+ // const listDecorator = getValidationDecorators(model, prop).decorators.find(
39
+ // ({ key }) => key === ValidationKeys.LIST
40
+ // );
41
+ // if (listDecorator)
42
+ // validationPropertyDefinition.decorators.push(listDecorator);
43
+ decoratedProperties.push({ prop, decorators });
43
44
  }
44
45
  return decoratedProperties;
45
46
  }
@@ -52,9 +53,9 @@ function validateDecorator(newModel, oldModel, prop, decorator, async) {
52
53
  if (!validator.updateHasErrors)
53
54
  return (0, decorator_validation_1.toConditionalPromise)(undefined, async);
54
55
  // skip async decorators if validateDecorators is called synchronously (async = false)
55
- if (!async && decorator.props.async)
56
+ if (!async && decorator.async)
56
57
  return (0, decorator_validation_1.toConditionalPromise)(undefined, async);
57
- const decoratorProps = Object.values(decorator.props) || {};
58
+ const decoratorProps = Object.values(decorator) || {};
58
59
  // const context = PathProxyEngine.create(obj, {
59
60
  // ignoreUndefined: true,
60
61
  // ignoreNull: true,
@@ -64,9 +65,10 @@ function validateDecorator(newModel, oldModel, prop, decorator, async) {
64
65
  }
65
66
  function validateDecorators(newModel, oldModel, prop, decorators, async) {
66
67
  const result = {};
67
- for (const decorator of decorators) {
68
+ for (const decoratorKey in decorators) {
69
+ const decorator = { ...decorators[decoratorKey], key: decoratorKey };
68
70
  // skip async decorators if validateDecorators is called synchronously (async = false)
69
- if (!async && decorator.props.async)
71
+ if (!async && decorator.async)
70
72
  continue;
71
73
  let validationErrors = validateDecorator(newModel, oldModel, prop, decorator, async);
72
74
  /*
@@ -79,10 +81,8 @@ function validateDecorators(newModel, oldModel, prop, decorators, async) {
79
81
  const oldPropValue = oldModel[prop];
80
82
  const newValues = newPropValue instanceof Set ? [...newPropValue] : newPropValue;
81
83
  const oldValues = oldPropValue instanceof Set ? [...oldPropValue] : oldPropValue;
82
- if (newValues && newValues.length > 0) {
83
- const types = decorator.props.class ||
84
- decorator.props.clazz ||
85
- decorator.props.customTypes;
84
+ if (newValues?.length) {
85
+ const types = decorator.class || decorator.clazz || decorator.customTypes;
86
86
  const allowedTypes = [types].flat().map((t) => {
87
87
  t = typeof t === "function" && !t.name ? t() : t;
88
88
  t = t.name ? t.name : t;
@@ -90,12 +90,12 @@ function validateDecorators(newModel, oldModel, prop, decorators, async) {
90
90
  });
91
91
  const errs = newValues.map((childValue) => {
92
92
  // find by id so the list elements order doesn't matter
93
- const id = (0, identity_1.findModelId)(childValue, true);
93
+ const id = decorator_validation_1.Model.pk(childValue, true);
94
94
  if (!id)
95
95
  return "Failed to find model id";
96
- const oldModel = oldValues.find((el) => id === (0, identity_1.findModelId)(el, true));
96
+ const oldListModel = oldValues.find((el) => id === decorator_validation_1.Model.pk(el, true));
97
97
  if (decorator_validation_1.Model.isModel(childValue)) {
98
- return childValue.hasErrors(oldModel);
98
+ return childValue.hasErrors(oldListModel);
99
99
  }
100
100
  return allowedTypes.includes(typeof childValue)
101
101
  ? undefined
@@ -138,7 +138,7 @@ function validateDecorators(newModel, oldModel, prop, decorators, async) {
138
138
  * @param {M} oldModel - The original model version
139
139
  * @param {M} newModel - The updated model version
140
140
  * @param {boolean} async - A flag indicating whether validation should be asynchronous.
141
- * @param {...string[]} exceptions - Properties to exclude from validation
141
+ * @param {...string[]} propsToIgnore - Properties to exclude from validation
142
142
  * @return {ModelErrorDefinition|undefined} Error definition if validation fails, undefined otherwise
143
143
  * @function validateCompare
144
144
  * @memberOf module:db-decorators
@@ -149,7 +149,7 @@ function validateDecorators(newModel, oldModel, prop, decorators, async) {
149
149
  * participant Reflection
150
150
  * participant Validation
151
151
  *
152
- * Caller->>validateCompare: oldModel, newModel, exceptions
152
+ * Caller->>validateCompare: oldModel, newModel, propsToIgnore
153
153
  * validateCompare->>Reflection: get decorated properties
154
154
  * Reflection-->>validateCompare: property decorators
155
155
  * loop For each decorated property
@@ -162,24 +162,20 @@ function validateDecorators(newModel, oldModel, prop, decorators, async) {
162
162
  * end
163
163
  * validateCompare-->>Caller: validation errors or undefined
164
164
  */
165
- function validateCompare(oldModel, newModel, async, ...exceptions) {
166
- const decoratedProperties = getValidatableUpdateProps(newModel, exceptions);
165
+ function validateCompare(oldModel, newModel, async, ...propsToIgnore) {
166
+ const ValidatableUpdateProps = getValidatableUpdateProps(newModel, propsToIgnore);
167
167
  const result = {};
168
168
  const nestedErrors = {};
169
- for (const { prop, decorators } of decoratedProperties) {
169
+ for (const { prop, decorators } of ValidatableUpdateProps) {
170
170
  const propKey = String(prop);
171
- let propValue = newModel[prop];
172
- if (!decorators?.length)
173
- continue;
174
- // Get the default type validator
175
- const designTypeDec = decorators.find((d) => [decorator_validation_1.ModelKeys.TYPE, decorator_validation_1.ValidationKeys.TYPE].includes(d.key));
176
- if (!designTypeDec)
171
+ const propValue = newModel[prop];
172
+ const { designTypes, designType } = decoration_1.Metadata.getPropDesignTypes(newModel.constructor, prop);
173
+ if (!designTypes)
177
174
  continue;
178
- const designType = designTypeDec.props.name;
179
175
  // Handle array or Set types and enforce the presence of @list decorator
180
- if ([Array.name, Set.name].includes(designType)) {
181
- const { decorators } = reflection_1.Reflection.getPropertyDecorators(decorator_validation_1.ValidationKeys.REFLECT, newModel, propKey);
182
- if (!decorators.some((d) => d.key === decorator_validation_1.ValidationKeys.LIST)) {
176
+ if (designTypes.some((t) => [Array.name, Set.name].includes(t))) {
177
+ if (!decorators ||
178
+ !Object.keys(decorators).includes(decorator_validation_1.ValidationKeys.LIST)) {
183
179
  result[propKey] = {
184
180
  [decorator_validation_1.ValidationKeys.TYPE]: `Array or Set property '${propKey}' requires a @list decorator`,
185
181
  };
@@ -188,32 +184,32 @@ function validateCompare(oldModel, newModel, async, ...exceptions) {
188
184
  if (propValue &&
189
185
  !(Array.isArray(propValue) || propValue instanceof Set)) {
190
186
  result[propKey] = {
191
- [decorator_validation_1.ValidationKeys.TYPE]: `Property '${String(prop)}' must be either an array or a Set`,
187
+ [decorator_validation_1.ValidationKeys.TYPE]: `Property '${String(prop)}' must be either an Array or a Set`,
192
188
  };
193
189
  continue;
194
190
  }
195
- // Remove design:type decorator, since @list decorator already ensures type
196
- for (let i = decorators.length - 1; i >= 0; i--) {
197
- if (decorators[i].key === decorator_validation_1.ModelKeys.TYPE) {
198
- decorators.splice(i, 1);
199
- }
200
- }
201
- propValue = propValue instanceof Set ? [...propValue] : propValue;
202
191
  }
192
+ // TODO: Check validateDecorators method partially working. Complete check pending.
203
193
  const propErrors = validateDecorators(newModel, oldModel, propKey, decorators, async) || {};
204
- // Check for nested properties.
194
+ // Check for nested model.
205
195
  // To prevent unnecessary processing, "propValue" must be defined and validatable
206
196
  const isConstr = decorator_validation_1.Model.isPropertyModel(newModel, propKey);
207
- // if propValue !== undefined, null
208
- if (propValue && isConstr) {
197
+ const hasPropValue = propValue !== null && propValue !== undefined;
198
+ if (hasPropValue && isConstr) {
209
199
  const instance = propValue;
210
- const isInvalidModel = typeof instance !== "object" ||
211
- !instance.hasErrors ||
212
- typeof instance.hasErrors !== "function";
213
- if (isInvalidModel) {
214
- // propErrors[ValidationKeys.TYPE] =
215
- // "Model should be validatable but it's not.";
216
- console.warn("Model should be validatable but it's not.");
200
+ const Constr = (Array.isArray(designType) ? designType : [designType])
201
+ .map((d) => {
202
+ if (typeof d === "function" && !d.name)
203
+ d = d();
204
+ return decorator_validation_1.Model.get(d.name || d);
205
+ })
206
+ .find((d) => !!d);
207
+ // Ensure instance is of the expected model class.
208
+ if (!Constr || !(instance instanceof Constr)) {
209
+ propErrors[decorator_validation_1.ValidationKeys.TYPE] = !Constr
210
+ ? `Unable to verify type consistency, missing model registry for ${designTypes.toString()} on prop ${propKey}`
211
+ : `Value must be an instance of ${Constr.name}`;
212
+ delete propErrors[decorator_validation_1.ModelKeys.TYPE]; // remove duplicate type error
217
213
  }
218
214
  else {
219
215
  nestedErrors[propKey] = instance.hasErrors(oldModel[prop]);
@@ -1,4 +1,4 @@
1
- import { ConditionalAsync, DecoratorMetadataAsync, Model, ModelConditionalAsync, ValidationPropertyDecoratorDefinition } from "@decaf-ts/decorator-validation";
1
+ import { ConditionalAsync, Model, ModelConditionalAsync } from "@decaf-ts/decorator-validation";
2
2
  /**
3
3
  * @description
4
4
  * Retrieves validation decorator definitions from a model for update operations, including
@@ -20,9 +20,9 @@ import { ConditionalAsync, DecoratorMetadataAsync, Model, ModelConditionalAsync,
20
20
  *
21
21
  * @function getValidatableUpdateProps
22
22
  */
23
- export declare function getValidatableUpdateProps<M extends Model>(model: M, propsToIgnore: string[]): ValidationPropertyDecoratorDefinition[];
24
- export declare function validateDecorator<M extends Model, Async extends boolean = false>(newModel: M, oldModel: M, prop: string, decorator: DecoratorMetadataAsync, async?: Async): ConditionalAsync<Async, string | undefined>;
25
- export declare function validateDecorators<M extends Model, Async extends boolean = false>(newModel: M, oldModel: M, prop: string, decorators: DecoratorMetadataAsync[], async?: Async): ConditionalAsync<Async, Record<string, string>> | undefined;
23
+ export declare function getValidatableUpdateProps<M extends Model>(model: M, propsToIgnore: string[]): any[];
24
+ export declare function validateDecorator<M extends Model, Async extends boolean = false>(newModel: M, oldModel: M, prop: string, decorator: any, async?: Async): ConditionalAsync<Async, string | undefined>;
25
+ export declare function validateDecorators<M extends Model, Async extends boolean = false>(newModel: M, oldModel: M, prop: string, decorators: any, async?: Async): ConditionalAsync<Async, Record<string, string>> | undefined;
26
26
  /**
27
27
  * @description Validates changes between two model versions
28
28
  * @summary Compares an old and new model version to validate update operations
@@ -30,7 +30,7 @@ export declare function validateDecorators<M extends Model, Async extends boolea
30
30
  * @param {M} oldModel - The original model version
31
31
  * @param {M} newModel - The updated model version
32
32
  * @param {boolean} async - A flag indicating whether validation should be asynchronous.
33
- * @param {...string[]} exceptions - Properties to exclude from validation
33
+ * @param {...string[]} propsToIgnore - Properties to exclude from validation
34
34
  * @return {ModelErrorDefinition|undefined} Error definition if validation fails, undefined otherwise
35
35
  * @function validateCompare
36
36
  * @memberOf module:db-decorators
@@ -41,7 +41,7 @@ export declare function validateDecorators<M extends Model, Async extends boolea
41
41
  * participant Reflection
42
42
  * participant Validation
43
43
  *
44
- * Caller->>validateCompare: oldModel, newModel, exceptions
44
+ * Caller->>validateCompare: oldModel, newModel, propsToIgnore
45
45
  * validateCompare->>Reflection: get decorated properties
46
46
  * Reflection-->>validateCompare: property decorators
47
47
  * loop For each decorated property
@@ -54,4 +54,4 @@ export declare function validateDecorators<M extends Model, Async extends boolea
54
54
  * end
55
55
  * validateCompare-->>Caller: validation errors or undefined
56
56
  */
57
- export declare function validateCompare<M extends Model<any>>(oldModel: M, newModel: M, async: boolean, ...exceptions: string[]): ModelConditionalAsync<M>;
57
+ export declare function validateCompare<M extends Model<any>>(oldModel: M, newModel: M, async: boolean, ...propsToIgnore: string[]): ModelConditionalAsync<M>;
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/model/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/model/validation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DBOperations = exports.BulkCrudOperationKeys = exports.OperationKeys = void 0;
3
+ exports.DBOperations = exports.BulkCrudOperationKeys = exports.ModelOperations = exports.OperationKeys = void 0;
4
4
  /**
5
5
  * @description Database operation key constants
6
6
  * @summary Enum defining CRUD operations and their lifecycle phases
@@ -19,6 +19,18 @@ var OperationKeys;
19
19
  OperationKeys["AFTER"] = "after.";
20
20
  OperationKeys["BLOCK"] = "block";
21
21
  })(OperationKeys || (exports.OperationKeys = OperationKeys = {}));
22
+ /**
23
+ * @description Database operation key naming constants
24
+ * @summary Enum defining operations naming
25
+ * @enum {string}
26
+ * @readonly
27
+ * @memberOf module:db-decorators
28
+ */
29
+ var ModelOperations;
30
+ (function (ModelOperations) {
31
+ ModelOperations["OPERATIONS"] = "operations";
32
+ ModelOperations["RELATIONS"] = "relations";
33
+ })(ModelOperations || (exports.ModelOperations = ModelOperations = {}));
22
34
  /**
23
35
  * @description Bulk database operation key constants
24
36
  * @summary Enum defining bulk CRUD operations for handling multiple records at once
@@ -15,6 +15,17 @@ export declare enum OperationKeys {
15
15
  AFTER = "after.",
16
16
  BLOCK = "block"
17
17
  }
18
+ /**
19
+ * @description Database operation key naming constants
20
+ * @summary Enum defining operations naming
21
+ * @enum {string}
22
+ * @readonly
23
+ * @memberOf module:db-decorators
24
+ */
25
+ export declare enum ModelOperations {
26
+ OPERATIONS = "operations",
27
+ RELATIONS = "relations"
28
+ }
18
29
  /**
19
30
  * @description Type for basic CRUD operations
20
31
  * @summary Union type of the four basic database operations: create, read, update, delete
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/operations/constants.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,IAAY,aASX;AATD,WAAY,aAAa;IACvB,uDAAsC,CAAA;IACtC,kCAAiB,CAAA;IACjB,8BAAa,CAAA;IACb,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,2BAAU,CAAA;IACV,iCAAgB,CAAA;IAChB,gCAAe,CAAA;AACjB,CAAC,EATW,aAAa,6BAAb,aAAa,QASxB;AAcD;;;;;;GAMG;AACH,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,iDAAwB,CAAA;IACxB,6CAAoB,CAAA;IACpB,iDAAwB,CAAA;IACxB,iDAAwB,CAAA;AAC1B,CAAC,EALW,qBAAqB,qCAArB,qBAAqB,QAKhC;AAcD;;;;;GAKG;AACU,QAAA,YAAY,GAAqC;IAC5D,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;IAC1B,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;IAC9B,aAAa,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC;IAC3D,WAAW,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IACvD,GAAG,EAAE;QACH,aAAa,CAAC,MAAM;QACpB,aAAa,CAAC,IAAI;QAClB,aAAa,CAAC,MAAM;QACpB,aAAa,CAAC,MAAM;KACrB;CACF,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/operations/constants.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,IAAY,aASX;AATD,WAAY,aAAa;IACvB,uDAAsC,CAAA;IACtC,kCAAiB,CAAA;IACjB,8BAAa,CAAA;IACb,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,2BAAU,CAAA;IACV,iCAAgB,CAAA;IAChB,gCAAe,CAAA;AACjB,CAAC,EATW,aAAa,6BAAb,aAAa,QASxB;AAED;;;;;;GAMG;AACH,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,4CAAyB,CAAA;IACzB,0CAAuB,CAAA;AACzB,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B;AAcD;;;;;;GAMG;AACH,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,iDAAwB,CAAA;IACxB,6CAAoB,CAAA;IACpB,iDAAwB,CAAA;IACxB,iDAAwB,CAAA;AAC1B,CAAC,EALW,qBAAqB,qCAArB,qBAAqB,QAKhC;AAcD;;;;;GAKG;AACU,QAAA,YAAY,GAAqC;IAC5D,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;IAC1B,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;IAC9B,aAAa,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC;IAC3D,WAAW,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IACvD,GAAG,EAAE;QACH,aAAa,CAAC,MAAM;QACpB,aAAa,CAAC,IAAI;QAClB,aAAa,CAAC,MAAM;QACpB,aAAa,CAAC,MAAM;KACrB;CACF,CAAC"}
@@ -22,8 +22,6 @@ exports.operation = operation;
22
22
  exports.storeHandlerMetadata = storeHandlerMetadata;
23
23
  const constants_1 = require("./constants.cjs");
24
24
  const Operations_1 = require("./Operations.cjs");
25
- const reflection_1 = require("@decaf-ts/reflection");
26
- const decorator_validation_1 = require("@decaf-ts/decorator-validation");
27
25
  const errors_1 = require("./../repository/errors.cjs");
28
26
  const utils_1 = require("./../repository/utils.cjs");
29
27
  const decoration_1 = require("@decaf-ts/decoration");
@@ -374,7 +372,7 @@ function operation(baseOp, operation = constants_1.DBOperations.ALL, handler, da
374
372
  const name = target.constructor.name;
375
373
  const decorators = operation.reduce((accum, op) => {
376
374
  const compoundKey = baseOp + op;
377
- let data = Reflect.getMetadata(Operations_1.Operations.key(compoundKey), target, propertyKey);
375
+ let data = decoration_1.Metadata.readOperation(target.constructor, propertyKey, compoundKey);
378
376
  if (!data)
379
377
  data = {
380
378
  operation: op,
@@ -396,11 +394,11 @@ function operation(baseOp, operation = constants_1.DBOperations.ALL, handler, da
396
394
  data.handlers[name][propertyKey][handlerKey] = {
397
395
  data: mergeData,
398
396
  };
399
- accum.push(handle(compoundKey, handler), (0, decorator_validation_1.propMetadata)(Operations_1.Operations.key(compoundKey), data));
397
+ accum.push(handle(compoundKey, handler), (0, decoration_1.propMetadata)(decoration_1.Metadata.key(constants_1.ModelOperations.OPERATIONS, propertyKey, compoundKey), data));
400
398
  }
401
399
  return accum;
402
400
  }, []);
403
- return (0, reflection_1.apply)(...decorators)(target, propertyKey);
401
+ return (0, decoration_1.apply)(...decorators)(target, propertyKey);
404
402
  };
405
403
  }
406
404
  /**