@cratis/chronicle 6.3.2 → 6.4.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 (175) hide show
  1. package/EventStore.ts +3 -0
  2. package/README.md +13 -2
  3. package/artifacts/validateArtifactSchemas.spec.ts +61 -0
  4. package/artifacts/validateArtifactSchemas.ts +39 -0
  5. package/compliance/pii.ts +7 -6
  6. package/compliance/subject.ts +6 -5
  7. package/confidentiality/encrypted.ts +7 -6
  8. package/dist/EventStore.d.ts.map +1 -1
  9. package/dist/EventStore.js +2 -0
  10. package/dist/EventStore.js.map +1 -1
  11. package/dist/artifacts/validateArtifactSchemas.d.ts +4 -0
  12. package/dist/artifacts/validateArtifactSchemas.d.ts.map +1 -0
  13. package/dist/artifacts/validateArtifactSchemas.js +38 -0
  14. package/dist/artifacts/validateArtifactSchemas.js.map +1 -0
  15. package/dist/compliance/pii.d.ts +2 -1
  16. package/dist/compliance/pii.d.ts.map +1 -1
  17. package/dist/compliance/pii.js +6 -5
  18. package/dist/compliance/pii.js.map +1 -1
  19. package/dist/compliance/subject.d.ts +2 -1
  20. package/dist/compliance/subject.d.ts.map +1 -1
  21. package/dist/compliance/subject.js +5 -4
  22. package/dist/compliance/subject.js.map +1 -1
  23. package/dist/confidentiality/encrypted.d.ts +2 -1
  24. package/dist/confidentiality/encrypted.d.ts.map +1 -1
  25. package/dist/confidentiality/encrypted.js +6 -5
  26. package/dist/confidentiality/encrypted.js.map +1 -1
  27. package/dist/events/eventTypeDecorator.d.ts +8 -7
  28. package/dist/events/eventTypeDecorator.d.ts.map +1 -1
  29. package/dist/events/eventTypeDecorator.js +22 -5
  30. package/dist/events/eventTypeDecorator.js.map +1 -1
  31. package/dist/events/index.d.ts +1 -0
  32. package/dist/events/index.d.ts.map +1 -1
  33. package/dist/events/index.js +1 -0
  34. package/dist/events/index.js.map +1 -1
  35. package/dist/projections/modelBound/addFrom.d.ts +2 -1
  36. package/dist/projections/modelBound/addFrom.d.ts.map +1 -1
  37. package/dist/projections/modelBound/addFrom.js +4 -3
  38. package/dist/projections/modelBound/addFrom.js.map +1 -1
  39. package/dist/projections/modelBound/childrenFrom.d.ts +2 -1
  40. package/dist/projections/modelBound/childrenFrom.d.ts.map +1 -1
  41. package/dist/projections/modelBound/childrenFrom.js +4 -3
  42. package/dist/projections/modelBound/childrenFrom.js.map +1 -1
  43. package/dist/projections/modelBound/clearWith.d.ts +2 -1
  44. package/dist/projections/modelBound/clearWith.d.ts.map +1 -1
  45. package/dist/projections/modelBound/clearWith.js +4 -3
  46. package/dist/projections/modelBound/clearWith.js.map +1 -1
  47. package/dist/projections/modelBound/count.d.ts +2 -1
  48. package/dist/projections/modelBound/count.d.ts.map +1 -1
  49. package/dist/projections/modelBound/count.js +4 -3
  50. package/dist/projections/modelBound/count.js.map +1 -1
  51. package/dist/projections/modelBound/decrement.d.ts +2 -1
  52. package/dist/projections/modelBound/decrement.d.ts.map +1 -1
  53. package/dist/projections/modelBound/decrement.js +4 -3
  54. package/dist/projections/modelBound/decrement.js.map +1 -1
  55. package/dist/projections/modelBound/fromAll.d.ts +2 -1
  56. package/dist/projections/modelBound/fromAll.d.ts.map +1 -1
  57. package/dist/projections/modelBound/fromAll.js +4 -3
  58. package/dist/projections/modelBound/fromAll.js.map +1 -1
  59. package/dist/projections/modelBound/fromEvery.d.ts +2 -1
  60. package/dist/projections/modelBound/fromEvery.d.ts.map +1 -1
  61. package/dist/projections/modelBound/fromEvery.js +4 -3
  62. package/dist/projections/modelBound/fromEvery.js.map +1 -1
  63. package/dist/projections/modelBound/increment.d.ts +2 -1
  64. package/dist/projections/modelBound/increment.d.ts.map +1 -1
  65. package/dist/projections/modelBound/increment.js +4 -3
  66. package/dist/projections/modelBound/increment.js.map +1 -1
  67. package/dist/projections/modelBound/join.d.ts +2 -1
  68. package/dist/projections/modelBound/join.d.ts.map +1 -1
  69. package/dist/projections/modelBound/join.js +4 -3
  70. package/dist/projections/modelBound/join.js.map +1 -1
  71. package/dist/projections/modelBound/nested.d.ts +1 -6
  72. package/dist/projections/modelBound/nested.d.ts.map +1 -1
  73. package/dist/projections/modelBound/nested.js +6 -2
  74. package/dist/projections/modelBound/nested.js.map +1 -1
  75. package/dist/projections/modelBound/noAutoMap.d.ts +4 -11
  76. package/dist/projections/modelBound/noAutoMap.d.ts.map +1 -1
  77. package/dist/projections/modelBound/noAutoMap.js +6 -2
  78. package/dist/projections/modelBound/noAutoMap.js.map +1 -1
  79. package/dist/projections/modelBound/removedWith.d.ts +2 -1
  80. package/dist/projections/modelBound/removedWith.d.ts.map +1 -1
  81. package/dist/projections/modelBound/removedWith.js +4 -3
  82. package/dist/projections/modelBound/removedWith.js.map +1 -1
  83. package/dist/projections/modelBound/removedWithJoin.d.ts +2 -1
  84. package/dist/projections/modelBound/removedWithJoin.d.ts.map +1 -1
  85. package/dist/projections/modelBound/removedWithJoin.js +4 -3
  86. package/dist/projections/modelBound/removedWithJoin.js.map +1 -1
  87. package/dist/projections/modelBound/setFrom.d.ts +2 -1
  88. package/dist/projections/modelBound/setFrom.d.ts.map +1 -1
  89. package/dist/projections/modelBound/setFrom.js +4 -3
  90. package/dist/projections/modelBound/setFrom.js.map +1 -1
  91. package/dist/projections/modelBound/setFromContext.d.ts +3 -2
  92. package/dist/projections/modelBound/setFromContext.d.ts.map +1 -1
  93. package/dist/projections/modelBound/setFromContext.js +4 -3
  94. package/dist/projections/modelBound/setFromContext.js.map +1 -1
  95. package/dist/projections/modelBound/setValue.d.ts +2 -1
  96. package/dist/projections/modelBound/setValue.d.ts.map +1 -1
  97. package/dist/projections/modelBound/setValue.js +4 -3
  98. package/dist/projections/modelBound/setValue.js.map +1 -1
  99. package/dist/projections/modelBound/subtractFrom.d.ts +2 -1
  100. package/dist/projections/modelBound/subtractFrom.d.ts.map +1 -1
  101. package/dist/projections/modelBound/subtractFrom.js +4 -3
  102. package/dist/projections/modelBound/subtractFrom.js.map +1 -1
  103. package/dist/readModels/readModel.d.ts +2 -1
  104. package/dist/readModels/readModel.d.ts.map +1 -1
  105. package/dist/readModels/readModel.js +22 -5
  106. package/dist/readModels/readModel.js.map +1 -1
  107. package/dist/schemas/JsonSchemaGenerator.d.ts +6 -1
  108. package/dist/schemas/JsonSchemaGenerator.d.ts.map +1 -1
  109. package/dist/schemas/JsonSchemaGenerator.js +41 -31
  110. package/dist/schemas/JsonSchemaGenerator.js.map +1 -1
  111. package/dist/schemas/createDeferredSchema.d.ts +7 -0
  112. package/dist/schemas/createDeferredSchema.d.ts.map +1 -0
  113. package/dist/schemas/createDeferredSchema.js +19 -0
  114. package/dist/schemas/createDeferredSchema.js.map +1 -0
  115. package/dist/schemas/index.d.ts +1 -0
  116. package/dist/schemas/index.d.ts.map +1 -1
  117. package/dist/schemas/index.js.map +1 -1
  118. package/dist/schemas/jsonSchemaProperty.d.ts +2 -1
  119. package/dist/schemas/jsonSchemaProperty.d.ts.map +1 -1
  120. package/dist/schemas/jsonSchemaProperty.js +3 -2
  121. package/dist/schemas/jsonSchemaProperty.js.map +1 -1
  122. package/dist/tsconfig.tsbuildinfo +1 -1
  123. package/dist/types/TypeIntrospector.d.ts.map +1 -1
  124. package/dist/types/TypeIntrospector.js +9 -3
  125. package/dist/types/TypeIntrospector.js.map +1 -1
  126. package/dist/types/index.d.ts +2 -0
  127. package/dist/types/index.d.ts.map +1 -1
  128. package/dist/types/propertyDecoratorMetadata.d.ts +17 -0
  129. package/dist/types/propertyDecoratorMetadata.d.ts.map +1 -0
  130. package/dist/types/propertyDecoratorMetadata.js +76 -0
  131. package/dist/types/propertyDecoratorMetadata.js.map +1 -0
  132. package/dist/types/standardDecoratorMetadata.d.ts +9 -0
  133. package/dist/types/standardDecoratorMetadata.d.ts.map +1 -0
  134. package/dist/types/standardDecoratorMetadata.js +20 -0
  135. package/dist/types/standardDecoratorMetadata.js.map +1 -0
  136. package/events/classDecorators.standard.spec.ts +77 -0
  137. package/events/eventTypeDecorator.ts +31 -13
  138. package/events/index.ts +2 -0
  139. package/package.json +3 -1
  140. package/projections/modelBound/addFrom.ts +5 -4
  141. package/projections/modelBound/childrenFrom.ts +5 -4
  142. package/projections/modelBound/clearWith.ts +5 -4
  143. package/projections/modelBound/count.ts +5 -4
  144. package/projections/modelBound/decorators.standard.spec.ts +71 -0
  145. package/projections/modelBound/decrement.ts +5 -4
  146. package/projections/modelBound/fromAll.ts +5 -4
  147. package/projections/modelBound/fromEvery.ts +5 -4
  148. package/projections/modelBound/increment.ts +5 -4
  149. package/projections/modelBound/join.ts +5 -4
  150. package/projections/modelBound/nested.ts +9 -2
  151. package/projections/modelBound/noAutoMap.ts +11 -2
  152. package/projections/modelBound/removedWith.ts +5 -4
  153. package/projections/modelBound/removedWithJoin.ts +5 -4
  154. package/projections/modelBound/setFrom.ts +5 -4
  155. package/projections/modelBound/setFromContext.ts +7 -6
  156. package/projections/modelBound/setValue.ts +5 -4
  157. package/projections/modelBound/subtractFrom.ts +5 -4
  158. package/readModels/readModel.ts +24 -6
  159. package/readModels/standardFallbacks.standard.spec.ts +39 -0
  160. package/schemas/JsonSchemaGenerator.confidentiality.spec.ts +2 -0
  161. package/schemas/JsonSchemaGenerator.spec.ts +28 -1
  162. package/schemas/JsonSchemaGenerator.ts +45 -30
  163. package/schemas/createDeferredSchema.ts +21 -0
  164. package/schemas/decorators.expected.fixture.ts +24 -0
  165. package/schemas/decorators.legacy.spec.ts +62 -0
  166. package/schemas/decorators.standard.spec.ts +235 -0
  167. package/schemas/index.ts +1 -0
  168. package/schemas/jsonSchemaProperty.ts +4 -3
  169. package/schemas/legacyDesignMetadata.spec.ts +39 -0
  170. package/types/TypeIntrospector.ts +8 -3
  171. package/types/index.ts +2 -0
  172. package/types/propertyDecoratorMetadata.ts +80 -0
  173. package/types/standardDecoratorMetadata.spec.ts +31 -0
  174. package/types/standardDecoratorMetadata.ts +26 -0
  175. package/vitest.config.ts +17 -0
