@cratis/chronicle 6.3.2 → 6.5.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 (228) hide show
  1. package/ChronicleClient.ts +1 -1
  2. package/EventStore.ts +7 -2
  3. package/README.md +13 -2
  4. package/artifacts/validateArtifactSchemas.spec.ts +75 -0
  5. package/artifacts/validateArtifactSchemas.ts +39 -0
  6. package/auditing/AmbientContext.spec.ts +57 -0
  7. package/auditing/CausationManager.ts +13 -15
  8. package/compliance/pii.ts +7 -6
  9. package/compliance/subject.ts +6 -5
  10. package/confidentiality/encrypted.ts +7 -6
  11. package/correlation/CorrelationIdManager.ts +5 -0
  12. package/dist/ChronicleClient.js +1 -1
  13. package/dist/ChronicleClient.js.map +1 -1
  14. package/dist/EventStore.d.ts +3 -1
  15. package/dist/EventStore.d.ts.map +1 -1
  16. package/dist/EventStore.js +6 -2
  17. package/dist/EventStore.js.map +1 -1
  18. package/dist/artifacts/validateArtifactSchemas.d.ts +4 -0
  19. package/dist/artifacts/validateArtifactSchemas.d.ts.map +1 -0
  20. package/dist/artifacts/validateArtifactSchemas.js +38 -0
  21. package/dist/artifacts/validateArtifactSchemas.js.map +1 -0
  22. package/dist/auditing/CausationManager.d.ts +3 -1
  23. package/dist/auditing/CausationManager.d.ts.map +1 -1
  24. package/dist/auditing/CausationManager.js +9 -15
  25. package/dist/auditing/CausationManager.js.map +1 -1
  26. package/dist/compliance/pii.d.ts +2 -1
  27. package/dist/compliance/pii.d.ts.map +1 -1
  28. package/dist/compliance/pii.js +6 -5
  29. package/dist/compliance/pii.js.map +1 -1
  30. package/dist/compliance/subject.d.ts +2 -1
  31. package/dist/compliance/subject.d.ts.map +1 -1
  32. package/dist/compliance/subject.js +5 -4
  33. package/dist/compliance/subject.js.map +1 -1
  34. package/dist/confidentiality/encrypted.d.ts +2 -1
  35. package/dist/confidentiality/encrypted.d.ts.map +1 -1
  36. package/dist/confidentiality/encrypted.js +6 -5
  37. package/dist/confidentiality/encrypted.js.map +1 -1
  38. package/dist/correlation/CorrelationIdManager.d.ts +2 -0
  39. package/dist/correlation/CorrelationIdManager.d.ts.map +1 -1
  40. package/dist/correlation/CorrelationIdManager.js +4 -0
  41. package/dist/correlation/CorrelationIdManager.js.map +1 -1
  42. package/dist/eventSequences/AppendOptions.d.ts +3 -4
  43. package/dist/eventSequences/AppendOptions.d.ts.map +1 -1
  44. package/dist/eventSequences/EventSequence.d.ts.map +1 -1
  45. package/dist/eventSequences/EventSequence.js +19 -14
  46. package/dist/eventSequences/EventSequence.js.map +1 -1
  47. package/dist/eventSequences/EventSequenceNumber.d.ts +3 -1
  48. package/dist/eventSequences/EventSequenceNumber.d.ts.map +1 -1
  49. package/dist/eventSequences/EventSequenceNumber.js +3 -1
  50. package/dist/eventSequences/EventSequenceNumber.js.map +1 -1
  51. package/dist/events/eventTypeDecorator.d.ts +8 -7
  52. package/dist/events/eventTypeDecorator.d.ts.map +1 -1
  53. package/dist/events/eventTypeDecorator.js +22 -5
  54. package/dist/events/eventTypeDecorator.js.map +1 -1
  55. package/dist/events/index.d.ts +2 -0
  56. package/dist/events/index.d.ts.map +1 -1
  57. package/dist/events/index.js +2 -0
  58. package/dist/events/index.js.map +1 -1
  59. package/dist/events/isRegisteredEvent.d.ts +4 -0
  60. package/dist/events/isRegisteredEvent.d.ts.map +1 -0
  61. package/dist/events/isRegisteredEvent.js +9 -0
  62. package/dist/events/isRegisteredEvent.js.map +1 -0
  63. package/dist/identity/IdentityProvider.d.ts +2 -0
  64. package/dist/identity/IdentityProvider.d.ts.map +1 -1
  65. package/dist/identity/IdentityProvider.js +4 -0
  66. package/dist/identity/IdentityProvider.js.map +1 -1
  67. package/dist/projections/modelBound/addFrom.d.ts +2 -1
  68. package/dist/projections/modelBound/addFrom.d.ts.map +1 -1
  69. package/dist/projections/modelBound/addFrom.js +4 -3
  70. package/dist/projections/modelBound/addFrom.js.map +1 -1
  71. package/dist/projections/modelBound/childrenFrom.d.ts +2 -1
  72. package/dist/projections/modelBound/childrenFrom.d.ts.map +1 -1
  73. package/dist/projections/modelBound/childrenFrom.js +4 -3
  74. package/dist/projections/modelBound/childrenFrom.js.map +1 -1
  75. package/dist/projections/modelBound/clearWith.d.ts +2 -1
  76. package/dist/projections/modelBound/clearWith.d.ts.map +1 -1
  77. package/dist/projections/modelBound/clearWith.js +4 -3
  78. package/dist/projections/modelBound/clearWith.js.map +1 -1
  79. package/dist/projections/modelBound/count.d.ts +2 -1
  80. package/dist/projections/modelBound/count.d.ts.map +1 -1
  81. package/dist/projections/modelBound/count.js +4 -3
  82. package/dist/projections/modelBound/count.js.map +1 -1
  83. package/dist/projections/modelBound/decrement.d.ts +2 -1
  84. package/dist/projections/modelBound/decrement.d.ts.map +1 -1
  85. package/dist/projections/modelBound/decrement.js +4 -3
  86. package/dist/projections/modelBound/decrement.js.map +1 -1
  87. package/dist/projections/modelBound/fromAll.d.ts +2 -1
  88. package/dist/projections/modelBound/fromAll.d.ts.map +1 -1
  89. package/dist/projections/modelBound/fromAll.js +4 -3
  90. package/dist/projections/modelBound/fromAll.js.map +1 -1
  91. package/dist/projections/modelBound/fromEvery.d.ts +2 -1
  92. package/dist/projections/modelBound/fromEvery.d.ts.map +1 -1
  93. package/dist/projections/modelBound/fromEvery.js +4 -3
  94. package/dist/projections/modelBound/fromEvery.js.map +1 -1
  95. package/dist/projections/modelBound/increment.d.ts +2 -1
  96. package/dist/projections/modelBound/increment.d.ts.map +1 -1
  97. package/dist/projections/modelBound/increment.js +4 -3
  98. package/dist/projections/modelBound/increment.js.map +1 -1
  99. package/dist/projections/modelBound/join.d.ts +2 -1
  100. package/dist/projections/modelBound/join.d.ts.map +1 -1
  101. package/dist/projections/modelBound/join.js +4 -3
  102. package/dist/projections/modelBound/join.js.map +1 -1
  103. package/dist/projections/modelBound/nested.d.ts +1 -6
  104. package/dist/projections/modelBound/nested.d.ts.map +1 -1
  105. package/dist/projections/modelBound/nested.js +6 -2
  106. package/dist/projections/modelBound/nested.js.map +1 -1
  107. package/dist/projections/modelBound/noAutoMap.d.ts +4 -11
  108. package/dist/projections/modelBound/noAutoMap.d.ts.map +1 -1
  109. package/dist/projections/modelBound/noAutoMap.js +6 -2
  110. package/dist/projections/modelBound/noAutoMap.js.map +1 -1
  111. package/dist/projections/modelBound/removedWith.d.ts +2 -1
  112. package/dist/projections/modelBound/removedWith.d.ts.map +1 -1
  113. package/dist/projections/modelBound/removedWith.js +4 -3
  114. package/dist/projections/modelBound/removedWith.js.map +1 -1
  115. package/dist/projections/modelBound/removedWithJoin.d.ts +2 -1
  116. package/dist/projections/modelBound/removedWithJoin.d.ts.map +1 -1
  117. package/dist/projections/modelBound/removedWithJoin.js +4 -3
  118. package/dist/projections/modelBound/removedWithJoin.js.map +1 -1
  119. package/dist/projections/modelBound/setFrom.d.ts +2 -1
  120. package/dist/projections/modelBound/setFrom.d.ts.map +1 -1
  121. package/dist/projections/modelBound/setFrom.js +4 -3
  122. package/dist/projections/modelBound/setFrom.js.map +1 -1
  123. package/dist/projections/modelBound/setFromContext.d.ts +3 -2
  124. package/dist/projections/modelBound/setFromContext.d.ts.map +1 -1
  125. package/dist/projections/modelBound/setFromContext.js +4 -3
  126. package/dist/projections/modelBound/setFromContext.js.map +1 -1
  127. package/dist/projections/modelBound/setValue.d.ts +2 -1
  128. package/dist/projections/modelBound/setValue.d.ts.map +1 -1
  129. package/dist/projections/modelBound/setValue.js +4 -3
  130. package/dist/projections/modelBound/setValue.js.map +1 -1
  131. package/dist/projections/modelBound/subtractFrom.d.ts +2 -1
  132. package/dist/projections/modelBound/subtractFrom.d.ts.map +1 -1
  133. package/dist/projections/modelBound/subtractFrom.js +4 -3
  134. package/dist/projections/modelBound/subtractFrom.js.map +1 -1
  135. package/dist/readModels/IReadModels.d.ts +10 -1
  136. package/dist/readModels/IReadModels.d.ts.map +1 -1
  137. package/dist/readModels/MaterializedReadModels.js +2 -2
  138. package/dist/readModels/MaterializedReadModels.js.map +1 -1
  139. package/dist/readModels/ReadModels.d.ts +6 -1
  140. package/dist/readModels/ReadModels.d.ts.map +1 -1
  141. package/dist/readModels/ReadModels.js +28 -2
  142. package/dist/readModels/ReadModels.js.map +1 -1
  143. package/dist/readModels/readModel.d.ts +2 -1
  144. package/dist/readModels/readModel.d.ts.map +1 -1
  145. package/dist/readModels/readModel.js +22 -5
  146. package/dist/readModels/readModel.js.map +1 -1
  147. package/dist/schemas/JsonSchemaGenerator.d.ts +6 -1
  148. package/dist/schemas/JsonSchemaGenerator.d.ts.map +1 -1
  149. package/dist/schemas/JsonSchemaGenerator.js +41 -31
  150. package/dist/schemas/JsonSchemaGenerator.js.map +1 -1
  151. package/dist/schemas/createDeferredSchema.d.ts +7 -0
  152. package/dist/schemas/createDeferredSchema.d.ts.map +1 -0
  153. package/dist/schemas/createDeferredSchema.js +19 -0
  154. package/dist/schemas/createDeferredSchema.js.map +1 -0
  155. package/dist/schemas/index.d.ts +1 -0
  156. package/dist/schemas/index.d.ts.map +1 -1
  157. package/dist/schemas/index.js.map +1 -1
  158. package/dist/schemas/jsonSchemaProperty.d.ts +2 -1
  159. package/dist/schemas/jsonSchemaProperty.d.ts.map +1 -1
  160. package/dist/schemas/jsonSchemaProperty.js +3 -2
  161. package/dist/schemas/jsonSchemaProperty.js.map +1 -1
  162. package/dist/tsconfig.tsbuildinfo +1 -1
  163. package/dist/types/TypeIntrospector.d.ts.map +1 -1
  164. package/dist/types/TypeIntrospector.js +9 -3
  165. package/dist/types/TypeIntrospector.js.map +1 -1
  166. package/dist/types/index.d.ts +2 -0
  167. package/dist/types/index.d.ts.map +1 -1
  168. package/dist/types/propertyDecoratorMetadata.d.ts +17 -0
  169. package/dist/types/propertyDecoratorMetadata.d.ts.map +1 -0
  170. package/dist/types/propertyDecoratorMetadata.js +76 -0
  171. package/dist/types/propertyDecoratorMetadata.js.map +1 -0
  172. package/dist/types/standardDecoratorMetadata.d.ts +9 -0
  173. package/dist/types/standardDecoratorMetadata.d.ts.map +1 -0
  174. package/dist/types/standardDecoratorMetadata.js +20 -0
  175. package/dist/types/standardDecoratorMetadata.js.map +1 -0
  176. package/eventSequences/AppendOptions.ts +3 -4
  177. package/eventSequences/EventSequence.spec.ts +59 -0
  178. package/eventSequences/EventSequence.ts +21 -15
  179. package/eventSequences/EventSequenceNumber.ts +4 -1
  180. package/eventSequences/for_EventSequence/when_appending/with_metadata.spec.ts +2 -1
  181. package/events/classDecorators.standard.spec.ts +77 -0
  182. package/events/eventTypeDecorator.ts +31 -13
  183. package/events/index.ts +3 -0
  184. package/events/isRegisteredEvent.spec.ts +26 -0
  185. package/events/isRegisteredEvent.ts +12 -0
  186. package/identity/IdentityProvider.ts +5 -0
  187. package/package.json +3 -1
  188. package/projections/modelBound/addFrom.ts +5 -4
  189. package/projections/modelBound/childrenFrom.ts +5 -4
  190. package/projections/modelBound/clearWith.ts +5 -4
  191. package/projections/modelBound/count.ts +5 -4
  192. package/projections/modelBound/decorators.standard.spec.ts +71 -0
  193. package/projections/modelBound/decrement.ts +5 -4
  194. package/projections/modelBound/fromAll.ts +5 -4
  195. package/projections/modelBound/fromEvery.ts +5 -4
  196. package/projections/modelBound/increment.ts +5 -4
  197. package/projections/modelBound/join.ts +5 -4
  198. package/projections/modelBound/nested.ts +9 -2
  199. package/projections/modelBound/noAutoMap.ts +11 -2
  200. package/projections/modelBound/removedWith.ts +5 -4
  201. package/projections/modelBound/removedWithJoin.ts +5 -4
  202. package/projections/modelBound/setFrom.ts +5 -4
  203. package/projections/modelBound/setFromContext.ts +7 -6
  204. package/projections/modelBound/setValue.ts +5 -4
  205. package/projections/modelBound/subtractFrom.ts +5 -4
  206. package/readModels/IReadModels.ts +11 -1
  207. package/readModels/MaterializedReadModels.spec.ts +17 -6
  208. package/readModels/MaterializedReadModels.ts +2 -2
  209. package/readModels/ReadModels.spec.ts +96 -3
  210. package/readModels/ReadModels.ts +32 -2
  211. package/readModels/readModel.ts +24 -6
  212. package/readModels/standardFallbacks.standard.spec.ts +39 -0
  213. package/schemas/JsonSchemaGenerator.confidentiality.spec.ts +2 -0
  214. package/schemas/JsonSchemaGenerator.spec.ts +28 -1
  215. package/schemas/JsonSchemaGenerator.ts +45 -30
  216. package/schemas/createDeferredSchema.ts +21 -0
  217. package/schemas/decorators.expected.fixture.ts +24 -0
  218. package/schemas/decorators.legacy.spec.ts +62 -0
  219. package/schemas/decorators.standard.spec.ts +235 -0
  220. package/schemas/index.ts +1 -0
  221. package/schemas/jsonSchemaProperty.ts +4 -3
  222. package/schemas/legacyDesignMetadata.spec.ts +39 -0
  223. package/types/TypeIntrospector.ts +8 -3
  224. package/types/index.ts +2 -0
  225. package/types/propertyDecoratorMetadata.ts +80 -0
  226. package/types/standardDecoratorMetadata.spec.ts +31 -0
  227. package/types/standardDecoratorMetadata.ts +26 -0
  228. package/vitest.config.ts +17 -0
