@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
@@ -5,6 +5,7 @@ import { SecurityMetadataType } from './SecurityMetadataType.js';
5
5
  import { EncryptionScope } from './EncryptionScope.js';
6
6
  import { EncryptedNotSupportedOnEventSourceId } from './EncryptedNotSupportedOnEventSourceId.js';
7
7
  import { TypeIntrospector } from '../types/index.js';
8
+ import { decorateClassOrProperty, getPropertyMetadata, hasPropertyMetadata } from '../types/propertyDecoratorMetadata.js';
8
9
  /** The property name this client uses everywhere for the event source identifier. */
9
10
  const EVENT_SOURCE_ID_PROPERTY = 'eventSourceId';
10
11
  /** Metadata key for the encrypted decorator on properties. */
@@ -63,7 +64,7 @@ function metadataTypeFor(scope) {
63
64
  * ```
64
65
  */
65
66
  export function encrypted(scope = EncryptionScope.Subject, details) {
66
- return (target, propertyKey) => {
67
+ return decorateClassOrProperty((target, propertyKey) => {
67
68
  // Class decorator usage (for types like ConceptAs)
68
69
  if (typeof target === 'function' && propertyKey === undefined) {
69
70
  const metadata = {
@@ -82,7 +83,7 @@ export function encrypted(scope = EncryptionScope.Subject, details) {
82
83
  // look up the key that protects everything else. Mirrors @pii()'s
83
84
  // PIINotSupportedOnEventSourceId guard, for the same reason.
84
85
  if (key === EVENT_SOURCE_ID_PROPERTY) {
85
- throw new EncryptedNotSupportedOnEventSourceId(declaringType.name);
86
+ throw new EncryptedNotSupportedOnEventSourceId(declaringType.name || 'the decorated class');
86
87
  }
87
88
  TypeIntrospector.trackProperty(declaringType, key);
88
89
  const metadata = {
@@ -91,7 +92,7 @@ export function encrypted(scope = EncryptionScope.Subject, details) {
91
92
  };
92
93
  Reflect.defineMetadata(ENCRYPTED_PROPERTY_METADATA_KEY, metadata, target, key);
93
94
  }
94
- };
95
+ });
95
96
  }
96
97
  /**
97
98
  * Gets the encrypted security metadata for a property.
@@ -100,7 +101,7 @@ export function encrypted(scope = EncryptionScope.Subject, details) {
100
101
  * @returns The security metadata, or undefined if not decorated with @encrypted.
101
102
  */
102
103
  export function getEncryptedMetadata(target, propertyKey) {
103
- return Reflect.getMetadata(ENCRYPTED_PROPERTY_METADATA_KEY, target, propertyKey);
104
+ return getPropertyMetadata(ENCRYPTED_PROPERTY_METADATA_KEY, target, propertyKey);
104
105
  }
105
106
  /**
106
107
  * Checks whether a property has been decorated with @encrypted.
@@ -109,7 +110,7 @@ export function getEncryptedMetadata(target, propertyKey) {
109
110
  * @returns True if the property has @encrypted decorator; false otherwise.
110
111
  */
111
112
  export function hasEncryptedMetadata(target, propertyKey) {
112
- return Reflect.hasMetadata(ENCRYPTED_PROPERTY_METADATA_KEY, target, propertyKey);
113
+ return hasPropertyMetadata(ENCRYPTED_PROPERTY_METADATA_KEY, target, propertyKey);
113
114
  }
114
115
  /**
115
116
  * Gets the encrypted security metadata for a type.
@@ -1 +1 @@
1
- {"version":3,"file":"encrypted.js","sourceRoot":"","sources":["../../confidentiality/encrypted.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encrypted.js","sourceRoot":"","sources":["../../confidentiality/encrypted.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import 'reflect-metadata';
2
2
  import { EventType } from './EventType.js';
3
3
  import { JsonSchema } from '../schemas/index.js';
4
+ import { ChronicleClassDecorator } from '../types/standardDecoratorMetadata.js';
4
5
  /**
5
6
  * Metadata stored for an event type class.
6
7
  */
@@ -37,13 +38,13 @@ export interface EventTypeMetadata {
37
38
  * }
38
39
  * ```
39
40
  */
40
- export declare function eventType(): ClassDecorator;
41
- export declare function eventType(id: string): ClassDecorator;
42
- export declare function eventType(id: string, generation: number): ClassDecorator;
43
- export declare function eventType(id: string, generation: number, tombstone: boolean): ClassDecorator;
44
- export declare function eventType(generation: number): ClassDecorator;
45
- export declare function eventType(generation: number, tombstone: boolean): ClassDecorator;
46
- export declare function eventType(tombstone: boolean): ClassDecorator;
41
+ export declare function eventType(): ChronicleClassDecorator;
42
+ export declare function eventType(id: string): ChronicleClassDecorator;
43
+ export declare function eventType(id: string, generation: number): ChronicleClassDecorator;
44
+ export declare function eventType(id: string, generation: number, tombstone: boolean): ChronicleClassDecorator;
45
+ export declare function eventType(generation: number): ChronicleClassDecorator;
46
+ export declare function eventType(generation: number, tombstone: boolean): ChronicleClassDecorator;
47
+ export declare function eventType(tombstone: boolean): ChronicleClassDecorator;
47
48
  /**
48
49
  * Gets the {@link EventType} associated with a class decorated with {@link eventType}.
49
50
  * @param target - The class constructor to retrieve the event type for.
@@ -1 +1 @@
1
- {"version":3,"file":"eventTypeDecorator.d.ts","sourceRoot":"","sources":["../../events/eventTypeDecorator.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C,OAAO,EAAE,UAAU,EAAuB,MAAM,qBAAqB,CAAC;AAKtE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC;IAE5D,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,IAAI,cAAc,CAAC;AAC5C,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,CAAC;AACtD,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc,CAAC;AAC1E,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,cAAc,CAAC;AAC9F,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAAC;AAC9D,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,cAAc,CAAC;AAClF,wBAAgB,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,cAAc,CAAC;AAgD9D;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,GAAG,iBAAiB,GAAG,SAAS,CAEpF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,CAOtE"}
1
+ {"version":3,"file":"eventTypeDecorator.d.ts","sourceRoot":"","sources":["../../events/eventTypeDecorator.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C,OAAO,EAAE,UAAU,EAAuB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAMhF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC;IAE5D,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,IAAI,uBAAuB,CAAC;AACrD,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,uBAAuB,CAAC;AAC/D,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,uBAAuB,CAAC;AACnF,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,uBAAuB,CAAC;AACvG,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,uBAAuB,CAAC;AACvE,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,uBAAuB,CAAC;AAC3F,wBAAgB,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,uBAAuB,CAAC;AAgEvE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,GAAG,iBAAiB,GAAG,SAAS,CAEpF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,CAOtE"}
@@ -6,6 +6,7 @@ import { EventTypeId } from './EventTypeId.js';
6
6
  import { EventTypeGeneration } from './EventTypeGeneration.js';
7
7
  import { DecoratorType, TypeDiscoverer, TypeIntrospector } from '../types/index.js';
8
8
  import { JsonSchemaGenerator } from '../schemas/index.js';
9
+ import { createDeferredSchema } from '../schemas/createDeferredSchema.js';
9
10
  /** Metadata key used to store event type information on a class. */
10
11
  const EVENT_TYPE_METADATA_KEY = 'chronicle:eventType';
11
12
  export function eventType(idOrGenerationOrTombstone, generationOrTombstone, tombstone = false) {
@@ -33,18 +34,34 @@ export function eventType(idOrGenerationOrTombstone, generationOrTombstone, tomb
33
34
  else if (typeof idOrGenerationOrTombstone === 'boolean') {
34
35
  isTombstone = idOrGenerationOrTombstone;
35
36
  }
36
- return (target) => {
37
- const constructor = target;
37
+ return (target, context) => {
38
+ let constructor = target;
38
39
  const eventTypeId = new EventTypeId(id || constructor.name);
39
40
  const eventTypeInstance = new EventType(eventTypeId, new EventTypeGeneration(generation), isTombstone);
40
- const members = TypeIntrospector.getMembers(constructor);
41
- const metadata = {
41
+ const members = context?.kind === 'class' ? undefined : TypeIntrospector.getMembers(constructor);
42
+ const resolve = createDeferredSchema(() => constructor);
43
+ const metadata = context?.kind === 'class' ? {
42
44
  eventType: eventTypeInstance,
43
- members,
45
+ get members() {
46
+ return resolve().members;
47
+ },
48
+ get schema() {
49
+ return resolve().schema;
50
+ }
51
+ } : {
52
+ eventType: eventTypeInstance,
53
+ members: members,
44
54
  schema: JsonSchemaGenerator.generate(constructor, members)
45
55
  };
46
56
  Reflect.defineMetadata(EVENT_TYPE_METADATA_KEY, metadata, target);
47
57
  TypeDiscoverer.default.register(DecoratorType.EventType, constructor, eventTypeId.value);
58
+ context?.addInitializer(function () {
59
+ if (this !== constructor) {
60
+ constructor = this;
61
+ Reflect.defineMetadata(EVENT_TYPE_METADATA_KEY, metadata, constructor);
62
+ TypeDiscoverer.default.register(DecoratorType.EventType, constructor, eventTypeId.value);
63
+ }
64
+ });
48
65
  };
49
66
  }
50
67
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"eventTypeDecorator.js","sourceRoot":"","sources":["../../events/eventTypeDecorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eventTypeDecorator.js","sourceRoot":"","sources":["../../events/eventTypeDecorator.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import '../types/standardDecoratorMetadata.js';
1
2
  export { EventType } from './EventType.js';
2
3
  export { EventTypeId } from './EventTypeId.js';
3
4
  export { EventTypeGeneration } from './EventTypeGeneration.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../events/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpI,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../events/index.ts"],"names":[],"mappings":"AAGA,OAAO,uCAAuC,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpI,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  // Copyright (c) Cratis. All rights reserved.
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ import '../types/standardDecoratorMetadata.js';
3
4
  export { EventType } from './EventType.js';
4
5
  export { EventTypeId } from './EventTypeId.js';
5
6
  export { EventTypeGeneration } from './EventTypeGeneration.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../events/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAMpI,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../events/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,uCAAuC,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAMpI,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ import { ChroniclePropertyDecorator } from '../../types/propertyDecoratorMetadata.js';
2
3
  /** Metadata stored by the addFrom property decorator. */
3
4
  export interface AddFromMetadata {
4
5
  /** The event constructor associated with this annotation. */
@@ -12,7 +13,7 @@ export interface AddFromMetadata {
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 addFrom(eventType: Function, eventPropertyName?: string): PropertyDecorator;
16
+ export declare function addFrom(eventType: Function, eventPropertyName?: string): ChroniclePropertyDecorator;
16
17
  /**
17
18
  * Retrieves all addFrom metadata stored on the given property.
18
19
  * @param target - The class prototype.
@@ -1 +1 @@
1
- {"version":3,"file":"addFrom.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/addFrom.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAG1B,yDAAyD;AACzD,MAAM,WAAW,eAAe;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,wHAAwH;IACxH,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":"addFrom.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/addFrom.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,wHAAwH;IACxH,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:addFrom';
6
7
  /**
7
8
  * Property decorator that adds an event property value to the decorated read model property.
@@ -10,13 +11,13 @@ const METADATA_KEY = 'chronicle:projection:addFrom';
10
11
  * @returns A property decorator.
11
12
  */
12
13
  export function addFrom(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 addFrom metadata stored on the given property.
@@ -25,6 +26,6 @@ export function addFrom(eventType, eventPropertyName) {
25
26
  * @returns An array of addFrom metadata entries.
26
27
  */
27
28
  export function getAddFromMetadata(target, propertyKey) {
28
- return Reflect.getMetadata(METADATA_KEY, target, propertyKey) ?? [];
29
+ return getPropertyMetadata(METADATA_KEY, target, propertyKey) ?? [];
29
30
  }
30
31
  //# sourceMappingURL=addFrom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addFrom.js","sourceRoot":"","sources":["../../../projections/modelBound/addFrom.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":"addFrom.js","sourceRoot":"","sources":["../../../projections/modelBound/addFrom.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,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ import { ChroniclePropertyDecorator } from '../../types/propertyDecoratorMetadata.js';
2
3
  /** Metadata stored by the childrenFrom property decorator. */
3
4
  export interface ChildrenFromMetadata {
4
5
  /** The event constructor that adds children to the collection. */
@@ -18,7 +19,7 @@ export interface ChildrenFromMetadata {
18
19
  * @param parentKey - Optional event property name used as the parent key.
19
20
  * @returns A property decorator.
20
21
  */
21
- export declare function childrenFrom(eventType: Function, key?: string, identifiedBy?: string, parentKey?: string): PropertyDecorator;
22
+ export declare function childrenFrom(eventType: Function, key?: string, identifiedBy?: string, parentKey?: string): ChroniclePropertyDecorator;
22
23
  /**
23
24
  * Retrieves all childrenFrom metadata stored on the given property.
24
25
  * @param target - The class prototype.
@@ -1 +1 @@
1
- {"version":3,"file":"childrenFrom.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/childrenFrom.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAG1B,8DAA8D;AAC9D,MAAM,WAAW,oBAAoB;IACjC,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,qGAAqG;IACrG,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,2FAA2F;IAC3F,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,+FAA+F;IAC/F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC/B;AAID;;;;;;;GAOG;AACH,wBAAgB,YAAY,CACxB,SAAS,EAAE,QAAQ,EACnB,GAAG,CAAC,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,GACnB,iBAAiB,CAQnB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAEnG"}
1
+ {"version":3,"file":"childrenFrom.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/childrenFrom.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,0BAA0B,EAAyC,MAAM,0CAA0C,CAAC;AAE7H,8DAA8D;AAC9D,MAAM,WAAW,oBAAoB;IACjC,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,qGAAqG;IACrG,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,2FAA2F;IAC3F,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,+FAA+F;IAC/F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC/B;AAID;;;;;;;GAOG;AACH,wBAAgB,YAAY,CACxB,SAAS,EAAE,QAAQ,EACnB,GAAG,CAAC,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,GACnB,0BAA0B,CAQ5B;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAEnG"}
@@ -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:childrenFrom';
6
7
  /**
7
8
  * Property decorator that configures a children collection sub-projection from an event type.
@@ -12,13 +13,13 @@ const METADATA_KEY = 'chronicle:projection:childrenFrom';
12
13
  * @returns A property decorator.
13
14
  */
14
15
  export function childrenFrom(eventType, key, identifiedBy, parentKey) {
15
- return (target, propertyKey) => {
16
+ return decorateProperty((target, propertyKey) => {
16
17
  const propKey = propertyKey.toString();
17
18
  TypeIntrospector.trackProperty(target.constructor, propKey);
18
19
  const existing = Reflect.getMetadata(METADATA_KEY, target, propKey) ?? [];
19
20
  const metadata = { eventType, key, identifiedBy, parentKey };
20
21
  Reflect.defineMetadata(METADATA_KEY, [...existing, metadata], target, propKey);
21
- };
22
+ });
22
23
  }
23
24
  /**
24
25
  * Retrieves all childrenFrom metadata stored on the given property.
@@ -27,6 +28,6 @@ export function childrenFrom(eventType, key, identifiedBy, parentKey) {
27
28
  * @returns An array of childrenFrom metadata entries.
28
29
  */
29
30
  export function getChildrenFromMetadata(target, propertyKey) {
30
- return Reflect.getMetadata(METADATA_KEY, target, propertyKey) ?? [];
31
+ return getPropertyMetadata(METADATA_KEY, target, propertyKey) ?? [];
31
32
  }
32
33
  //# sourceMappingURL=childrenFrom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"childrenFrom.js","sourceRoot":"","sources":["../../../projections/modelBound/childrenFrom.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAcxD,MAAM,YAAY,GAAG,mCAAmC,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CACxB,SAAmB,EACnB,GAAY,EACZ,YAAqB,EACrB,SAAkB;IAElB,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACpD,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACvC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC3F,MAAM,QAAQ,GAA2B,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAClG,MAAM,QAAQ,GAAyB,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;QACnF,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc,EAAE,WAAmB;IACvE,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"childrenFrom.js","sourceRoot":"","sources":["../../../projections/modelBound/childrenFrom.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;AAc7H,MAAM,YAAY,GAAG,mCAAmC,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CACxB,SAAmB,EACnB,GAAY,EACZ,YAAqB,EACrB,SAAkB;IAElB,OAAO,gBAAgB,CAAC,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACrE,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACvC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC3F,MAAM,QAAQ,GAA2B,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAClG,MAAM,QAAQ,GAAyB,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;QACnF,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc,EAAE,WAAmB;IACvE,OAAO,mBAAmB,CAAyB,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AAChG,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ import { ChronicleClassOrPropertyDecorator } from '../../types/propertyDecoratorMetadata.js';
2
3
  /** Metadata stored by the clearWith class or property decorator. */
3
4
  export interface ClearWithMetadata {
4
5
  /** The event constructor that clears the nested object or projection. */
@@ -11,7 +12,7 @@ export interface ClearWithMetadata {
11
12
  * @param eventType - The event constructor.
12
13
  * @returns A class and property decorator.
13
14
  */
14
- export declare function clearWith(eventType: Function): ClassDecorator & PropertyDecorator;
15
+ export declare function clearWith(eventType: Function): ChronicleClassOrPropertyDecorator;
15
16
  /**
16
17
  * Retrieves clearWith metadata stored on the given class constructor.
17
18
  * @param target - The class constructor.
@@ -1 +1 @@
1
- {"version":3,"file":"clearWith.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/clearWith.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAG1B,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;CAChC;AAKD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,QAAQ,GAAG,cAAc,GAAG,iBAAiB,CAYjF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,QAAQ,GAAG,iBAAiB,EAAE,CAE/E;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAErG"}
1
+ {"version":3,"file":"clearWith.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/clearWith.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iCAAiC,EAAgD,MAAM,0CAA0C,CAAC;AAE3I,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;CAChC;AAKD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,QAAQ,GAAG,iCAAiC,CAYhF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,QAAQ,GAAG,iBAAiB,EAAE,CAE/E;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAErG"}
@@ -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:clearWith:class';
6
7
  const PROPERTY_METADATA_KEY = 'chronicle:projection:clearWith:property';
7
8
  /**
@@ -12,7 +13,7 @@ const PROPERTY_METADATA_KEY = 'chronicle:projection:clearWith:property';
12
13
  * @returns A class and property decorator.
13
14
  */
14
15
  export function clearWith(eventType) {
15
- return (target, propertyKey) => {
16
+ return decorateClassOrProperty((target, propertyKey) => {
16
17
  if (propertyKey !== undefined) {
17
18
  const key = propertyKey.toString();
18
19
  TypeIntrospector.trackProperty(target.constructor, key);
@@ -23,7 +24,7 @@ export function clearWith(eventType) {
23
24
  const existing = Reflect.getMetadata(CLASS_METADATA_KEY, target) ?? [];
24
25
  Reflect.defineMetadata(CLASS_METADATA_KEY, [...existing, { eventType }], target);
25
26
  }
26
- };
27
+ });
27
28
  }
28
29
  /**
29
30
  * Retrieves clearWith metadata stored on the given class constructor.
@@ -40,6 +41,6 @@ export function getClearWithClassMetadata(target) {
40
41
  * @returns An array of clearWith metadata entries.
41
42
  */
42
43
  export function getClearWithPropertyMetadata(target, propertyKey) {
43
- return Reflect.getMetadata(PROPERTY_METADATA_KEY, target, propertyKey) ?? [];
44
+ return getPropertyMetadata(PROPERTY_METADATA_KEY, target, propertyKey) ?? [];
44
45
  }
45
46
  //# sourceMappingURL=clearWith.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clearWith.js","sourceRoot":"","sources":["../../../projections/modelBound/clearWith.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAQxD,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;AAClE,MAAM,qBAAqB,GAAG,yCAAyC,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,SAAmB;IACzC,OAAO,CAAC,MAAc,EAAE,WAA6B,EAAE,EAAE;QACrD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;YACnC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YACvF,MAAM,QAAQ,GAAwB,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;YACpG,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACJ,MAAM,QAAQ,GAAwB,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5F,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACrF,CAAC;IACL,CAAC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAgB;IACtD,OAAO,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAc,EAAE,WAAmB;IAC5E,OAAO,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"clearWith.js","sourceRoot":"","sources":["../../../projections/modelBound/clearWith.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;AAQ3I,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;AAClE,MAAM,qBAAqB,GAAG,yCAAyC,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,SAAmB;IACzC,OAAO,uBAAuB,CAAC,CAAC,MAAc,EAAE,WAA6B,EAAE,EAAE;QAC7E,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;YACnC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YACvF,MAAM,QAAQ,GAAwB,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;YACpG,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACJ,MAAM,QAAQ,GAAwB,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5F,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACrF,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAgB;IACtD,OAAO,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAc,EAAE,WAAmB;IAC5E,OAAO,mBAAmB,CAAsB,qBAAqB,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACtG,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ import { ChroniclePropertyDecorator } from '../../types/propertyDecoratorMetadata.js';
2
3
  /** Metadata stored by the count property decorator. */
3
4
  export interface CountMetadata {
4
5
  /** The event constructor whose occurrences are counted. */
@@ -12,7 +13,7 @@ export interface CountMetadata {
12
13
  * @param constantKey - Optional constant key value.
13
14
  * @returns A property decorator.
14
15
  */
15
- export declare function count(eventType: Function, constantKey?: string): PropertyDecorator;
16
+ export declare function count(eventType: Function, constantKey?: string): ChroniclePropertyDecorator;
16
17
  /**
17
18
  * Retrieves all count metadata stored on the given property.
18
19
  * @param target - The class prototype.
@@ -1 +1 @@
1
- {"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/count.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAG1B,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CACjC;AAID;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAQlF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa,EAAE,CAErF"}
1
+ {"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/count.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,0BAA0B,EAAyC,MAAM,0CAA0C,CAAC;AAE7H,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CACjC;AAID;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,0BAA0B,CAQ3F;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa,EAAE,CAErF"}
@@ -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:count';
6
7
  /**
7
8
  * Property decorator that counts the occurrences of the specified event into the decorated read model property.
@@ -10,13 +11,13 @@ const METADATA_KEY = 'chronicle:projection:count';
10
11
  * @returns A property decorator.
11
12
  */
12
13
  export function count(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 count metadata stored on the given property.
@@ -25,6 +26,6 @@ export function count(eventType, constantKey) {
25
26
  * @returns An array of count metadata entries.
26
27
  */
27
28
  export function getCountMetadata(target, propertyKey) {
28
- return Reflect.getMetadata(METADATA_KEY, target, propertyKey) ?? [];
29
+ return getPropertyMetadata(METADATA_KEY, target, propertyKey) ?? [];
29
30
  }
30
31
  //# sourceMappingURL=count.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"count.js","sourceRoot":"","sources":["../../../projections/modelBound/count.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAUxD,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAElD;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,SAAmB,EAAE,WAAoB;IAC3D,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,GAAoB,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QACvF,MAAM,QAAQ,GAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;QAC3D,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,gBAAgB,CAAC,MAAc,EAAE,WAAmB;IAChE,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"count.js","sourceRoot":"","sources":["../../../projections/modelBound/count.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,4BAA4B,CAAC;AAElD;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,SAAmB,EAAE,WAAoB;IAC3D,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,GAAoB,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QACvF,MAAM,QAAQ,GAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;QAC3D,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,gBAAgB,CAAC,MAAc,EAAE,WAAmB;IAChE,OAAO,mBAAmB,CAAkB,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACzF,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ import { ChroniclePropertyDecorator } from '../../types/propertyDecoratorMetadata.js';
2
3
  /** Metadata stored by the decrement property decorator. */
3
4
  export interface DecrementMetadata {
4
5
  /** The event constructor that triggers the decrement. */
@@ -12,7 +13,7 @@ export interface DecrementMetadata {
12
13
  * @param constantKey - Optional constant key value.
13
14
  * @returns A property decorator.
14
15
  */
15
- export declare function decrement(eventType: Function, constantKey?: string): PropertyDecorator;
16
+ export declare function decrement(eventType: Function, constantKey?: string): ChroniclePropertyDecorator;
16
17
  /**
17
18
  * Retrieves all decrement metadata stored on the given property.
18
19
  * @param target - The class prototype.
@@ -1 +1 @@
1
- {"version":3,"file":"decrement.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/decrement.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":"decrement.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/decrement.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:decrement';
6
7
  /**
7
8
  * Property decorator that decrements the decorated read model property each time the specified event occurs.
@@ -10,13 +11,13 @@ const METADATA_KEY = 'chronicle:projection:decrement';
10
11
  * @returns A property decorator.
11
12
  */
12
13
  export function decrement(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 decrement metadata stored on the given property.
@@ -25,6 +26,6 @@ export function decrement(eventType, constantKey) {
25
26
  * @returns An array of decrement metadata entries.
26
27
  */
27
28
  export function getDecrementMetadata(target, propertyKey) {
28
- return Reflect.getMetadata(METADATA_KEY, target, propertyKey) ?? [];
29
+ return getPropertyMetadata(METADATA_KEY, target, propertyKey) ?? [];
29
30
  }
30
31
  //# sourceMappingURL=decrement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decrement.js","sourceRoot":"","sources":["../../../projections/modelBound/decrement.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":"decrement.js","sourceRoot":"","sources":["../../../projections/modelBound/decrement.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 fromAll property decorator. */
3
4
  export interface FromAllMetadata {
4
5
  /** The event property name to read the value from. */
@@ -15,7 +16,7 @@ export interface FromAllMetadata {
15
16
  * @param contextProperty - Optional event context property name.
16
17
  * @returns A property decorator.
17
18
  */
18
- export declare function fromAll(property?: string, contextProperty?: string): PropertyDecorator;
19
+ export declare function fromAll(property?: string, contextProperty?: string): ChroniclePropertyDecorator;
19
20
  /**
20
21
  * Retrieves fromAll metadata stored on the given property.
21
22
  * @param target - The class prototype.
@@ -1 +1 @@
1
- {"version":3,"file":"fromAll.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/fromAll.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAG1B,yDAAyD;AACzD,MAAM,WAAW,eAAe;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACrC;AAID;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAMtF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEnG"}
1
+ {"version":3,"file":"fromAll.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/fromAll.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,0BAA0B,EAAyC,MAAM,0CAA0C,CAAC;AAE7H,yDAAyD;AACzD,MAAM,WAAW,eAAe;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACrC;AAID;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,0BAA0B,CAM/F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEnG"}
@@ -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:fromAll';
6
7
  /**
7
8
  * Property decorator that sets the decorated read model property from a property present on every
@@ -13,11 +14,11 @@ const METADATA_KEY = 'chronicle:projection:fromAll';
13
14
  * @returns A property decorator.
14
15
  */
15
16
  export function fromAll(property, contextProperty) {
16
- return (target, propertyKey) => {
17
+ return decorateProperty((target, propertyKey) => {
17
18
  TypeIntrospector.trackProperty(target.constructor, propertyKey.toString());
18
19
  const metadata = { property, contextProperty };
19
20
  Reflect.defineMetadata(METADATA_KEY, metadata, target, propertyKey.toString());
20
- };
21
+ });
21
22
  }
22
23
  /**
23
24
  * Retrieves fromAll metadata stored on the given property.
@@ -26,6 +27,6 @@ export function fromAll(property, contextProperty) {
26
27
  * @returns The fromAll metadata, or undefined if not decorated.
27
28
  */
28
29
  export function getFromAllMetadata(target, propertyKey) {
29
- return Reflect.getMetadata(METADATA_KEY, target, propertyKey);
30
+ return getPropertyMetadata(METADATA_KEY, target, propertyKey);
30
31
  }
31
32
  //# sourceMappingURL=fromAll.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fromAll.js","sourceRoot":"","sources":["../../../projections/modelBound/fromAll.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;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CAAC,QAAiB,EAAE,eAAwB;IAC/D,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,GAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;QAChE,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,kBAAkB,CAAC,MAAc,EAAE,WAAmB;IAClE,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"fromAll.js","sourceRoot":"","sources":["../../../projections/modelBound/fromAll.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;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CAAC,QAAiB,EAAE,eAAwB;IAC/D,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,GAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;QAChE,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,kBAAkB,CAAC,MAAc,EAAE,WAAmB;IAClE,OAAO,mBAAmB,CAAkB,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACnF,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ import { ChroniclePropertyDecorator } from '../../types/propertyDecoratorMetadata.js';
2
3
  /** Metadata stored by the fromEvery property decorator. */
3
4
  export interface FromEveryMetadata {
4
5
  /** The event or event context property name to read the value from. */
@@ -12,7 +13,7 @@ export interface FromEveryMetadata {
12
13
  * @param contextProperty - Optional event context property name.
13
14
  * @returns A property decorator.
14
15
  */
15
- export declare function fromEvery(property?: string, contextProperty?: string): PropertyDecorator;
16
+ export declare function fromEvery(property?: string, contextProperty?: string): ChroniclePropertyDecorator;
16
17
  /**
17
18
  * Retrieves fromEvery metadata stored on the given property.
18
19
  * @param target - The class prototype.
@@ -1 +1 @@
1
- {"version":3,"file":"fromEvery.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/fromEvery.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAG1B,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACrC;AAID;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAMxF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEvG"}
1
+ {"version":3,"file":"fromEvery.d.ts","sourceRoot":"","sources":["../../../projections/modelBound/fromEvery.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,0BAA0B,EAAyC,MAAM,0CAA0C,CAAC;AAE7H,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACrC;AAID;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,0BAA0B,CAMjG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEvG"}