@@ -2,6 +2,7 @@
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
  import 'reflect-metadata';
4
4
  import { TypeIntrospector } from '../../types/index.js';
5
+ import { decorateProperty, getPropertyMetadata } from '../../types/propertyDecoratorMetadata.js';
5
6
  const METADATA_KEY = 'chronicle:projection:fromEvery';
6
7
  /**
7
8
  * Property decorator that sets the decorated read model property from a property present on every projected event.
@@ -10,11 +11,11 @@ const METADATA_KEY = 'chronicle:projection:fromEvery';
10
11
  * @returns A property decorator.
11
12
  */
12
13
  export function fromEvery(property, contextProperty) {
13
- return (target, propertyKey) => {
14
+ return decorateProperty((target, propertyKey) => {
14
15
  TypeIntrospector.trackProperty(target.constructor, propertyKey.toString());
15
16
  const metadata = { property, contextProperty };
16
17
  Reflect.defineMetadata(METADATA_KEY, metadata, target, propertyKey.toString());
17
- };
18
+ });
18
19
  }
19
20
  /**
20
21
  * Retrieves fromEvery metadata stored on the given property.
@@ -23,6 +24,6 @@ export function fromEvery(property, contextProperty) {
23
24
  * @returns The fromEvery metadata, or undefined if not decorated.
24
25
  */
25
26
  export function getFromEveryMetadata(target, propertyKey) {
26
- return Reflect.getMetadata(METADATA_KEY, target, propertyKey);
27
+ return getPropertyMetadata(METADATA_KEY, target, propertyKey);
27
28
  }