@@ -1 +1 @@
1
- {"version":3,"file":"EventStore.js","sourceRoot":"","sources":["../EventStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventStore.js","sourceRoot":"","sources":["../EventStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { IClientArtifactsProvider } from './IClientArtifactsProvider.js';
2
+ /** Resolves every discovered schema before any registration can reach the Kernel. */
3
+ export declare function validateArtifactSchemas(artifacts: IClientArtifactsProvider): void;
4
+ //# sourceMappingURL=validateArtifactSchemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateArtifactSchemas.d.ts","sourceRoot":"","sources":["../../artifacts/validateArtifactSchemas.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAKzE,qFAAqF;AACrF,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,wBAAwB,GAAG,IAAI,CA6BjF"}
@@ -0,0 +1,38 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ import { getEventTypeMetadata } from '../events/eventTypeDecorator.js';
4
+ import { getReadModelMetadata } from '../readModels/readModel.js';
5
+ import { JsonSchemaGenerator } from '../schemas/JsonSchemaGenerator.js';
6
+ /** Resolves every discovered schema before any registration can reach the Kernel. */
7
+ export function validateArtifactSchemas(artifacts) {
8
+ const failures = [];
9
+ for (const type of artifacts.eventTypes) {
10
+ try {
11
+ const metadata = getEventTypeMetadata(type);
12
+ if (!metadata)
13
+ throw new TypeError(`Missing event type metadata for ${type.name}.`);
14
+ void metadata.schema;
15
+ }
16
+ catch (error) {
17
+ failures.push(new Error(`Event type ${type.name}: ${String(error)}`, { cause: error }));
18
+ }
19
+ }
20
+ for (const type of artifacts.readModels) {
21
+ try {
22
+ const metadata = getReadModelMetadata(type);
23
+ if (metadata) {
24
+ void metadata.schema;
25
+ }
26
+ else {
27
+ JsonSchemaGenerator.generate(type);
28
+ }
29
+ }
30
+ catch (error) {
31
+ failures.push(new Error(`Read model ${type.name}: ${String(error)}`, { cause: error }));
32
+ }
33
+ }
34
+ if (failures.length) {
35
+ throw new AggregateError(failures, `Cannot register artifacts: ${failures.length} schema error(s).`);
36
+ }
37
+ }
38
+ //# sourceMappingURL=validateArtifactSchemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateArtifactSchemas.js","sourceRoot":"","sources":["../../artifacts/validateArtifactSchemas.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAGrG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,qFAAqF;AACrF,MAAM,UAAU,uBAAuB,CAAC,SAAmC;IACvE,MAAM,QAAQ,GAAY,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACtC,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACpF,KAAK,QAAQ,CAAC,MAAM,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5F,CAAC;IACL,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACtC,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,QAAQ,EAAE,CAAC;gBACX,KAAK,QAAQ,CAAC,MAAM,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACJ,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5F,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,8BAA8B,QAAQ,CAAC,MAAM,mBAAmB,CAAC,CAAC;IACzG,CAAC;AACL,CAAC"}
@@ -13,11 +13,13 @@ export declare class CausationManager implements ICausationManager {
13
13
  getCurrentChain(): ReadonlyArray<Causation>;
14
14
  /** @inheritdoc */
15
15
  add(type: CausationType, properties: Record<string, string>): void;
16
+ /** Runs an async or synchronous operation with an isolated, restored causation chain. */
17
+ run<T>(callback: () => T): T;
18
+ run<T>(type: CausationType, properties: Record<string, string>, callback: () => T): T;
16
19
  /**
17
20
  * Defines the root causation for the current process.
18
21
  * @param properties - Properties associated with the root causation.
19
22
  */
20
23
  defineRoot(properties: Record<string, string>): void;
21
- private _getOrInitChain;
22
24
  }
23
25
  //# sourceMappingURL=CausationManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CausationManager.d.ts","sourceRoot":"","sources":["../../auditing/CausationManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;GAEG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IACjE,OAAO,CAAC,KAAK,CAAgE;IAE7E,kBAAkB;IAClB,IAAI,IAAI,IAAI,SAAS,CAEpB;IAED,kBAAkB;IAClB,eAAe,IAAI,aAAa,CAAC,SAAS,CAAC,CAG1C;IAED,kBAAkB;IAClB,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAGjE;IAED;;;OAGG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAEnD;IAED,OAAO,CAAC,eAAe;CAU1B"}
1
+ {"version":3,"file":"CausationManager.d.ts","sourceRoot":"","sources":["../../auditing/CausationManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;GAEG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IACjE,OAAO,CAAC,KAAK,CAAgE;IAE7E,kBAAkB;IAClB,IAAI,IAAI,IAAI,SAAS,CAEpB;IAED,kBAAkB;IAClB,eAAe,IAAI,aAAa,CAAC,SAAS,CAAC,CAE1C;IAED,kBAAkB;IAClB,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAEjE;IAED,yFAAyF;IACzF,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAStF;;;OAGG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAEnD;CACJ"}
@@ -15,13 +15,18 @@ export class CausationManager {
15
15
  }
16
16
  /** @inheritdoc */
17
17
  getCurrentChain() {
18
- const chain = this._getOrInitChain();
19
- return chain;
18
+ return this._storage.getStore() ?? [this._root];
20
19
  }
21
20
  /** @inheritdoc */
22
21
  add(type, properties) {
23
- const chain = this._getOrInitChain();
24
- chain.push(new Causation(new Date(), type, properties));
22
+ this._storage.enterWith([...this.getCurrentChain(), new Causation(new Date(), type, properties)]);
23
+ }
24
+ run(typeOrCallback, properties, callback) {
25
+ const chain = [...this.getCurrentChain()];
26
+ if (typeof typeOrCallback !== 'function') {
27
+ chain.push(new Causation(new Date(), typeOrCallback, properties));
28
+ }
29
+ return this._storage.run(chain, typeof typeOrCallback === 'function' ? typeOrCallback : callback);
25
30
  }
26
31
  /**
27
32
  * Defines the root causation for the current process.
@@ -30,16 +35,5 @@ export class CausationManager {
30
35
  defineRoot(properties) {
31
36
  this._root = new Causation(new Date(), CausationType.root, properties);
32
37
  }
33
- _getOrInitChain() {
34
- let chain = this._storage.getStore();
35
- if (chain === undefined) {
36
- chain = [this._root];
37
- this._storage.enterWith(chain);
38
- }
39
- else if (chain.length === 0) {
40
- chain.push(this._root);
41
- }
42
- return chain;
43
- }
44
38
  }
45
39
  //# sourceMappingURL=CausationManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CausationManager.js","sourceRoot":"","sources":["../../auditing/CausationManager.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACR,QAAQ,GAAG,IAAI,iBAAiB,EAAe,CAAC;IACzD,KAAK,GAAc,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAE7E,kBAAkB;IAClB,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,kBAAkB;IAClB,eAAe;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,kBAAkB;IAClB,GAAG,CAAC,IAAmB,EAAE,UAAkC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,UAAkC;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3E,CAAC;IAEO,eAAe;QACnB,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
1
+ {"version":3,"file":"CausationManager.js","sourceRoot":"","sources":["../../auditing/CausationManager.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACR,QAAQ,GAAG,IAAI,iBAAiB,EAAe,CAAC;IACzD,KAAK,GAAc,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAE7E,kBAAkB;IAClB,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,kBAAkB;IAClB,eAAe;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,kBAAkB;IAClB,GAAG,CAAC,IAAmB,EAAE,UAAkC;QACvD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtG,CAAC;IAKD,GAAG,CAAI,cAAyC,EAAE,UAAmC,EAAE,QAAkB;QACrG,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAC1C,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,cAAc,EAAE,UAAW,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,cAAyB,CAAC,CAAC,CAAC,QAAS,CAAC,CAAC;IAClH,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,UAAkC;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3E,CAAC;CACJ"}
@@ -1,5 +1,6 @@
1
1
  import 'reflect-metadata';
2
2
  import type { ComplianceMetadata } from './ComplianceMetadata.js';
3
+ import { ChronicleClassOrPropertyDecorator } from '../types/propertyDecoratorMetadata.js';
3
4
  /**
4
5
  * Decorator that marks a property or type as containing Personal Identifiable Information (PII)
5
6
  * according to the GDPR definition. When applied to read model properties or ConceptAs types,
@@ -39,7 +40,7 @@ import type { ComplianceMetadata } from './ComplianceMetadata.js';
39
40
  * }
40
41
  * ```
41
42
  */
42
- export declare function pii(details?: string): PropertyDecorator & ClassDecorator;
43
+ export declare function pii(details?: string): ChronicleClassOrPropertyDecorator;
43
44
  /**
44
45
  * Gets the PII compliance metadata for a property.
45
46
  * @param target - The class prototype.
@@ -1 +1 @@
1
- {"version":3,"file":"pii.d.ts","sourceRoot":"","sources":["../../compliance/pii.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAclE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,cAAc,CAkCxE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAElG;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAE3E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,kBAAkB,GAAG,SAAS,CAEjF;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAE7C"}
1
+ {"version":3,"file":"pii.d.ts","sourceRoot":"","sources":["../../compliance/pii.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAIlE,OAAO,EAAE,iCAAiC,EAAqE,MAAM,uCAAuC,CAAC;AAW7J;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,iCAAiC,CAkCvE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAElG;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAE3E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,kBAAkB,GAAG,SAAS,CAEjF;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAE7C"}
@@ -4,6 +4,7 @@ import 'reflect-metadata';
4
4
  import { ComplianceMetadataType } from './ComplianceMetadataType.js';
5
5
  import { PIINotSupportedOnEventSourceId } from './PIINotSupportedOnEventSourceId.js';
6
6
  import { TypeIntrospector } from '../types/index.js';
7
+ import { decorateClassOrProperty, getPropertyMetadata, hasPropertyMetadata } from '../types/propertyDecoratorMetadata.js';
7
8
  /** The property name this client uses everywhere for the event source identifier. */
8
9
  const EVENT_SOURCE_ID_PROPERTY = 'eventSourceId';
9
10
  /** Metadata key for PII decorator on properties. */
@@ -50,7 +51,7 @@ const PII_TYPE_METADATA_KEY = 'chronicle:compliance:pii:type';
50
51
  * ```
51
52
  */
52
53
  export function pii(details) {
53
- return (target, propertyKey) => {
54
+ return decorateClassOrProperty((target, propertyKey) => {
54
55
  // Class decorator usage (for types like ConceptAs)
55
56
  if (typeof target === 'function' && propertyKey === undefined) {
56
57
  const metadata = {
@@ -70,7 +71,7 @@ export function pii(details) {
70
71
  // PIINotSupportedOnEventSourceId guard, which throws for the same reason when
71
72
  // [PII] is applied to an EventSourceId/EventSourceId<T> type.
72
73
  if (key === EVENT_SOURCE_ID_PROPERTY) {
73
- throw new PIINotSupportedOnEventSourceId(declaringType.name);
74
+ throw new PIINotSupportedOnEventSourceId(declaringType.name || 'the decorated class');
74
75
  }
75
76
  TypeIntrospector.trackProperty(declaringType, key);
76
77
  const metadata = {
@@ -79,7 +80,7 @@ export function pii(details) {
79
80
  };
80
81
  Reflect.defineMetadata(PII_PROPERTY_METADATA_KEY, metadata, target, key);
81
82
  }
82
- };
83
+ });
83
84
  }
84
85
  /**
85
86
  * Gets the PII compliance metadata for a property.
@@ -88,7 +89,7 @@ export function pii(details) {
88
89
  * @returns The compliance metadata, or undefined if not decorated with @pii.
89
90
  */
90
91
  export function getPIIMetadata(target, propertyKey) {
91
- return Reflect.getMetadata(PII_PROPERTY_METADATA_KEY, target, propertyKey);
92
+ return getPropertyMetadata(PII_PROPERTY_METADATA_KEY, target, propertyKey);
92
93
  }
93
94
  /**
94
95
  * Checks whether a property has been decorated with @pii.
@@ -97,7 +98,7 @@ export function getPIIMetadata(target, propertyKey) {
97
98
  * @returns True if the property has @pii decorator; false otherwise.
98
99
  */
99
100
  export function hasPIIMetadata(target, propertyKey) {
100
- return Reflect.hasMetadata(PII_PROPERTY_METADATA_KEY, target, propertyKey);
101
+ return hasPropertyMetadata(PII_PROPERTY_METADATA_KEY, target, propertyKey);
101
102
  }
102
103
  /**
103
104
  * Gets the PII compliance metadata for a type.
@@ -1 +1 @@
1
- {"version":3,"file":"pii.js","sourceRoot":"","sources":["../../compliance/pii.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,qFAAqF;AACrF,MAAM,wBAAwB,GAAG,eAAe,CAAC;AAEjD,oDAAoD;AACpD,MAAM,yBAAyB,GAAG,mCAAmC,CAAC;AAEtE,+CAA+C;AAC/C,MAAM,qBAAqB,GAAG,+BAA+B,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,UAAU,GAAG,CAAC,OAAgB;IAChC,OAAO,CAAC,MAAyB,EAAE,WAA6B,EAAE,EAAE;QAChE,mDAAmD;QACnD,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5D,MAAM,QAAQ,GAAuB;gBACjC,YAAY,EAAE,sBAAsB,CAAC,GAAG;gBACxC,OAAO,EAAE,OAAO,IAAI,EAAE;aACzB,CAAC;YACF,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAChE,OAAO;QACX,CAAC;QAED,2BAA2B;QAC3B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,aAAa,GAAI,MAAoC,CAAC,WAAW,CAAC;YAExE,2EAA2E;YAC3E,iFAAiF;YACjF,8DAA8D;YAC9D,8EAA8E;YAC9E,8DAA8D;YAC9D,IAAI,GAAG,KAAK,wBAAwB,EAAE,CAAC;gBACnC,MAAM,IAAI,8BAA8B,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACjE,CAAC;YAED,gBAAgB,CAAC,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAuB;gBACjC,YAAY,EAAE,sBAAsB,CAAC,GAAG;gBACxC,OAAO,EAAE,OAAO,IAAI,EAAE;aACzB,CAAC;YACF,OAAO,CAAC,cAAc,CAAC,yBAAyB,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,WAAmB;IAC9D,OAAO,OAAO,CAAC,WAAW,CAAC,yBAAyB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,WAAmB;IAC9D,OAAO,OAAO,CAAC,WAAW,CAAC,yBAAyB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAC/E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAc;IAC7C,OAAO,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,IAAc;IAChC,OAAO,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"pii.js","sourceRoot":"","sources":["../../compliance/pii.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAqC,uBAAuB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAE7J,qFAAqF;AACrF,MAAM,wBAAwB,GAAG,eAAe,CAAC;AAEjD,oDAAoD;AACpD,MAAM,yBAAyB,GAAG,mCAAmC,CAAC;AAEtE,+CAA+C;AAC/C,MAAM,qBAAqB,GAAG,+BAA+B,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,UAAU,GAAG,CAAC,OAAgB;IAChC,OAAO,uBAAuB,CAAC,CAAC,MAAyB,EAAE,WAA6B,EAAE,EAAE;QACxF,mDAAmD;QACnD,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5D,MAAM,QAAQ,GAAuB;gBACjC,YAAY,EAAE,sBAAsB,CAAC,GAAG;gBACxC,OAAO,EAAE,OAAO,IAAI,EAAE;aACzB,CAAC;YACF,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAChE,OAAO;QACX,CAAC;QAED,2BAA2B;QAC3B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,aAAa,GAAI,MAAoC,CAAC,WAAW,CAAC;YAExE,2EAA2E;YAC3E,iFAAiF;YACjF,8DAA8D;YAC9D,8EAA8E;YAC9E,8DAA8D;YAC9D,IAAI,GAAG,KAAK,wBAAwB,EAAE,CAAC;gBACnC,MAAM,IAAI,8BAA8B,CAAC,aAAa,CAAC,IAAI,IAAI,qBAAqB,CAAC,CAAC;YAC1F,CAAC;YAED,gBAAgB,CAAC,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAuB;gBACjC,YAAY,EAAE,sBAAsB,CAAC,GAAG;gBACxC,OAAO,EAAE,OAAO,IAAI,EAAE;aACzB,CAAC;YACF,OAAO,CAAC,cAAc,CAAC,yBAAyB,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,WAAmB;IAC9D,OAAO,mBAAmB,CAAqB,yBAAyB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACnG,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,WAAmB;IAC9D,OAAO,mBAAmB,CAAC,yBAAyB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAC/E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAc;IAC7C,OAAO,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,IAAc;IAChC,OAAO,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ import { ChroniclePropertyDecorator } from '../types/propertyDecoratorMetadata.js';
2
3
  /**
3
4
  * Decorator that marks a property as the compliance subject - the natural person whose Personal
4
5
  * Identifiable Information (PII) a read model or event carries. The subject selects which
@@ -22,7 +23,7 @@ import 'reflect-metadata';
22
23
  * }
23
24
  * ```
24
25
  */
25
- export declare function subject(): PropertyDecorator;
26
+ export declare function subject(): ChroniclePropertyDecorator;
26
27
  /**
27
28
  * Checks whether a property has been decorated with @subject.
28
29
  * @param target - The class prototype.
@@ -1 +1 @@
1
- {"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../../compliance/subject.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAS1B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,OAAO,IAAI,iBAAiB,CAS3C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAE/E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAEzE"}
1
+ {"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../../compliance/subject.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,0BAA0B,EAAiE,MAAM,uCAAuC,CAAC;AAQlJ;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,OAAO,IAAI,0BAA0B,CASpD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAE/E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAEzE"}
@@ -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, getTypeOrFieldMetadata, hasPropertyMetadata } from '../types/propertyDecoratorMetadata.js';
5
6
  /** Metadata key for the subject decorator on a property. */
6
7
  const SUBJECT_PROPERTY_METADATA_KEY = 'chronicle:compliance:subject:property';
7
8
  /** Metadata key for the name of the subject property recorded on the declaring type. */
@@ -30,13 +31,13 @@ const SUBJECT_TYPE_METADATA_KEY = 'chronicle:compliance:subject:type';
30
31
  * ```
31
32
  */
32
33
  export function subject() {
33
- return (target, propertyKey) => {
34
+ return decorateProperty((target, propertyKey) => {
34
35
  const key = propertyKey.toString();
35
36
  const declaringType = target.constructor;
36
37
  TypeIntrospector.trackProperty(declaringType, key);
37
38
  Reflect.defineMetadata(SUBJECT_PROPERTY_METADATA_KEY, true, target, key);
38
39
  Reflect.defineMetadata(SUBJECT_TYPE_METADATA_KEY, key, declaringType);
39
- };
40
+ });
40
41
  }
41
42
  /**
42
43
  * Checks whether a property has been decorated with @subject.
@@ -45,7 +46,7 @@ export function subject() {
45
46
  * @returns True if the property has the @subject decorator; false otherwise.
46
47
  */
47
48
  export function hasSubjectMetadata(target, propertyKey) {
48
- return Reflect.hasMetadata(SUBJECT_PROPERTY_METADATA_KEY, target, propertyKey);
49
+ return hasPropertyMetadata(SUBJECT_PROPERTY_METADATA_KEY, target, propertyKey);
49
50
  }
50
51
  /**
51
52
  * Gets the name of the property decorated with @subject on a type, if any.
@@ -53,6 +54,6 @@ export function hasSubjectMetadata(target, propertyKey) {
53
54
  * @returns The decorated property name, or undefined when no property is decorated.
54
55
  */
55
56
  export function getSubjectPropertyName(type) {
56
- return Reflect.getMetadata(SUBJECT_TYPE_METADATA_KEY, type);
57
+ return getTypeOrFieldMetadata(SUBJECT_TYPE_METADATA_KEY, type);
57
58
  }
58
59
  //# sourceMappingURL=subject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subject.js","sourceRoot":"","sources":["../../compliance/subject.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,4DAA4D;AAC5D,MAAM,6BAA6B,GAAG,uCAAuC,CAAC;AAE9E,wFAAwF;AACxF,MAAM,yBAAyB,GAAG,mCAAmC,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,OAAO;IACnB,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACpD,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,aAAa,GAAI,MAAoC,CAAC,WAAW,CAAC;QAExE,gBAAgB,CAAC,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QACnD,OAAO,CAAC,cAAc,CAAC,6BAA6B,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACzE,OAAO,CAAC,cAAc,CAAC,yBAAyB,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;IAC1E,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,WAAmB;IAClE,OAAO,OAAO,CAAC,WAAW,CAAC,6BAA6B,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACnF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAc;IACjD,OAAO,OAAO,CAAC,WAAW,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"subject.js","sourceRoot":"","sources":["../../compliance/subject.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAA8B,gBAAgB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAElJ,4DAA4D;AAC5D,MAAM,6BAA6B,GAAG,uCAAuC,CAAC;AAE9E,wFAAwF;AACxF,MAAM,yBAAyB,GAAG,mCAAmC,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,OAAO;IACnB,OAAO,gBAAgB,CAAC,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACrE,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,aAAa,GAAI,MAAoC,CAAC,WAAW,CAAC;QAExE,gBAAgB,CAAC,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QACnD,OAAO,CAAC,cAAc,CAAC,6BAA6B,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACzE,OAAO,CAAC,cAAc,CAAC,yBAAyB,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,WAAmB;IAClE,OAAO,mBAAmB,CAAC,6BAA6B,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACnF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAc;IACjD,OAAO,sBAAsB,CAAS,yBAAyB,EAAE,IAAI,CAAC,CAAC;AAC3E,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import 'reflect-metadata';
2
2
  import type { SecurityMetadata } from './SecurityMetadata.js';
3
3
  import { EncryptionScope } from './EncryptionScope.js';
4
+ import { ChronicleClassOrPropertyDecorator } from '../types/propertyDecoratorMetadata.js';
4
5
  /**
5
6
  * Decorator that marks a property or type as needing plain-confidentiality encryption at rest - a
6
7
  * security measure, not a compliance one.
@@ -42,7 +43,7 @@ import { EncryptionScope } from './EncryptionScope.js';
42
43
  * }
43
44
  * ```
44
45
  */
45
- export declare function encrypted(scope?: EncryptionScope, details?: string): PropertyDecorator & ClassDecorator;
46
+ export declare function encrypted(scope?: EncryptionScope, details?: string): ChronicleClassOrPropertyDecorator;
46
47
  /**
47
48
  * Gets the encrypted security metadata for a property.
48
49
  * @param target - The class prototype.
@@ -1 +1 @@
1
- {"version":3,"file":"encrypted.d.ts","sourceRoot":"","sources":["../../confidentiality/encrypted.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAwBvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,SAAS,CAAC,KAAK,GAAE,eAAyC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,cAAc,CAiChI;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAEtG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAEjF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,GAAG,gBAAgB,GAAG,SAAS,CAErF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAEnD"}
1
+ {"version":3,"file":"encrypted.d.ts","sourceRoot":"","sources":["../../confidentiality/encrypted.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,iCAAiC,EAAqE,MAAM,uCAAuC,CAAC;AAsB7J;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,SAAS,CAAC,KAAK,GAAE,eAAyC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,iCAAiC,CAiC/H;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAEtG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAEjF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,GAAG,gBAAgB,GAAG,SAAS,CAErF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAEnD"}
@@ -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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"}
@@ -9,6 +9,8 @@ export declare class CorrelationIdManager implements ICorrelationIdAccessor, ICo
9
9
  private readonly _storage;
10
10
  /** @inheritdoc */
11
11
  get current(): CorrelationId;
12
+ /** Runs an async or synchronous operation with a correlation id, restoring the caller afterward. */
13
+ run<T>(correlationId: CorrelationId, callback: () => T): T;
12
14
  /** @inheritdoc */
13
15
  setCurrent(correlationId: CorrelationId): void;
14
16
  /** @inheritdoc */
@@ -1 +1 @@
1
- {"version":3,"file":"CorrelationIdManager.d.ts","sourceRoot":"","sources":["../../correlation/CorrelationIdManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,sBAAsB,EAAE,oBAAoB;IACrF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IAEnE,kBAAkB;IAClB,IAAI,OAAO,IAAI,aAAa,CAE3B;IAED,kBAAkB;IAClB,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAE7C;IAED,kBAAkB;IAClB,KAAK,IAAI,IAAI,CAEZ;CACJ"}
1
+ {"version":3,"file":"CorrelationIdManager.d.ts","sourceRoot":"","sources":["../../correlation/CorrelationIdManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,sBAAsB,EAAE,oBAAoB;IACrF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IAEnE,kBAAkB;IAClB,IAAI,OAAO,IAAI,aAAa,CAE3B;IAED,oGAAoG;IACpG,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAEzD;IAED,kBAAkB;IAClB,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAE7C;IAED,kBAAkB;IAClB,KAAK,IAAI,IAAI,CAEZ;CACJ"}
@@ -12,6 +12,10 @@ export class CorrelationIdManager {
12
12
  get current() {
13
13
  return this._storage.getStore() ?? CorrelationId.create();
14
14
  }
15
+ /** Runs an async or synchronous operation with a correlation id, restoring the caller afterward. */
16
+ run(correlationId, callback) {
17
+ return this._storage.run(correlationId, callback);
18
+ }
15
19
  /** @inheritdoc */
16
20
  setCurrent(correlationId) {
17
21
  this._storage.enterWith(correlationId);
@@ -1 +1 @@
1
- {"version":3,"file":"CorrelationIdManager.js","sourceRoot":"","sources":["../../correlation/CorrelationIdManager.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACZ,QAAQ,GAAG,IAAI,iBAAiB,EAAiB,CAAC;IAEnE,kBAAkB;IAClB,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;IAC9D,CAAC;IAED,kBAAkB;IAClB,UAAU,CAAC,aAA4B;QACnC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAED,kBAAkB;IAClB,KAAK;QACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;CACJ"}
1
+ {"version":3,"file":"CorrelationIdManager.js","sourceRoot":"","sources":["../../correlation/CorrelationIdManager.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACZ,QAAQ,GAAG,IAAI,iBAAiB,EAAiB,CAAC;IAEnE,kBAAkB;IAClB,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;IAC9D,CAAC;IAED,oGAAoG;IACpG,GAAG,CAAI,aAA4B,EAAE,QAAiB;QAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,kBAAkB;IAClB,UAAU,CAAC,aAA4B;QACnC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAED,kBAAkB;IAClB,KAAK;QACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;CACJ"}
@@ -29,10 +29,9 @@ export interface AppendOptions {
29
29
  */
30
30
  tags?: ReadonlyArray<string | Tag>;
31
31
  /**
32
- * Optional per-event-source-id concurrency scopes, keyed by event source id.
33
- * Only meaningful for the `appendMany(events: EventForEventSourceId[], options?)` overload, which
34
- * can target multiple distinct event sources in a single batch. When an event source id has no
35
- * entry here, it falls back to {@link concurrencyScope}.
32
+ * Optional labeled concurrency scopes, keyed by event source id. Labels need not be append targets.
33
+ * Any target without an explicit scope falls back to {@link concurrencyScope}.
34
+ * The kernel requires at least one event in a batch, so scope-only batches are not supported.
36
35
  */
37
36
  concurrencyScopes?: Record<string, ConcurrencyScope>;
38
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AppendOptions.d.ts","sourceRoot":"","sources":["../../eventSequences/AppendOptions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB,6FAA6F;IAC7F,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IAEnC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACxD"}
1
+ {"version":3,"file":"AppendOptions.d.ts","sourceRoot":"","sources":["../../eventSequences/AppendOptions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB,6FAA6F;IAC7F,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IAEnC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"EventSequence.d.ts","sourceRoot":"","sources":["../../eventSequences/EventSequence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventSequence.d.ts","sourceRoot":"","sources":["../../eventSequences/EventSequence.ts"],"names":[],"mappings":"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"}
@@ -52,8 +52,7 @@ export class EventSequence {
52
52
  const content = JsonSerializer.serialize(event);
53
53
  // Merge static tags declared on the event type with tags supplied at append time.
54
54
  const tags = mergeTags(getTagsFor(event.constructor), options?.tags);
55
- causationManager.add(CausationType.appendEvent, { eventType: eventType.id.value });
56
- const causationChain = causationManager.getCurrentChain();
55
+ const causationChain = causationManager.run(CausationType.appendEvent, { eventType: eventType.id.value }, () => causationManager.getCurrentChain());
57
56
  const identity = identityProvider.getCurrent();
58
57
  const metricAttributes = {
59
58
  'chronicle.event_store': this._eventStoreName,
@@ -176,19 +175,22 @@ export class EventSequence {
176
175
  const appendOptions = typeof eventSourceIdOrEvents === 'string'
177
176
  ? options
178
177
  : eventsOrOptions;
178
+ if (eventsForEventSourceIds.length === 0 && Object.keys(appendOptions?.concurrencyScopes ?? {}).length > 0) {
179
+ throw new Error('Chronicle requires at least one event to validate concurrency scopes.');
180
+ }
179
181
  const correlationId = appendOptions?.correlationId === undefined
180
182
  ? Guid.as(correlationIdManager.current.value)
181
183
  : Guid.as(appendOptions.correlationId);
182
- causationManager.add(CausationType.appendManyEvents, { count: String(eventsForEventSourceIds.length) });
183
- const batchCausationChain = causationManager.getCurrentChain();
184
+ const batchCausationChain = causationManager.run(CausationType.appendManyEvents, { count: String(eventsForEventSourceIds.length) }, () => causationManager.getCurrentChain());
184
185
  const identity = identityProvider.getCurrent();
185
- // Each distinct event source id in the batch gets its own concurrency scope: an explicit
186
- // entry in options.concurrencyScopes wins, falling back to the shared options.concurrencyScope
187
- // when no per-source entry is given — mirroring C#'s AppendMany(IEnumerable<EventForEventSourceId>, ...)
188
- // overload, which takes an IDictionary<EventSourceId, ConcurrencyScope> rather than one shared scope.
189
- const concurrencyScopesByEventSourceId = appendOptions?.concurrencyScopes;
190
- const defaultConcurrencyScope = appendOptions?.concurrencyScope;
191
- const resolveConcurrencyScope = (eventSourceId) => this.toContractConcurrencyScope(concurrencyScopesByEventSourceId?.[eventSourceId] ?? defaultConcurrencyScope);
186
+ // Explicit labels may narrow a different event source than any target in this batch.
187
+ // Preserve them and supply the shared fallback only for targets without an explicit scope.
188
+ const concurrencyScopes = new Map(Object.entries(appendOptions?.concurrencyScopes ?? {}));
189
+ for (const { eventSourceId } of eventsForEventSourceIds) {
190
+ if (!concurrencyScopes.has(eventSourceId)) {
191
+ concurrencyScopes.set(eventSourceId, appendOptions?.concurrencyScope);
192
+ }
193
+ }
192
194
  const eventsToAppend = eventsForEventSourceIds.map(({ eventSourceId, event, eventStreamType, eventStreamId, eventSourceType, subject, occurred, tags: instanceTags }) => {
193
195
  const eventType = getEventTypeFor(event.constructor);
194
196
  // Merge static tags declared on the event type, tags carried by this specific
@@ -240,9 +242,9 @@ export class EventSequence {
240
242
  Properties: { ...c.properties }
241
243
  })),
242
244
  CausedBy: toContractsCausedBy(identity),
243
- ConcurrencyScopes: distinctEventSourceIds.map(eventSourceId => ({
245
+ ConcurrencyScopes: [...concurrencyScopes].map(([eventSourceId, scope]) => ({
244
246
  EventSourceId: eventSourceId,
245
- Scope: resolveConcurrencyScope(eventSourceId)
247
+ Scope: this.toContractConcurrencyScope(scope)
246
248
  }))
247
249
  });
248
250
  const appendManyResponse = ensureCommandResponse('append many events', response);
@@ -652,7 +654,10 @@ export class EventSequence {
652
654
  }
653
655
  toContractConcurrencyScope(scope) {
654
656
  return {
655
- SequenceNumber: scope?.sequenceNumber ?? EventSequenceNumber.unset.value,
657
+ SequenceNumber: scope?.sequenceNumber === EventSequenceNumber.beforeFirst.value
658
+ ? EventSequenceNumber.unset.value
659
+ : scope?.sequenceNumber ?? EventSequenceNumber.unset.value,
660
+ ExpectsNoMatchingEvent: scope?.sequenceNumber === EventSequenceNumber.beforeFirst.value,
656
661
  EventSourceId: scope?.eventSourceId ?? false,
657
662
  EventStreamType: scope?.eventStreamType ?? '',
658
663
  EventStreamId: scope?.eventStreamId ?? '',