28
29
  //# sourceMappingURL=fromEvery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fromEvery.js","sourceRoot":"","sources":["../../../projections/modelBound/fromEvery.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAUxD,MAAM,YAAY,GAAG,gCAAgC,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,QAAiB,EAAE,eAAwB;IACjE,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACpD,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1G,MAAM,QAAQ,GAAsB,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;QAClE,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnF,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,WAAmB;IACpE,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"fromEvery.js","sourceRoot":"","sources":["../../../projections/modelBound/fromEvery.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAA8B,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAU7H,MAAM,YAAY,GAAG,gCAAgC,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,QAAiB,EAAE,eAAwB;IACjE,OAAO,gBAAgB,CAAC,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACrE,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1G,MAAM,QAAQ,GAAsB,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;QAClE,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,WAAmB;IACpE,OAAO,mBAAmB,CAAoB,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACrF,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ import { ChroniclePropertyDecorator } from '../../types/propertyDecoratorMetadata.js';
2
3
  /** Metadata stored by the increment property decorator. */
3
4
  export interface IncrementMetadata {
4
5
  /** The event constructor that triggers the increment. */
@@ -12,7 +13,7 @@ export interface IncrementMetadata {
12
13
  * @param constantKey - Optional constant key value.
13
14
  * @returns A property decorator.
14
15
  */
15
- export declare function increment(eventType: Function, constantKey?: string): PropertyDecorator;
16
+ export declare function increment(eventType: Function, constantKey?: string): ChroniclePropertyDecorator;
16
17
  /**
17
18
  * Retrieves all increment metadata stored on the given property.
18
19
  * @param target - The class prototype.
@@ -1 +1 @@
1
- {"version":3,"file":"increment.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/increment.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAG1B,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CACjC;AAID;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAQtF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAE7F"}
1
+ {"version":3,"file":"increment.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/increment.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,0BAA0B,EAAyC,MAAM,0CAA0C,CAAC;AAE7H,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CACjC;AAID;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,0BAA0B,CAQ/F;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAE7F"}
@@ -2,6 +2,7 @@
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
  import 'reflect-metadata';
4
4
  import { TypeIntrospector } from '../../types/index.js';
5
+ import { decorateProperty, getPropertyMetadata } from '../../types/propertyDecoratorMetadata.js';
5
6
  const METADATA_KEY = 'chronicle:projection:increment';
6
7
  /**
7
8
  * Property decorator that increments the decorated read model property each time the specified event occurs.
@@ -10,13 +11,13 @@ const METADATA_KEY = 'chronicle:projection:increment';
10
11
  * @returns A property decorator.
11
12
  */
12
13
  export function increment(eventType, constantKey) {
13
- return (target, propertyKey) => {
14
+ return decorateProperty((target, propertyKey) => {
14
15
  const key = propertyKey.toString();
15
16
  TypeIntrospector.trackProperty(target.constructor, key);
16
17
  const existing = Reflect.getMetadata(METADATA_KEY, target, key) ?? [];
17
18
  const metadata = { eventType, constantKey };
18
19
  Reflect.defineMetadata(METADATA_KEY, [...existing, metadata], target, key);
19
- };
20
+ });
20
21
  }
21
22
  /**
22
23
  * Retrieves all increment metadata stored on the given property.
@@ -25,6 +26,6 @@ export function increment(eventType, constantKey) {
25
26
  * @returns An array of increment metadata entries.
26
27
  */
27
28
  export function getIncrementMetadata(target, propertyKey) {
28
- return Reflect.getMetadata(METADATA_KEY, target, propertyKey) ?? [];
29
+ return getPropertyMetadata(METADATA_KEY, target, propertyKey) ?? [];
29
30
  }
30
31
  //# sourceMappingURL=increment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"increment.js","sourceRoot":"","sources":["../../../projections/modelBound/increment.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAUxD,MAAM,YAAY,GAAG,gCAAgC,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,SAAmB,EAAE,WAAoB;IAC/D,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACpD,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACnC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAwB,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3F,MAAM,QAAQ,GAAsB,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;QAC/D,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/E,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,WAAmB;IACpE,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"increment.js","sourceRoot":"","sources":["../../../projections/modelBound/increment.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAA8B,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAU7H,MAAM,YAAY,GAAG,gCAAgC,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,SAAmB,EAAE,WAAoB;IAC/D,OAAO,gBAAgB,CAAC,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACrE,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACnC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAwB,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3F,MAAM,QAAQ,GAAsB,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;QAC/D,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,WAAmB;IACpE,OAAO,mBAAmB,CAAsB,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AAC7F,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ import { ChroniclePropertyDecorator } from '../../types/propertyDecoratorMetadata.js';
2
3
  /** Metadata stored by the join property decorator. */
3
4
  export interface JoinMetadata {
4
5
  /** The event constructor associated with this annotation. */
@@ -15,7 +16,7 @@ export interface JoinMetadata {
15
16
  * @param eventPropertyName - Optional event property name. Defaults to the property name.
16
17
  * @returns A property decorator.
17
18
  */
18
- export declare function join(eventType: Function, on?: string, eventPropertyName?: string): PropertyDecorator;
19
+ export declare function join(eventType: Function, on?: string, eventPropertyName?: string): ChroniclePropertyDecorator;
19
20
  /**
20
21
  * Retrieves all join metadata stored on the given property.
21
22
  * @param target - The class prototype.
@@ -1 +1 @@
1
- {"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/join.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAG1B,sDAAsD;AACtD,MAAM,WAAW,YAAY;IACzB,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,sGAAsG;IACtG,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACvC;AAID;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAQpG;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,YAAY,EAAE,CAEnF"}
1
+ {"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/join.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,0BAA0B,EAAyC,MAAM,0CAA0C,CAAC;AAE7H,sDAAsD;AACtD,MAAM,WAAW,YAAY;IACzB,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,sGAAsG;IACtG,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACvC;AAID;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,0BAA0B,CAQ7G;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,YAAY,EAAE,CAEnF"}
@@ -2,6 +2,7 @@
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
  import 'reflect-metadata';
4
4
  import { TypeIntrospector } from '../../types/index.js';
5
+ import { decorateProperty, getPropertyMetadata } from '../../types/propertyDecoratorMetadata.js';
5
6
  const METADATA_KEY = 'chronicle:projection:join';
6
7
  /**
7
8
  * Property decorator that configures a join relationship with an event type.
@@ -11,13 +12,13 @@ const METADATA_KEY = 'chronicle:projection:join';
11
12
  * @returns A property decorator.
12
13
  */
13
14
  export function join(eventType, on, eventPropertyName) {
14
- return (target, propertyKey) => {
15
+ return decorateProperty((target, propertyKey) => {
15
16
  const key = propertyKey.toString();
16
17
  TypeIntrospector.trackProperty(target.constructor, key);
17
18
  const existing = Reflect.getMetadata(METADATA_KEY, target, key) ?? [];
18
19
  const metadata = { eventType, on, eventPropertyName };
19
20
  Reflect.defineMetadata(METADATA_KEY, [...existing, metadata], target, key);
20
- };
21
+ });
21
22
  }
22
23
  /**
23
24
  * Retrieves all join metadata stored on the given property.
@@ -26,6 +27,6 @@ export function join(eventType, on, eventPropertyName) {
26
27
  * @returns An array of join metadata entries.
27
28
  */
28
29
  export function getJoinMetadata(target, propertyKey) {
29
- return Reflect.getMetadata(METADATA_KEY, target, propertyKey) ?? [];
30
+ return getPropertyMetadata(METADATA_KEY, target, propertyKey) ?? [];
30
31
  }
31
32
  //# sourceMappingURL=join.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"join.js","sourceRoot":"","sources":["../../../projections/modelBound/join.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAYxD,MAAM,YAAY,GAAG,2BAA2B,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,UAAU,IAAI,CAAC,SAAmB,EAAE,EAAW,EAAE,iBAA0B;IAC7E,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACpD,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACnC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAmB,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QACtF,MAAM,QAAQ,GAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC;QACpE,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/E,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,WAAmB;IAC/D,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"join.js","sourceRoot":"","sources":["../../../projections/modelBound/join.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAA8B,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAY7H,MAAM,YAAY,GAAG,2BAA2B,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,UAAU,IAAI,CAAC,SAAmB,EAAE,EAAW,EAAE,iBAA0B;IAC7E,OAAO,gBAAgB,CAAC,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACrE,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACnC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAmB,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QACtF,MAAM,QAAQ,GAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC;QACpE,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,WAAmB;IAC/D,OAAO,mBAAmB,CAAiB,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACxF,CAAC"}
@@ -1,11 +1,6 @@
1
1
  import 'reflect-metadata';
2
- /**
3
- * Property decorator that marks a single nullable property as a nested sub-projection object.
4
- * The nested type should carry its own fromEvent and optionally clearWith decorators.
5
- * @param target - The class prototype.
6
- * @param propertyKey - The property name.
7
- */
8
2
  export declare function nested(target: object, propertyKey: string | symbol): void;
3
+ export declare function nested(value: undefined, context: ClassFieldDecoratorContext): void;
9
4
  /**
10
5
  * Checks whether the given property is marked as a nested sub-projection.
11
6
  * @param target - The class prototype.
@@ -1 +1 @@
1
- {"version":3,"file":"nested.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/nested.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAK1B;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIzE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAErE"}
1
+ {"version":3,"file":"nested.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/nested.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAkB1B,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAC3E,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,0BAA0B,GAAG,IAAI,CAAC;AAKpF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAErE"}
@@ -2,6 +2,7 @@
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
  import 'reflect-metadata';
4
4
  import { TypeIntrospector } from '../../types/index.js';
5
+ import { decorateProperty, hasPropertyMetadata } from '../../types/propertyDecoratorMetadata.js';
5
6
  const METADATA_KEY = 'chronicle:projection:nested';
6
7
  /**
7
8
  * Property decorator that marks a single nullable property as a nested sub-projection object.
@@ -9,10 +10,13 @@ const METADATA_KEY = 'chronicle:projection:nested';
9
10
  * @param target - The class prototype.
10
11
  * @param propertyKey - The property name.
11
12
  */
12
- export function nested(target, propertyKey) {
13
+ const decorateNested = decorateProperty((target, propertyKey) => {
13
14
  const key = propertyKey.toString();
14
15
  TypeIntrospector.trackProperty(target.constructor, key);
15
16
  Reflect.defineMetadata(METADATA_KEY, true, target, key);
17
+ });
18
+ export function nested(target, propertyKeyOrContext) {
19
+ decorateNested(target, propertyKeyOrContext);
16
20
  }
17
21
  /**
18
22
  * Checks whether the given property is marked as a nested sub-projection.
@@ -21,6 +25,6 @@ export function nested(target, propertyKey) {
21
25
  * @returns True if the property is marked as nested; false otherwise.
22
26
  */
23
27
  export function isNested(target, propertyKey) {
24
- return Reflect.hasMetadata(METADATA_KEY, target, propertyKey);
28
+ return hasPropertyMetadata(METADATA_KEY, target, propertyKey);
25
29
  }
26
30
  //# sourceMappingURL=nested.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nested.js","sourceRoot":"","sources":["../../../projections/modelBound/nested.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,YAAY,GAAG,6BAA6B,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,MAAc,EAAE,WAA4B;IAC/D,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IACnC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACvF,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,WAAmB;IACxD,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"nested.js","sourceRoot":"","sources":["../../../projections/modelBound/nested.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAEjG,MAAM,YAAY,GAAG,6BAA6B,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,MAAc,EAAE,WAA4B,EAAQ,EAAE;IAC3F,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IACnC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACvF,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAIH,MAAM,UAAU,MAAM,CAAC,MAA0B,EAAE,oBAAkE;IACjH,cAAc,CAAC,MAAmB,EAAE,oBAAkD,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,WAAmB;IACxD,OAAO,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAClE,CAAC"}
@@ -1,15 +1,8 @@
1
1
  import 'reflect-metadata';
2
- /**
3
- * Class or property decorator that disables AutoMap for a model-bound projection.
4
- * Applied to a class, it prevents AutoMap from mapping any property automatically.
5
- * Applied to a property, it excludes only that single property from AutoMap while every other
6
- * property keeps mapping - use it to stop an unrelated event that carries an identically named
7
- * property from silently overwriting a property whose value is set explicitly (for example via
8
- * `setFrom`).
9
- * @param target - The class constructor, or the class prototype when used on a property.
10
- * @param propertyKey - The property name, when used as a property decorator.
11
- */
12
- export declare function noAutoMap(target: object, propertyKey?: string | symbol): void;
2
+ export declare function noAutoMap(target: Function): void;
3
+ export declare function noAutoMap(target: object, propertyKey: string | symbol): void;
4
+ export declare function noAutoMap(value: Function, context: ClassDecoratorContext): void;
5
+ export declare function noAutoMap(value: undefined, context: ClassFieldDecoratorContext): void;
13
6
  /**
14
7
  * Checks whether the given class has AutoMap disabled entirely.
15
8
  * @param target - The class constructor.
@@ -1 +1 @@
1
- {"version":3,"file":"noAutoMap.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/noAutoMap.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAM1B;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ7E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAEhF"}
1
+ {"version":3,"file":"noAutoMap.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/noAutoMap.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AA2B1B,wBAAgB,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;AAClD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAC9E,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAC;AACjF,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,0BAA0B,GAAG,IAAI,CAAC;AAKvF;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAEhF"}
@@ -2,6 +2,7 @@
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
  import 'reflect-metadata';
4
4
  import { TypeIntrospector } from '../../types/index.js';
5
+ import { decorateClassOrProperty, hasPropertyMetadata } from '../../types/propertyDecoratorMetadata.js';
5
6
  const CLASS_METADATA_KEY = 'chronicle:projection:noAutoMap:class';
6
7
  const PROPERTY_METADATA_KEY = 'chronicle:projection:noAutoMap:property';
7
8
  /**
@@ -14,7 +15,7 @@ const PROPERTY_METADATA_KEY = 'chronicle:projection:noAutoMap:property';
14
15
  * @param target - The class constructor, or the class prototype when used on a property.
15
16
  * @param propertyKey - The property name, when used as a property decorator.
16
17
  */
17
- export function noAutoMap(target, propertyKey) {
18
+ const decorateNoAutoMap = decorateClassOrProperty((target, propertyKey) => {
18
19
  if (propertyKey !== undefined) {
19
20
  const key = propertyKey.toString();
20
21
  TypeIntrospector.trackProperty(target.constructor, key);
@@ -23,6 +24,9 @@ export function noAutoMap(target, propertyKey) {
23
24
  else {
24
25
  Reflect.defineMetadata(CLASS_METADATA_KEY, true, target);
25
26
  }
27
+ });
28
+ export function noAutoMap(target, propertyKeyOrContext) {
29
+ decorateNoAutoMap(target, propertyKeyOrContext);
26
30
  }
27
31
  /**
28
32
  * Checks whether the given class has AutoMap disabled entirely.
@@ -39,6 +43,6 @@ export function isNoAutoMap(target) {
39
43
  * @returns True if the property is marked with {@link noAutoMap}; false otherwise.
40
44
  */
41
45
  export function isPropertyNoAutoMap(target, propertyKey) {
42
- return Reflect.hasMetadata(PROPERTY_METADATA_KEY, target, propertyKey);
46
+ return hasPropertyMetadata(PROPERTY_METADATA_KEY, target, propertyKey);
43
47
  }
44
48
  //# sourceMappingURL=noAutoMap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"noAutoMap.js","sourceRoot":"","sources":["../../../projections/modelBound/noAutoMap.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;AAClE,MAAM,qBAAqB,GAAG,yCAAyC,CAAC;AAExE;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,WAA6B;IACnE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACnC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACvF,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,EAAE,MAAkB,CAAC,CAAC;IACzE,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAgB;IACxC,OAAO,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,WAAmB;IACnE,OAAO,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAC3E,CAAC"}
1
+ {"version":3,"file":"noAutoMap.js","sourceRoot":"","sources":["../../../projections/modelBound/noAutoMap.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAExG,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;AAClE,MAAM,qBAAqB,GAAG,yCAAyC,CAAC;AAExE;;;;;;;;;GASG;AACH,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,CAAC,MAAc,EAAE,WAA6B,EAAQ,EAAE;IACtG,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACnC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACvF,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,EAAE,MAAkB,CAAC,CAAC;IACzE,CAAC;AACL,CAAC,CAAC,CAAC;AAMH,MAAM,UAAU,SAAS,CAAC,MAA0B,EAAE,oBAA2F;IAC7I,iBAAiB,CAAC,MAAkB,EAAE,oBAA6C,CAAC,CAAC;AACzF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAgB;IACxC,OAAO,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,WAAmB;IACnE,OAAO,mBAAmB,CAAC,qBAAqB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAC3E,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ import { ChronicleClassOrPropertyDecorator } from '../../types/propertyDecoratorMetadata.js';
2
3
  /** Metadata stored by the removedWith class or property decorator. */
3
4
  export interface RemovedWithMetadata {
4
5
  /** The event constructor that triggers removal. */
@@ -17,7 +18,7 @@ export interface RemovedWithMetadata {
17
18
  * @param parentKey - Optional event property name used as the parent key (for children only).
18
19
  * @returns A class and property decorator.
19
20
  */
20
- export declare function removedWith(eventType: Function, key?: string, parentKey?: string): ClassDecorator & PropertyDecorator;
21
+ export declare function removedWith(eventType: Function, key?: string, parentKey?: string): ChronicleClassOrPropertyDecorator;
21
22
  /**
22
23
  * Retrieves removedWith metadata stored on the given class constructor.
23
24
  * @param target - The class constructor.
@@ -1 +1 @@
1
- {"version":3,"file":"removedWith.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/removedWith.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAG1B,sEAAsE;AACtE,MAAM,WAAW,mBAAmB;IAChC,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,+GAA+G;IAC/G,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,2HAA2H;IAC3H,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC/B;AAKD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,iBAAiB,CAYrH;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,QAAQ,GAAG,mBAAmB,EAAE,CAEnF;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAEzG"}
1
+ {"version":3,"file":"removedWith.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/removedWith.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iCAAiC,EAAgD,MAAM,0CAA0C,CAAC;AAE3I,sEAAsE;AACtE,MAAM,WAAW,mBAAmB;IAChC,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,+GAA+G;IAC/G,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,2HAA2H;IAC3H,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC/B;AAKD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,iCAAiC,CAYpH;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,QAAQ,GAAG,mBAAmB,EAAE,CAEnF;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAEzG"}
@@ -2,6 +2,7 @@
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
  import 'reflect-metadata';
4
4
  import { TypeIntrospector } from '../../types/index.js';
5
+ import { decorateClassOrProperty, getPropertyMetadata } from '../../types/propertyDecoratorMetadata.js';
5
6
  const CLASS_METADATA_KEY = 'chronicle:projection:removedWith:class';
6
7
  const PROPERTY_METADATA_KEY = 'chronicle:projection:removedWith:property';
7
8
  /**
@@ -14,7 +15,7 @@ const PROPERTY_METADATA_KEY = 'chronicle:projection:removedWith:property';
14
15
  * @returns A class and property decorator.
15
16
  */
16
17
  export function removedWith(eventType, key, parentKey) {
17
- return (target, propertyKey) => {
18
+ return decorateClassOrProperty((target, propertyKey) => {
18
19
  if (propertyKey !== undefined) {
19
20
  const propKey = propertyKey.toString();
20
21
  TypeIntrospector.trackProperty(target.constructor, propKey);
@@ -25,7 +26,7 @@ export function removedWith(eventType, key, parentKey) {
25
26
  const existing = Reflect.getMetadata(CLASS_METADATA_KEY, target) ?? [];
26
27
  Reflect.defineMetadata(CLASS_METADATA_KEY, [...existing, { eventType, key, parentKey }], target);
27
28
  }
28
- };
29
+ });
29
30
  }
30
31
  /**
31
32
  * Retrieves removedWith metadata stored on the given class constructor.
@@ -42,6 +43,6 @@ export function getRemovedWithClassMetadata(target) {
42
43
  * @returns An array of removedWith metadata entries.
43
44
  */
44
45
  export function getRemovedWithPropertyMetadata(target, propertyKey) {
45
- return Reflect.getMetadata(PROPERTY_METADATA_KEY, target, propertyKey) ?? [];
46
+ return getPropertyMetadata(PROPERTY_METADATA_KEY, target, propertyKey) ?? [];
46
47
  }
47
48
  //# sourceMappingURL=removedWith.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"removedWith.js","sourceRoot":"","sources":["../../../projections/modelBound/removedWith.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAYxD,MAAM,kBAAkB,GAAG,wCAAwC,CAAC;AACpE,MAAM,qBAAqB,GAAG,2CAA2C,CAAC;AAE1E;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,SAAmB,EAAE,GAAY,EAAE,SAAkB;IAC7E,OAAO,CAAC,MAAc,EAAE,WAA6B,EAAE,EAAE;QACrD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;YACvC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC3F,MAAM,QAAQ,GAA0B,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1G,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACjH,CAAC;aAAM,CAAC;YACJ,MAAM,QAAQ,GAA0B,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9F,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACrG,CAAC;IACL,CAAC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAgB;IACxD,OAAO,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,MAAc,EAAE,WAAmB;IAC9E,OAAO,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"removedWith.js","sourceRoot":"","sources":["../../../projections/modelBound/removedWith.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAqC,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAY3I,MAAM,kBAAkB,GAAG,wCAAwC,CAAC;AACpE,MAAM,qBAAqB,GAAG,2CAA2C,CAAC;AAE1E;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,SAAmB,EAAE,GAAY,EAAE,SAAkB;IAC7E,OAAO,uBAAuB,CAAC,CAAC,MAAc,EAAE,WAA6B,EAAE,EAAE;QAC7E,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;YACvC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC3F,MAAM,QAAQ,GAA0B,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1G,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACjH,CAAC;aAAM,CAAC;YACJ,MAAM,QAAQ,GAA0B,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9F,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACrG,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAgB;IACxD,OAAO,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,MAAc,EAAE,WAAmB;IAC9E,OAAO,mBAAmB,CAAwB,qBAAqB,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACxG,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ import { ChronicleClassOrPropertyDecorator } from '../../types/propertyDecoratorMetadata.js';
2
3
  /** Metadata stored by the removedWithJoin class or property decorator. */
3
4
  export interface RemovedWithJoinMetadata {
4
5
  /** The event constructor that triggers removal via a join. */
@@ -12,7 +13,7 @@ export interface RemovedWithJoinMetadata {
12
13
  * @param key - Optional event property name used as the key to identify the instance to remove.
13
14
  * @returns A class and property decorator.
14
15
  */
15
- export declare function removedWithJoin(eventType: Function, key?: string): ClassDecorator & PropertyDecorator;
16
+ export declare function removedWithJoin(eventType: Function, key?: string): ChronicleClassOrPropertyDecorator;
16
17
  /**
17
18
  * Retrieves removedWithJoin metadata stored on the given class constructor.
18
19
  * @param target - The class constructor.
@@ -1 +1 @@
1
- {"version":3,"file":"removedWithJoin.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/removedWithJoin.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAG1B,0EAA0E;AAC1E,MAAM,WAAW,uBAAuB;IACpC,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,+GAA+G;IAC/G,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACzB;AAKD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,iBAAiB,CAYrG;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,QAAQ,GAAG,uBAAuB,EAAE,CAE3F;AAED;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,uBAAuB,EAAE,CAEjH"}
1
+ {"version":3,"file":"removedWithJoin.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/removedWithJoin.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iCAAiC,EAAgD,MAAM,0CAA0C,CAAC;AAE3I,0EAA0E;AAC1E,MAAM,WAAW,uBAAuB;IACpC,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,+GAA+G;IAC/G,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACzB;AAKD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,iCAAiC,CAYpG;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,QAAQ,GAAG,uBAAuB,EAAE,CAE3F;AAED;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,uBAAuB,EAAE,CAEjH"}
@@ -2,6 +2,7 @@
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
  import 'reflect-metadata';
4
4
  import { TypeIntrospector } from '../../types/index.js';
5
+ import { decorateClassOrProperty, getPropertyMetadata } from '../../types/propertyDecoratorMetadata.js';
5
6
  const CLASS_METADATA_KEY = 'chronicle:projection:removedWithJoin:class';
6
7
  const PROPERTY_METADATA_KEY = 'chronicle:projection:removedWithJoin:property';
7
8
  /**
@@ -11,7 +12,7 @@ const PROPERTY_METADATA_KEY = 'chronicle:projection:removedWithJoin:property';
11
12
  * @returns A class and property decorator.
12
13
  */
13
14
  export function removedWithJoin(eventType, key) {
14
- return (target, propertyKey) => {
15
+ return decorateClassOrProperty((target, propertyKey) => {
15
16
  if (propertyKey !== undefined) {
16
17
  const propKey = propertyKey.toString();
17
18
  TypeIntrospector.trackProperty(target.constructor, propKey);
@@ -22,7 +23,7 @@ export function removedWithJoin(eventType, key) {
22
23
  const existing = Reflect.getMetadata(CLASS_METADATA_KEY, target) ?? [];
23
24
  Reflect.defineMetadata(CLASS_METADATA_KEY, [...existing, { eventType, key }], target);
24
25
  }
25
- };
26
+ });
26
27
  }
27
28
  /**
28
29
  * Retrieves removedWithJoin metadata stored on the given class constructor.
@@ -39,6 +40,6 @@ export function getRemovedWithJoinClassMetadata(target) {
39
40
  * @returns An array of removedWithJoin metadata entries.
40
41
  */
41
42
  export function getRemovedWithJoinPropertyMetadata(target, propertyKey) {
42
- return Reflect.getMetadata(PROPERTY_METADATA_KEY, target, propertyKey) ?? [];
43
+ return getPropertyMetadata(PROPERTY_METADATA_KEY, target, propertyKey) ?? [];
43
44
  }
44
45
  //# sourceMappingURL=removedWithJoin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"removedWithJoin.js","sourceRoot":"","sources":["../../../projections/modelBound/removedWithJoin.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAUxD,MAAM,kBAAkB,GAAG,4CAA4C,CAAC;AACxE,MAAM,qBAAqB,GAAG,+CAA+C,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,SAAmB,EAAE,GAAY;IAC7D,OAAO,CAAC,MAAc,EAAE,WAA6B,EAAE,EAAE;QACrD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;YACvC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC3F,MAAM,QAAQ,GAA8B,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YAC9G,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACtG,CAAC;aAAM,CAAC;YACJ,MAAM,QAAQ,GAA8B,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YAClG,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1F,CAAC;IACL,CAAC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAAC,MAAgB;IAC5D,OAAO,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kCAAkC,CAAC,MAAc,EAAE,WAAmB;IAClF,OAAO,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"removedWithJoin.js","sourceRoot":"","sources":["../../../projections/modelBound/removedWithJoin.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAqC,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAU3I,MAAM,kBAAkB,GAAG,4CAA4C,CAAC;AACxE,MAAM,qBAAqB,GAAG,+CAA+C,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,SAAmB,EAAE,GAAY;IAC7D,OAAO,uBAAuB,CAAC,CAAC,MAAc,EAAE,WAA6B,EAAE,EAAE;QAC7E,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;YACvC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC3F,MAAM,QAAQ,GAA8B,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YAC9G,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACtG,CAAC;aAAM,CAAC;YACJ,MAAM,QAAQ,GAA8B,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YAClG,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1F,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAAC,MAAgB;IAC5D,OAAO,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kCAAkC,CAAC,MAAc,EAAE,WAAmB;IAClF,OAAO,mBAAmB,CAA4B,qBAAqB,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AAC5G,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ import { ChroniclePropertyDecorator } from '../../types/propertyDecoratorMetadata.js';
2
3
  /** Metadata stored by the setFrom property decorator. */
3
4
  export interface SetFromMetadata {
4
5
  /** The event constructor associated with this annotation. */
@@ -12,7 +13,7 @@ export interface SetFromMetadata {
12
13
  * @param eventPropertyName - Optional event property name. Defaults to the property name.
13
14
  * @returns A property decorator.
14
15
  */
15
- export declare function setFrom(eventType: Function, eventPropertyName?: string): PropertyDecorator;
16
+ export declare function setFrom(eventType: Function, eventPropertyName?: string): ChroniclePropertyDecorator;
16
17
  /**
17
18
  * Retrieves all setFrom metadata stored on the given property.
18
19
  * @param target - The class prototype.
@@ -1 +1 @@
1
- {"version":3,"file":"setFrom.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/setFrom.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAG1B,yDAAyD;AACzD,MAAM,WAAW,eAAe;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,+FAA+F;IAC/F,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACvC;AAID;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAQ1F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,EAAE,CAEzF"}
1
+ {"version":3,"file":"setFrom.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/setFrom.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,0BAA0B,EAAyC,MAAM,0CAA0C,CAAC;AAE7H,yDAAyD;AACzD,MAAM,WAAW,eAAe;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,+FAA+F;IAC/F,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACvC;AAID;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,0BAA0B,CAQnG;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,EAAE,CAEzF"}
@@ -2,6 +2,7 @@
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
  import 'reflect-metadata';
4
4
  import { TypeIntrospector } from '../../types/index.js';
5
+ import { decorateProperty, getPropertyMetadata } from '../../types/propertyDecoratorMetadata.js';
5
6
  const METADATA_KEY = 'chronicle:projection:setFrom';
6
7
  /**
7
8
  * Property decorator that maps an event property value onto the decorated read model property.
@@ -10,13 +11,13 @@ const METADATA_KEY = 'chronicle:projection:setFrom';
10
11
  * @returns A property decorator.
11
12
  */
12
13
  export function setFrom(eventType, eventPropertyName) {
13
- return (target, propertyKey) => {
14
+ return decorateProperty((target, propertyKey) => {
14
15
  const key = propertyKey.toString();
15
16
  TypeIntrospector.trackProperty(target.constructor, key);
16
17
  const existing = Reflect.getMetadata(METADATA_KEY, target, key) ?? [];
17
18
  const metadata = { eventType, eventPropertyName };
18
19
  Reflect.defineMetadata(METADATA_KEY, [...existing, metadata], target, key);
19
- };
20
+ });
20
21
  }
21
22
  /**
22
23
  * Retrieves all setFrom metadata stored on the given property.
@@ -25,6 +26,6 @@ export function setFrom(eventType, eventPropertyName) {
25
26
  * @returns An array of setFrom metadata entries.
26
27
  */
27
28
  export function getSetFromMetadata(target, propertyKey) {
28
- return Reflect.getMetadata(METADATA_KEY, target, propertyKey) ?? [];
29
+ return getPropertyMetadata(METADATA_KEY, target, propertyKey) ?? [];
29
30
  }
30
31
  //# sourceMappingURL=setFrom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setFrom.js","sourceRoot":"","sources":["../../../projections/modelBound/setFrom.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAUxD,MAAM,YAAY,GAAG,8BAA8B,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,SAAmB,EAAE,iBAA0B;IACnE,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACpD,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACnC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAsB,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QACzF,MAAM,QAAQ,GAAoB,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;QACnE,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/E,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,WAAmB;IAClE,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"setFrom.js","sourceRoot":"","sources":["../../../projections/modelBound/setFrom.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAA8B,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAU7H,MAAM,YAAY,GAAG,8BAA8B,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,SAAmB,EAAE,iBAA0B;IACnE,OAAO,gBAAgB,CAAC,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACrE,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACnC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAsB,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QACzF,MAAM,QAAQ,GAAoB,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;QACnE,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,WAAmB;IAClE,OAAO,mBAAmB,CAAoB,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AAC3F,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import 'reflect-metadata';
2
2
  import { PropertyAccessor } from '@cratis/fundamentals';
3
3
  import type { EventContext } from '../../events/index.js';
4
+ import { ChroniclePropertyDecorator } from '../../types/propertyDecoratorMetadata.js';
4
5
  /** Metadata stored by the setFromContext property decorator. */
5
6
  export interface SetFromContextMetadata {
6
7
  /** The event constructor associated with this annotation. */
@@ -14,8 +15,8 @@ export interface SetFromContextMetadata {
14
15
  * @param contextPropertyOrAccessor - Optional event context property name or property accessor. Defaults to the property name.
15
16
  * @returns A property decorator.
16
17
  */
17
- export declare function setFromContext(eventType: Function, contextPropertyName?: string): PropertyDecorator;
18
- export declare function setFromContext(eventType: Function, contextPropertyAccessor?: PropertyAccessor<EventContext>): PropertyDecorator;
18
+ export declare function setFromContext(eventType: Function, contextPropertyName?: string): ChroniclePropertyDecorator;
19
+ export declare function setFromContext(eventType: Function, contextPropertyAccessor?: PropertyAccessor<EventContext>): ChroniclePropertyDecorator;
19
20
  /**
20
21
  * Retrieves all setFromContext metadata stored on the given property.
21
22
  * @param target - The class prototype.
@@ -1 +1 @@
1
- {"version":3,"file":"setFromContext.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/setFromContext.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAoC,MAAM,sBAAsB,CAAC;AAC1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,gEAAgE;AAChE,MAAM,WAAW,sBAAsB;IACnC,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,uGAAuG;IACvG,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACzC;AAID;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;AACrG,wBAAgB,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,uBAAuB,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,GAAG,iBAAiB,CAAC;AAyBjI;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,sBAAsB,EAAE,CAEvG"}
1
+ {"version":3,"file":"setFromContext.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/setFromContext.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAoC,MAAM,sBAAsB,CAAC;AAC1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,0BAA0B,EAAyC,MAAM,0CAA0C,CAAC;AAE7H,gEAAgE;AAChE,MAAM,WAAW,sBAAsB;IACnC,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,uGAAuG;IACvG,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACzC;AAID;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,0BAA0B,CAAC;AAC9G,wBAAgB,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,uBAAuB,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,GAAG,0BAA0B,CAAC;AAyB1I;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,sBAAsB,EAAE,CAEvG"}
@@ -3,9 +3,10 @@
3
3
  import 'reflect-metadata';
4
4
  import { PropertyPathResolverProxyHandler } from '@cratis/fundamentals';
5
5
  import { TypeIntrospector } from '../../types/index.js';
6
+ import { decorateProperty, getPropertyMetadata } from '../../types/propertyDecoratorMetadata.js';
6
7
  const METADATA_KEY = 'chronicle:projection:setFromContext';
7
8
  export function setFromContext(eventType, contextPropertyOrAccessor) {
8
- return (target, propertyKey) => {
9
+ return decorateProperty((target, propertyKey) => {
9
10
  const key = propertyKey.toString();
10
11
  TypeIntrospector.trackProperty(target.constructor, key);
11
12
  const existing = Reflect.getMetadata(METADATA_KEY, target, key) ?? [];
@@ -21,7 +22,7 @@ export function setFromContext(eventType, contextPropertyOrAccessor) {
21
22
  }
22
23
  const metadata = { eventType, contextPropertyName };
23
24
  Reflect.defineMetadata(METADATA_KEY, [...existing, metadata], target, key);
24
- };
25
+ });
25
26
  }
26
27
  /**
27
28
  * Retrieves all setFromContext metadata stored on the given property.
@@ -30,6 +31,6 @@ export function setFromContext(eventType, contextPropertyOrAccessor) {
30
31
  * @returns An array of setFromContext metadata entries.
31
32
  */
32
33
  export function getSetFromContextMetadata(target, propertyKey) {
33
- return Reflect.getMetadata(METADATA_KEY, target, propertyKey) ?? [];
34
+ return getPropertyMetadata(METADATA_KEY, target, propertyKey) ?? [];
34
35
  }
35
36
  //# sourceMappingURL=setFromContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setFromContext.js","sourceRoot":"","sources":["../../../projections/modelBound/setFromContext.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAoB,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAUxD,MAAM,YAAY,GAAG,qCAAqC,CAAC;AAU3D,MAAM,UAAU,cAAc,CAC1B,SAAmB,EACnB,yBAAmE;IAEnE,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACpD,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACnC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACvF,MAAM,QAAQ,GAA6B,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QAEhG,IAAI,mBAAuC,CAAC;QAC5C,IAAI,OAAO,yBAAyB,KAAK,QAAQ,EAAE,CAAC;YAChD,mBAAmB,GAAG,yBAAyB,CAAC;QACpD,CAAC;aAAM,IAAI,OAAO,yBAAyB,KAAK,UAAU,EAAE,CAAC;YACzD,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;YACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACrC,yBAAyB,CAAC,KAAqB,CAAC,CAAC;YACjD,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC3C,CAAC;QAED,MAAM,QAAQ,GAA2B,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;QAC5E,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/E,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAc,EAAE,WAAmB;IACzE,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"setFromContext.js","sourceRoot":"","sources":["../../../projections/modelBound/setFromContext.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAoB,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAA8B,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAU7H,MAAM,YAAY,GAAG,qCAAqC,CAAC;AAU3D,MAAM,UAAU,cAAc,CAC1B,SAAmB,EACnB,yBAAmE;IAEnE,OAAO,gBAAgB,CAAC,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACrE,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACnC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACvF,MAAM,QAAQ,GAA6B,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QAEhG,IAAI,mBAAuC,CAAC;QAC5C,IAAI,OAAO,yBAAyB,KAAK,QAAQ,EAAE,CAAC;YAChD,mBAAmB,GAAG,yBAAyB,CAAC;QACpD,CAAC;aAAM,IAAI,OAAO,yBAAyB,KAAK,UAAU,EAAE,CAAC;YACzD,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;YACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACrC,yBAAyB,CAAC,KAAqB,CAAC,CAAC;YACjD,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC3C,CAAC;QAED,MAAM,QAAQ,GAA2B,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;QAC5E,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAc,EAAE,WAAmB;IACzE,OAAO,mBAAmB,CAA2B,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AAClG,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ import { ChroniclePropertyDecorator } from '../../types/propertyDecoratorMetadata.js';
2
3
  /** Metadata stored by the setValue property decorator. */
3
4
  export interface SetValueMetadata {
4
5
  /** The event constructor that triggers the value assignment. */
@@ -12,7 +13,7 @@ export interface SetValueMetadata {
12
13
  * @param value - The constant value to assign.
13
14
  * @returns A property decorator.
14
15
  */
15
- export declare function setValue(eventType: Function, value: unknown): PropertyDecorator;
16
+ export declare function setValue(eventType: Function, value: unknown): ChroniclePropertyDecorator;
16
17
  /**
17
18
  * Retrieves all setValue metadata stored on the given property.
18
19
  * @param target - The class prototype.
@@ -1 +1 @@
1
- {"version":3,"file":"setValue.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/setValue.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAG1B,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CAC3B;AAID;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAQ/E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAE3F"}
1
+ {"version":3,"file":"setValue.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/setValue.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,0BAA0B,EAAyC,MAAM,0CAA0C,CAAC;AAE7H,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CAC3B;AAID;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,0BAA0B,CAQxF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAE3F"}
@@ -2,6 +2,7 @@
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
  import 'reflect-metadata';
4
4
  import { TypeIntrospector } from '../../types/index.js';
5
+ import { decorateProperty, getPropertyMetadata } from '../../types/propertyDecoratorMetadata.js';
5
6
  const METADATA_KEY = 'chronicle:projection:setValue';
6
7
  /**
7
8
  * Property decorator that sets the decorated read model property to a constant value when the specified event occurs.
@@ -10,13 +11,13 @@ const METADATA_KEY = 'chronicle:projection:setValue';
10
11
  * @returns A property decorator.
11
12
  */
12
13
  export function setValue(eventType, value) {
13
- return (target, propertyKey) => {
14
+ return decorateProperty((target, propertyKey) => {
14
15
  const key = propertyKey.toString();
15
16
  TypeIntrospector.trackProperty(target.constructor, key);
16
17
  const existing = Reflect.getMetadata(METADATA_KEY, target, key) ?? [];
17
18
  const metadata = { eventType, value };
18
19
  Reflect.defineMetadata(METADATA_KEY, [...existing, metadata], target, key);
19
- };
20
+ });
20
21
  }
21
22
  /**
22
23
  * Retrieves all setValue metadata stored on the given property.
@@ -25,6 +26,6 @@ export function setValue(eventType, value) {
25
26
  * @returns An array of setValue metadata entries.
26
27
  */
27
28
  export function getSetValueMetadata(target, propertyKey) {
28
- return Reflect.getMetadata(METADATA_KEY, target, propertyKey) ?? [];
29
+ return getPropertyMetadata(METADATA_KEY, target, propertyKey) ?? [];
29
30
  }
30
31
  //# sourceMappingURL=setValue.js.map