@cratis/chronicle 6.50.0 → 6.51.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/ChronicleClient.ts +127 -99
  2. package/ChronicleOptions.ts +23 -0
  3. package/dist/ChronicleClient.d.ts +7 -0
  4. package/dist/ChronicleClient.d.ts.map +1 -1
  5. package/dist/ChronicleClient.js +115 -95
  6. package/dist/ChronicleClient.js.map +1 -1
  7. package/dist/ChronicleOptions.d.ts +14 -0
  8. package/dist/ChronicleOptions.d.ts.map +1 -1
  9. package/dist/ChronicleOptions.js +16 -0
  10. package/dist/ChronicleOptions.js.map +1 -1
  11. package/dist/eventSequences/EventSequence.d.ts +12 -0
  12. package/dist/eventSequences/EventSequence.d.ts.map +1 -1
  13. package/dist/eventSequences/EventSequence.js +202 -175
  14. package/dist/eventSequences/EventSequence.js.map +1 -1
  15. package/dist/eventSequences/ITransactionalEventSequence.d.ts +2 -2
  16. package/dist/eventSequences/PreparedBatchAppend.d.ts +4 -0
  17. package/dist/eventSequences/PreparedBatchAppend.d.ts.map +1 -0
  18. package/dist/eventSequences/PreparedBatchAppend.js +4 -0
  19. package/dist/eventSequences/PreparedBatchAppend.js.map +1 -0
  20. package/dist/eventSequences/PreparedSingleAppend.d.ts +4 -0
  21. package/dist/eventSequences/PreparedSingleAppend.d.ts.map +1 -0
  22. package/dist/eventSequences/PreparedSingleAppend.js +4 -0
  23. package/dist/eventSequences/PreparedSingleAppend.js.map +1 -0
  24. package/dist/eventSequences/WireBatchEvent.d.ts +6 -0
  25. package/dist/eventSequences/WireBatchEvent.d.ts.map +1 -0
  26. package/dist/eventSequences/WireBatchEvent.js +4 -0
  27. package/dist/eventSequences/WireBatchEvent.js.map +1 -0
  28. package/dist/eventSequences/toContractsCausation.d.ts +16 -0
  29. package/dist/eventSequences/toContractsCausation.d.ts.map +1 -0
  30. package/dist/eventSequences/toContractsCausation.js +15 -0
  31. package/dist/eventSequences/toContractsCausation.js.map +1 -0
  32. package/dist/events/constraints/ConstraintBuilder.d.ts +7 -0
  33. package/dist/events/constraints/ConstraintBuilder.d.ts.map +1 -1
  34. package/dist/events/constraints/ConstraintBuilder.js +13 -0
  35. package/dist/events/constraints/ConstraintBuilder.js.map +1 -1
  36. package/dist/events/constraints/ConstraintEventSequences.d.ts +19 -0
  37. package/dist/events/constraints/ConstraintEventSequences.d.ts.map +1 -0
  38. package/dist/events/constraints/ConstraintEventSequences.js +39 -0
  39. package/dist/events/constraints/ConstraintEventSequences.js.map +1 -0
  40. package/dist/events/constraints/Constraints.d.ts.map +1 -1
  41. package/dist/events/constraints/Constraints.js +24 -3
  42. package/dist/events/constraints/Constraints.js.map +1 -1
  43. package/dist/events/constraints/IConstraintBuilder.d.ts +18 -0
  44. package/dist/events/constraints/IConstraintBuilder.d.ts.map +1 -1
  45. package/dist/events/constraints/UniqueOptions.d.ts +15 -0
  46. package/dist/events/constraints/UniqueOptions.d.ts.map +1 -0
  47. package/dist/events/constraints/UniqueOptions.js +4 -0
  48. package/dist/events/constraints/UniqueOptions.js.map +1 -0
  49. package/dist/events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.d.ts +9 -0
  50. package/dist/events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.d.ts.map +1 -0
  51. package/dist/events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.js +22 -0
  52. package/dist/events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.js.map +1 -0
  53. package/dist/events/constraints/index.d.ts +2 -0
  54. package/dist/events/constraints/index.d.ts.map +1 -1
  55. package/dist/events/constraints/index.js.map +1 -1
  56. package/dist/events/constraints/unique.d.ts +10 -0
  57. package/dist/events/constraints/unique.d.ts.map +1 -1
  58. package/dist/events/constraints/unique.js +11 -10
  59. package/dist/events/constraints/unique.js.map +1 -1
  60. package/dist/reducers/ReducerObservation.d.ts +18 -0
  61. package/dist/reducers/ReducerObservation.d.ts.map +1 -0
  62. package/dist/reducers/ReducerObservation.js +4 -0
  63. package/dist/reducers/ReducerObservation.js.map +1 -0
  64. package/dist/reducers/ReducerObservationSession.d.ts +11 -0
  65. package/dist/reducers/ReducerObservationSession.d.ts.map +1 -0
  66. package/dist/reducers/ReducerObservationSession.js +4 -0
  67. package/dist/reducers/ReducerObservationSession.js.map +1 -0
  68. package/dist/reducers/Reducers.d.ts +9 -0
  69. package/dist/reducers/Reducers.d.ts.map +1 -1
  70. package/dist/reducers/Reducers.js +149 -154
  71. package/dist/reducers/Reducers.js.map +1 -1
  72. package/dist/reducers/ReductionOutcome.d.ts +25 -0
  73. package/dist/reducers/ReductionOutcome.d.ts.map +1 -0
  74. package/dist/reducers/ReductionOutcome.js +66 -0
  75. package/dist/reducers/ReductionOutcome.js.map +1 -0
  76. package/dist/testing/EventScenario.d.ts.map +1 -1
  77. package/dist/testing/EventScenario.js +8 -3
  78. package/dist/testing/EventScenario.js.map +1 -1
  79. package/dist/testing/InProcessConstraints.d.ts +4 -1
  80. package/dist/testing/InProcessConstraints.d.ts.map +1 -1
  81. package/dist/testing/InProcessConstraints.js +5 -1
  82. package/dist/testing/InProcessConstraints.js.map +1 -1
  83. package/dist/testing/InProcessEventSequence.d.ts.map +1 -1
  84. package/dist/testing/InProcessEventSequence.js +2 -1
  85. package/dist/testing/InProcessEventSequence.js.map +1 -1
  86. package/dist/transactions/ConflictingConcurrencyScopesInUnitOfWork.d.ts +14 -0
  87. package/dist/transactions/ConflictingConcurrencyScopesInUnitOfWork.d.ts.map +1 -0
  88. package/dist/transactions/ConflictingConcurrencyScopesInUnitOfWork.js +20 -0
  89. package/dist/transactions/ConflictingConcurrencyScopesInUnitOfWork.js.map +1 -0
  90. package/dist/transactions/IUnitOfWork.d.ts +2 -1
  91. package/dist/transactions/IUnitOfWork.d.ts.map +1 -1
  92. package/dist/transactions/TransactionalAppendOptions.d.ts +23 -2
  93. package/dist/transactions/TransactionalAppendOptions.d.ts.map +1 -1
  94. package/dist/transactions/UnitOfWork.d.ts +1 -0
  95. package/dist/transactions/UnitOfWork.d.ts.map +1 -1
  96. package/dist/transactions/UnitOfWork.js +28 -13
  97. package/dist/transactions/UnitOfWork.js.map +1 -1
  98. package/dist/transactions/concurrencyScopesAreEqual.d.ts +9 -0
  99. package/dist/transactions/concurrencyScopesAreEqual.d.ts.map +1 -0
  100. package/dist/transactions/concurrencyScopesAreEqual.js +19 -0
  101. package/dist/transactions/concurrencyScopesAreEqual.js.map +1 -0
  102. package/dist/transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.d.ts +26 -0
  103. package/dist/transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.d.ts.map +1 -0
  104. package/dist/transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.js +31 -0
  105. package/dist/transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.js.map +1 -0
  106. package/dist/transactions/index.d.ts +1 -0
  107. package/dist/transactions/index.d.ts.map +1 -1
  108. package/dist/transactions/index.js +1 -0
  109. package/dist/transactions/index.js.map +1 -1
  110. package/dist/transactions/toEventForEventSourceId.d.ts +13 -0
  111. package/dist/transactions/toEventForEventSourceId.d.ts.map +1 -0
  112. package/dist/transactions/toEventForEventSourceId.js +29 -0
  113. package/dist/transactions/toEventForEventSourceId.js.map +1 -0
  114. package/dist/tsconfig.tsbuildinfo +1 -1
  115. package/eventSequences/EventSequence.ts +265 -186
  116. package/eventSequences/ITransactionalEventSequence.ts +2 -2
  117. package/eventSequences/PreparedBatchAppend.ts +7 -0
  118. package/eventSequences/PreparedSingleAppend.ts +7 -0
  119. package/eventSequences/WireBatchEvent.ts +7 -0
  120. package/eventSequences/for_TransactionalEventSequence/when_appending_many_with_options.spec.ts +29 -0
  121. package/eventSequences/toContractsCausation.ts +17 -0
  122. package/events/constraints/ConstraintBuilder.ts +16 -0
  123. package/events/constraints/ConstraintEventSequences.ts +41 -0
  124. package/events/constraints/Constraints.ts +22 -3
  125. package/events/constraints/IConstraintBuilder.ts +20 -0
  126. package/events/constraints/UniqueOptions.ts +20 -0
  127. package/events/constraints/for_Constraints/against_a_kernel/when_appending_to_event_sequences_a_constraint_is_scoped_to.integration.spec.ts +118 -0
  128. package/events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.ts +26 -0
  129. package/events/constraints/for_Constraints/when_scoping_to_event_sequences/with_fluent_builder.spec.ts +40 -0
  130. package/events/constraints/for_Constraints/when_scoping_to_event_sequences/with_legacy_decorators.legacy.spec.ts +47 -0
  131. package/events/constraints/for_Constraints/when_scoping_to_event_sequences/with_merged_declarations.spec.ts +36 -0
  132. package/events/constraints/for_Constraints/when_scoping_to_event_sequences/with_standard_decorators.standard.spec.ts +46 -0
  133. package/events/constraints/index.ts +2 -0
  134. package/events/constraints/unique.ts +22 -2
  135. package/for_ChronicleClient/messageSizes.spec.ts +37 -0
  136. package/for_ChronicleOptions/when_configuring_message_sizes/with_message_sizes.spec.ts +29 -0
  137. package/package.json +2 -2
  138. package/reducers/ReducerObservation.ts +25 -0
  139. package/reducers/ReducerObservationSession.ts +15 -0
  140. package/reducers/Reducers.ts +185 -171
  141. package/reducers/ReductionOutcome.ts +75 -0
  142. package/testing/EventScenario.fixtures.spec.ts +1 -1
  143. package/testing/EventScenario.ts +10 -4
  144. package/testing/InProcessConstraints.ts +5 -1
  145. package/testing/InProcessEventSequence.ts +2 -1
  146. package/testing/for_EventScenario/when_appending_event_sequence_constraints/event_sequence_scenario_behaviors.fixture.ts +101 -0
  147. package/testing/for_EventScenario/when_appending_event_sequence_constraints/other_sequence_extended_key.legacy.spec.ts +28 -0
  148. package/testing/for_EventScenario/when_appending_event_sequence_constraints/other_sequence_extended_key.standard.spec.ts +27 -0
  149. package/testing/for_EventScenario/when_appending_event_sequence_constraints/other_sequence_extended_key_behaviors.fixture.ts +40 -0
  150. package/testing/for_EventScenario/when_appending_event_sequence_constraints/with_legacy_decorators.legacy.spec.ts +55 -0
  151. package/testing/for_EventScenario/when_appending_event_sequence_constraints/with_standard_decorators.standard.spec.ts +54 -0
  152. package/transactions/ConflictingConcurrencyScopesInUnitOfWork.ts +19 -0
  153. package/transactions/IUnitOfWork.ts +2 -1
  154. package/transactions/TransactionalAppendOptions.ts +30 -2
  155. package/transactions/UnitOfWork.ts +29 -13
  156. package/transactions/concurrencyScopesAreEqual.ts +23 -0
  157. package/transactions/for_UnitOfWork/against_a_kernel/when_committing_with_append_metadata.integration.spec.ts +70 -0
  158. package/transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.ts +54 -0
  159. package/transactions/for_UnitOfWork/when_adding_events_with_concurrency_scopes/and_the_event_type_filters_are_equivalent.spec.ts +32 -0
  160. package/transactions/for_UnitOfWork/when_adding_events_with_concurrency_scopes/and_the_event_type_filters_differ.spec.ts +40 -0
  161. package/transactions/for_UnitOfWork/when_adding_events_with_concurrency_scopes/and_the_scopes_are_equal_or_omitted.spec.ts +29 -0
  162. package/transactions/for_UnitOfWork/when_adding_events_with_concurrency_scopes/and_the_scopes_differ_for_one_event_source.spec.ts +29 -0
  163. package/transactions/for_UnitOfWork/when_committing_events_with_append_metadata/and_a_later_event_sequence_fails.spec.ts +30 -0
  164. package/transactions/for_UnitOfWork/when_committing_events_with_append_metadata/and_events_span_event_sequences.spec.ts +34 -0
  165. package/transactions/for_UnitOfWork/when_committing_events_with_append_metadata/and_options_differ_per_event.spec.ts +45 -0
  166. package/transactions/for_UnitOfWork/when_committing_events_with_append_metadata/and_the_append_is_rejected.spec.ts +26 -0
  167. package/transactions/for_UnitOfWork/when_rolling_back_events_with_append_metadata.spec.ts +24 -0
  168. package/transactions/index.ts +1 -0
  169. package/transactions/toEventForEventSourceId.ts +32 -0
  170. package/vitest.integration.config.ts +2 -0
  171. package/webhooks/for_Webhooks/against_a_kernel/given/ReceivedWebhookRequest.fixture.ts +21 -0
  172. package/webhooks/for_Webhooks/against_a_kernel/given/WebhookReceiver.fixture.ts +99 -0
  173. package/webhooks/for_Webhooks/against_a_kernel/when_delivering_events_to_a_failing_webhook.integration.spec.ts +101 -0
  174. package/webhooks/for_Webhooks/against_a_kernel/when_delivering_events_to_a_webhook.integration.spec.ts +130 -0
  175. package/webhooks/for_Webhooks/against_a_kernel/when_registering_a_webhook_that_is_not_replayable_and_not_active.integration.spec.ts +101 -0
  176. package/webhooks/for_Webhooks/when_registering_a_webhook_that_is_not_replayable_and_not_active.spec.ts +43 -0
@@ -0,0 +1,4 @@
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
+ export {};
4
+ //# sourceMappingURL=PreparedSingleAppend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PreparedSingleAppend.js","sourceRoot":"","sources":["../../eventSequences/PreparedSingleAppend.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
@@ -0,0 +1,6 @@
1
+ import type { PreparedBatchAppend } from './PreparedBatchAppend.js';
2
+ /** A wire event of a batch append, optionally carrying the definition event source it is routed to. */
3
+ export type WireBatchEvent = PreparedBatchAppend['eventsToAppend'][number] & {
4
+ EventSource?: string;
5
+ };
6
+ //# sourceMappingURL=WireBatchEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WireBatchEvent.d.ts","sourceRoot":"","sources":["../../eventSequences/WireBatchEvent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,uGAAuG;AACvG,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -0,0 +1,4 @@
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
+ export {};
4
+ //# sourceMappingURL=WireBatchEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WireBatchEvent.js","sourceRoot":"","sources":["../../eventSequences/WireBatchEvent.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
@@ -0,0 +1,16 @@
1
+ import type { causationManager } from '../auditing/index.js';
2
+ /**
3
+ * Converts a causation chain into the Causation shape used by Chronicle contracts.
4
+ * @param causationChain - The causation chain to convert.
5
+ * @returns The contracts causation entries.
6
+ */
7
+ export declare function toContractsCausation(causationChain: ReturnType<typeof causationManager.getCurrentChain>): {
8
+ Occurred: {
9
+ Value: string;
10
+ };
11
+ Type: string;
12
+ Properties: {
13
+ [x: string]: string;
14
+ };
15
+ }[];
16
+ //# sourceMappingURL=toContractsCausation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toContractsCausation.d.ts","sourceRoot":"","sources":["../../eventSequences/toContractsCausation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,eAAe,CAAC;;QAEpF,KAAK;;;;;;IAIxB"}
@@ -0,0 +1,15 @@
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
+ /**
4
+ * Converts a causation chain into the Causation shape used by Chronicle contracts.
5
+ * @param causationChain - The causation chain to convert.
6
+ * @returns The contracts causation entries.
7
+ */
8
+ export function toContractsCausation(causationChain) {
9
+ return causationChain.map(c => ({
10
+ Occurred: { Value: c.occurred.toISOString() },
11
+ Type: c.type.name,
12
+ Properties: { ...c.properties }
13
+ }));
14
+ }
15
+ //# sourceMappingURL=toContractsCausation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toContractsCausation.js","sourceRoot":"","sources":["../../eventSequences/toContractsCausation.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAIrG;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,cAAmE;IACpG,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5B,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE;QAC7C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;QACjB,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE;KAClC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { ConstraintEventSequence } from './ConstraintEventSequences.js';
1
2
  import { IConstraintBuilder } from './IConstraintBuilder.js';
2
3
  import { IUniqueConstraintBuilder } from './IUniqueConstraintBuilder.js';
3
4
  import { UniqueConstraintCapture } from './UniqueConstraintBuilder.js';
@@ -21,6 +22,8 @@ export interface ConstraintCapture {
21
22
  scope: ConstraintScopeCapture;
22
23
  uniqueConstraint?: UniqueConstraintCapture;
23
24
  uniqueEventType?: UniqueEventTypeCapture;
25
+ /** Identifiers of the event sequences the constraint applies to; empty or omitted means every event sequence. */
26
+ eventSequences?: string[];
24
27
  }
25
28
  /**
26
29
  * Implements {@link IConstraintBuilder}, capturing the constraint definition
@@ -37,6 +40,10 @@ export declare class ConstraintBuilder implements IConstraintBuilder {
37
40
  /** @inheritdoc */
38
41
  perEventStreamId(): IConstraintBuilder;
39
42
  /** @inheritdoc */
43
+ forEventSequences(...eventSequenceIds: ConstraintEventSequence[]): IConstraintBuilder;
44
+ /** @inheritdoc */
45
+ forEventLog(): IConstraintBuilder;
46
+ /** @inheritdoc */
40
47
  unique(callback: (builder: IUniqueConstraintBuilder) => void): IConstraintBuilder;
41
48
  /** @inheritdoc */
42
49
  uniqueFor(eventType: Function, message?: string, name?: string): IConstraintBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"ConstraintBuilder.d.ts","sourceRoot":"","sources":["../../../events/constraints/ConstraintBuilder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAA2B,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEhG,sDAAsD;AACtD,MAAM,WAAW,sBAAsB;IACnC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAED,4EAA4E;AAC5E,MAAM,WAAW,sBAAsB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,sBAAsB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC5C;AAED;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,kBAAkB;IACxD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,OAAO,CAAC,cAAc,CAAC,CAA0B;IAEjD,YAAY,IAAI,EAAE,MAAM,EAKvB;IAED,kBAAkB;IAClB,kBAAkB,IAAI,kBAAkB,CAGvC;IAED,kBAAkB;IAClB,kBAAkB,IAAI,kBAAkB,CAGvC;IAED,kBAAkB;IAClB,gBAAgB,IAAI,kBAAkB,CAGrC;IAED,kBAAkB;IAClB,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,GAAG,kBAAkB,CAShF;IAED,kBAAkB;IAClB,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAQlF;CACJ"}
1
+ {"version":3,"file":"ConstraintBuilder.d.ts","sourceRoot":"","sources":["../../../events/constraints/ConstraintBuilder.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAqC,MAAM,+BAA+B,CAAC;AAC3G,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAA2B,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEhG,sDAAsD;AACtD,MAAM,WAAW,sBAAsB;IACnC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAED,4EAA4E;AAC5E,MAAM,WAAW,sBAAsB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,sBAAsB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,iHAAiH;IACjH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,kBAAkB;IACxD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,OAAO,CAAC,cAAc,CAAC,CAA0B;IAEjD,YAAY,IAAI,EAAE,MAAM,EAKvB;IAED,kBAAkB;IAClB,kBAAkB,IAAI,kBAAkB,CAGvC;IAED,kBAAkB;IAClB,kBAAkB,IAAI,kBAAkB,CAGvC;IAED,kBAAkB;IAClB,gBAAgB,IAAI,kBAAkB,CAGrC;IAED,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,gBAAgB,EAAE,uBAAuB,EAAE,GAAG,kBAAkB,CAIpF;IAED,kBAAkB;IAClB,WAAW,IAAI,kBAAkB,CAEhC;IAED,kBAAkB;IAClB,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,GAAG,kBAAkB,CAShF;IAED,kBAAkB;IAClB,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAQlF;CACJ"}
@@ -1,6 +1,8 @@
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
3
  import { getEventTypeFor } from '../eventTypeDecorator.js';
4
+ import { EventSequenceId } from '../../eventSequences/EventSequenceId.js';
5
+ import { normalizeConstraintEventSequences } from './ConstraintEventSequences.js';
4
6
  import { UniqueConstraintBuilder } from './UniqueConstraintBuilder.js';
5
7
  /**
6
8
  * Implements {@link IConstraintBuilder}, capturing the constraint definition
@@ -31,6 +33,17 @@ export class ConstraintBuilder {
31
33
  return this;
32
34
  }
33
35
  /** @inheritdoc */
36
+ forEventSequences(...eventSequenceIds) {
37
+ const eventSequences = normalizeConstraintEventSequences([...(this.capture.eventSequences ?? []), ...eventSequenceIds]);
38
+ if (eventSequences.length > 0)
39
+ this.capture.eventSequences = eventSequences;
40
+ return this;
41
+ }
42
+ /** @inheritdoc */
43
+ forEventLog() {
44
+ return this.forEventSequences(EventSequenceId.eventLog);
45
+ }
46
+ /** @inheritdoc */
34
47
  unique(callback) {
35
48
  const uniqueCapture = {
36
49
  eventDefinitions: [],
@@ -1 +1 @@
1
- {"version":3,"file":"ConstraintBuilder.js","sourceRoot":"","sources":["../../../events/constraints/ConstraintBuilder.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,OAAO,EAAE,uBAAuB,EAA2B,MAAM,8BAA8B,CAAC;AA0BhG;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IACjB,OAAO,CAAoB;IAC5B,cAAc,CAA2B;IAEjD,YAAY,IAAY;QACpB,IAAI,CAAC,OAAO,GAAG;YACX,IAAI;YACJ,KAAK,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE;SAC3F,CAAC;IACN,CAAC;IAED,kBAAkB;IAClB,kBAAkB;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC7C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,kBAAkB;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC7C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,gBAAgB;QACZ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,MAAM,CAAC,QAAqD;QACxD,MAAM,aAAa,GAA4B;YAC3C,gBAAgB,EAAE,EAAE;YACpB,YAAY,EAAE,KAAK;SACtB,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,aAAa,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,uBAAuB,CAAC,aAAa,CAAC,CAAC;QACjE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,SAAS,CAAC,SAAmB,EAAE,OAAgB,EAAE,IAAa;QAC1D,MAAM,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG;YAC3B,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK;YACxB,OAAO;YACP,IAAI;SACP,CAAC;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
1
+ {"version":3,"file":"ConstraintBuilder.js","sourceRoot":"","sources":["../../../events/constraints/ConstraintBuilder.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAA2B,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AAG3G,OAAO,EAAE,uBAAuB,EAA2B,MAAM,8BAA8B,CAAC;AA4BhG;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IACjB,OAAO,CAAoB;IAC5B,cAAc,CAA2B;IAEjD,YAAY,IAAY;QACpB,IAAI,CAAC,OAAO,GAAG;YACX,IAAI;YACJ,KAAK,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE;SAC3F,CAAC;IACN,CAAC;IAED,kBAAkB;IAClB,kBAAkB;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC7C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,kBAAkB;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC7C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,gBAAgB;QACZ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,gBAA2C;QAC5D,MAAM,cAAc,GAAG,iCAAiC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC;QACxH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;QAC5E,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,WAAW;QACP,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,kBAAkB;IAClB,MAAM,CAAC,QAAqD;QACxD,MAAM,aAAa,GAA4B;YAC3C,gBAAgB,EAAE,EAAE;YACpB,YAAY,EAAE,KAAK;SACtB,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,aAAa,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,uBAAuB,CAAC,aAAa,CAAC,CAAC;QACjE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,SAAS,CAAC,SAAmB,EAAE,OAAgB,EAAE,IAAa;QAC1D,MAAM,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG;YAC3B,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK;YACxB,OAAO;YACP,IAAI;SACP,CAAC;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
@@ -0,0 +1,19 @@
1
+ import { EventSequenceId } from '../../eventSequences/EventSequenceId.js';
2
+ /** An event sequence a constraint can be scoped to, by identifier or by its string value. */
3
+ export type ConstraintEventSequence = EventSequenceId | string;
4
+ /**
5
+ * Normalizes declared event sequences to distinct, nonblank identifier values in declaration order.
6
+ * @param eventSequences - The declared event sequences.
7
+ * @returns The normalized identifier values.
8
+ */
9
+ export declare function normalizeConstraintEventSequences(eventSequences: readonly ConstraintEventSequence[]): string[];
10
+ /**
11
+ * Combines the event sequences declared for one constraint in more than one place.
12
+ * An empty declaration means every event sequence and wins: combining never narrows a constraint that
13
+ * one declaration applies everywhere. Otherwise the result is the distinct union in declaration order.
14
+ * Mirrors ConstraintEventSequences.Combine in the .NET client.
15
+ * @param declarations - The declarations to combine; undefined or empty means every event sequence.
16
+ * @returns The combined declaration, empty for every event sequence.
17
+ */
18
+ export declare function combineConstraintEventSequences(declarations: ReadonlyArray<readonly string[] | undefined>): string[];
19
+ //# sourceMappingURL=ConstraintEventSequences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConstraintEventSequences.d.ts","sourceRoot":"","sources":["../../../events/constraints/ConstraintEventSequences.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE1E,6FAA6F;AAC7F,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG,MAAM,CAAC;AAE/D;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,cAAc,EAAE,SAAS,uBAAuB,EAAE,GAAG,MAAM,EAAE,CAQ9G;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,aAAa,CAAC,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,MAAM,EAAE,CASpH"}
@@ -0,0 +1,39 @@
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 { EventSequenceId } from '../../eventSequences/EventSequenceId.js';
4
+ /**
5
+ * Normalizes declared event sequences to distinct, nonblank identifier values in declaration order.
6
+ * @param eventSequences - The declared event sequences.
7
+ * @returns The normalized identifier values.
8
+ */
9
+ export function normalizeConstraintEventSequences(eventSequences) {
10
+ const values = [];
11
+ for (const eventSequence of eventSequences) {
12
+ const value = eventSequence instanceof EventSequenceId ? eventSequence.value : eventSequence;
13
+ if (typeof value !== 'string' || value.trim().length === 0 || values.includes(value))
14
+ continue;
15
+ values.push(value);
16
+ }
17
+ return values;
18
+ }
19
+ /**
20
+ * Combines the event sequences declared for one constraint in more than one place.
21
+ * An empty declaration means every event sequence and wins: combining never narrows a constraint that
22
+ * one declaration applies everywhere. Otherwise the result is the distinct union in declaration order.
23
+ * Mirrors ConstraintEventSequences.Combine in the .NET client.
24
+ * @param declarations - The declarations to combine; undefined or empty means every event sequence.
25
+ * @returns The combined declaration, empty for every event sequence.
26
+ */
27
+ export function combineConstraintEventSequences(declarations) {
28
+ if (declarations.length === 0 || declarations.some(declaration => !declaration || declaration.length === 0))
29
+ return [];
30
+ const combined = [];
31
+ for (const declaration of declarations) {
32
+ for (const value of declaration) {
33
+ if (!combined.includes(value))
34
+ combined.push(value);
35
+ }
36
+ }
37
+ return combined;
38
+ }
39
+ //# sourceMappingURL=ConstraintEventSequences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConstraintEventSequences.js","sourceRoot":"","sources":["../../../events/constraints/ConstraintEventSequences.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAK1E;;;;GAIG;AACH,MAAM,UAAU,iCAAiC,CAAC,cAAkD;IAChG,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,aAAa,YAAY,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAC/F,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B,CAAC,YAA0D;IACtG,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACvH,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,WAAY,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Constraints.d.ts","sourceRoot":"","sources":["../../../events/constraints/Constraints.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAqB,iBAAiB,EAA0B,MAAM,wBAAwB,CAAC;AA2BtG,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,EAAE,YAAY,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAyGzI;AAED,oFAAoF;AACpF,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,SAAS,EAAE,mBAAmB,GAAG,mBAAmB,CAS9I;AAED,mFAAmF;AACnF,qBAAa,WAAY,YAAW,YAAY;IAUxC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAXrC,OAAO,CAAC,SAAS,CAAwC;IAEzD;;;;;OAKG;IACH,YACqB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,mBAAmB,EAChC,gBAAgB,EAAE,wBAAwB,EAC3D;IAEJ,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAE9B;IAED,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAsE9B;IAED,kBAAkB;IAClB,MAAM,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAEhC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,EAAE,mBAAmB,GAAG,mBAAmB,CAErE;CACJ"}
1
+ {"version":3,"file":"Constraints.d.ts","sourceRoot":"","sources":["../../../events/constraints/Constraints.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAqB,iBAAiB,EAA0B,MAAM,wBAAwB,CAAC;AAmCtG,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,EAAE,YAAY,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CA+GzI;AAED,oFAAoF;AACpF,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,SAAS,EAAE,mBAAmB,GAAG,mBAAmB,CAS9I;AAED,mFAAmF;AACnF,qBAAa,WAAY,YAAW,YAAY;IAUxC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAXrC,OAAO,CAAC,SAAS,CAAwC;IAEzD;;;;;OAKG;IACH,YACqB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,mBAAmB,EAChC,gBAAgB,EAAE,wBAAwB,EAC3D;IAEJ,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAE9B;IAED,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CA2E9B;IAED,kBAAkB;IAClB,MAAM,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAEhC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,EAAE,mBAAmB,GAAG,mBAAmB,CAErE;CACJ"}
@@ -8,10 +8,19 @@ import { getUniqueEventMetadata, getUniquePropertyMetadata } from './unique.js';
8
8
  import { getRemovedConstraintNames } from './removeConstraint.js';
9
9
  import { TypeIntrospector } from '../../types/TypeIntrospector.js';
10
10
  import { getEventTypeFor } from '../eventTypeDecorator.js';
11
+ import { combineConstraintEventSequences } from './ConstraintEventSequences.js';
11
12
  /** Resolves the name registered with the Chronicle Kernel. */
12
13
  function wireNameOf(capture) {
13
14
  return capture.uniqueEventType?.name ?? capture.name;
14
15
  }
16
+ /** Combine another declaration's event sequences into a capture; an empty result means every event sequence. */
17
+ function combineEventSequencesInto(capture, declared) {
18
+ const combined = combineConstraintEventSequences([capture.eventSequences, declared]);
19
+ if (combined.length > 0)
20
+ capture.eventSequences = combined;
21
+ else
22
+ delete capture.eventSequences;
23
+ }
15
24
  const decoratorScope = {
16
25
  perEventSourceType: false,
17
26
  perEventStreamType: false,
@@ -57,6 +66,7 @@ export function compileConstraints(provider) {
57
66
  if (!removedWith.includes(id))
58
67
  removedWith.push(id);
59
68
  }
69
+ combineEventSequencesInto(existing, capture.eventSequences);
60
70
  }
61
71
  else if (existing) {
62
72
  throw new Error(`Duplicate constraint name '${name}'.`);
@@ -81,6 +91,7 @@ export function compileConstraints(provider) {
81
91
  if (!capture) {
82
92
  const builder = new ConstraintBuilder(name);
83
93
  builder.uniqueFor(eventType, eventMetadata.message, name);
94
+ builder.forEventSequences(...(eventMetadata.eventSequences ?? []));
84
95
  capture = builder.capture;
85
96
  captures.set(name, capture);
86
97
  }
@@ -89,6 +100,7 @@ export function compileConstraints(provider) {
89
100
  }
90
101
  else {
91
102
  assertMatchingScope(name, capture.scope, decoratorScope);
103
+ combineEventSequencesInto(capture, eventMetadata.eventSequences);
92
104
  if (eventMetadata.message && !capture.uniqueEventType.message)
93
105
  capture.uniqueEventType.message = eventMetadata.message;
94
106
  capture.uniqueEventType.eventTypeIds ??= [capture.uniqueEventType.eventTypeId];
@@ -106,9 +118,13 @@ export function compileConstraints(provider) {
106
118
  if (!capture) {
107
119
  const builder = new ConstraintBuilder(name);
108
120
  builder.unique(() => { });
121
+ builder.forEventSequences(...(metadata.eventSequences ?? []));
109
122
  capture = builder.capture;
110
123
  captures.set(name, capture);
111
124
  }
125
+ else {
126
+ combineEventSequencesInto(capture, metadata.eventSequences);
127
+ }
112
128
  if (!capture.uniqueConstraint)
113
129
  throw new Error(`Constraint '${name}' is not a unique property constraint.`);
114
130
  assertMatchingScope(name, capture.scope, decoratorScope);
@@ -189,6 +205,8 @@ export class Constraints {
189
205
  EventStreamType: capture.scope.perEventStreamType ? '*' : '',
190
206
  EventStreamId: capture.scope.perEventStreamId ? '*' : ''
191
207
  };
208
+ // Empty means every event sequence, which is what the Kernel assumes when the field is omitted.
209
+ const eventSequences = [...new Set(capture.eventSequences ?? [])];
192
210
  if (capture.uniqueConstraint) {
193
211
  const uc = capture.uniqueConstraint;
194
212
  const removalEventTypeIds = uc.removedWithEventTypeIds ?? [];
@@ -210,7 +228,8 @@ export class Constraints {
210
228
  },
211
229
  Value1: undefined
212
230
  },
213
- Scope: scope
231
+ Scope: scope,
232
+ EventSequences: eventSequences
214
233
  };
215
234
  }
216
235
  if (capture.uniqueEventType) {
@@ -225,7 +244,8 @@ export class Constraints {
225
244
  EventTypeIds: uet.eventTypeIds ?? [uet.eventTypeId]
226
245
  }
227
246
  },
228
- Scope: scope
247
+ Scope: scope,
248
+ EventSequences: eventSequences
229
249
  };
230
250
  }
231
251
  return {
@@ -233,7 +253,8 @@ export class Constraints {
233
253
  Type: ConstraintType.Unknown,
234
254
  RemovedWith: [],
235
255
  Definition: undefined,
236
- Scope: scope
256
+ Scope: scope,
257
+ EventSequences: eventSequences
237
258
  };
238
259
  });
239
260
  if (constraints.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"Constraints.js","sourceRoot":"","sources":["../../../events/constraints/Constraints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Constraints.js","sourceRoot":"","sources":["../../../events/constraints/Constraints.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { ConstraintEventSequence } from './ConstraintEventSequences.js';
1
2
  import { IUniqueConstraintBuilder } from './IUniqueConstraintBuilder.js';
2
3
  /**
3
4
  * Defines the builder for building constraints.
@@ -19,6 +20,23 @@ export interface IConstraintBuilder {
19
20
  * @returns This builder for fluent chaining.
20
21
  */
21
22
  perEventStreamId(): IConstraintBuilder;
23
+ /**
24
+ * Applies the constraints defined on this builder only to specific event sequences.
25
+ * By default a constraint applies to every event sequence its event types are appended to, and each
26
+ * sequence keeps its own index. The Kernel neither validates nor indexes a constraint for a sequence it does
27
+ * not apply to, so a fact forwarded to another sequence (such as the outbox) does not claim a value there.
28
+ * It applies to every constraint on this builder wherever in the chain it is called; calling it again adds
29
+ * to the event sequences already declared.
30
+ * @param eventSequenceIds - The event sequences the constraints apply to.
31
+ * @returns This builder for fluent chaining.
32
+ */
33
+ forEventSequences(...eventSequenceIds: ConstraintEventSequence[]): IConstraintBuilder;
34
+ /**
35
+ * Applies the constraints defined on this builder only to the event log.
36
+ * Shorthand for {@link IConstraintBuilder.forEventSequences} with `EventSequenceId.eventLog`.
37
+ * @returns This builder for fluent chaining.
38
+ */
39
+ forEventLog(): IConstraintBuilder;
22
40
  /**
23
41
  * Starts building a unique constraint using a fluent builder callback.
24
42
  * @param callback - Callback that configures the unique constraint via {@link IUniqueConstraintBuilder}.
@@ -1 +1 @@
1
- {"version":3,"file":"IConstraintBuilder.d.ts","sourceRoot":"","sources":["../../../events/constraints/IConstraintBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;;OAGG;IACH,kBAAkB,IAAI,kBAAkB,CAAC;IAEzC;;;OAGG;IACH,kBAAkB,IAAI,kBAAkB,CAAC;IAEzC;;;OAGG;IACH,gBAAgB,IAAI,kBAAkB,CAAC;IAEvC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,GAAG,kBAAkB,CAAC;IAElF;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC;CACvF"}
1
+ {"version":3,"file":"IConstraintBuilder.d.ts","sourceRoot":"","sources":["../../../events/constraints/IConstraintBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;;OAGG;IACH,kBAAkB,IAAI,kBAAkB,CAAC;IAEzC;;;OAGG;IACH,kBAAkB,IAAI,kBAAkB,CAAC;IAEzC;;;OAGG;IACH,gBAAgB,IAAI,kBAAkB,CAAC;IAEvC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,GAAG,gBAAgB,EAAE,uBAAuB,EAAE,GAAG,kBAAkB,CAAC;IAEtF;;;;OAIG;IACH,WAAW,IAAI,kBAAkB,CAAC;IAElC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,GAAG,kBAAkB,CAAC;IAElF;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC;CACvF"}
@@ -0,0 +1,15 @@
1
+ import type { ConstraintEventSequence } from './ConstraintEventSequences.js';
2
+ /** Options for the {@link unique} decorator. Mirrors the .NET UniqueAttribute. */
3
+ export interface UniqueOptions {
4
+ /** Optional shared constraint name; defaults to the class or property name. */
5
+ name?: string;
6
+ /** Optional fixed violation message. */
7
+ message?: string;
8
+ /**
9
+ * The event sequences the constraint applies to. Empty or omitted means every event sequence.
10
+ * When several declarations share a constraint name, their event sequences are combined, and a
11
+ * declaration naming none keeps the constraint applying to every event sequence.
12
+ */
13
+ eventSequences?: ConstraintEventSequence[];
14
+ }
15
+ //# sourceMappingURL=UniqueOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UniqueOptions.d.ts","sourceRoot":"","sources":["../../../events/constraints/UniqueOptions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAE7E,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC1B,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,cAAc,CAAC,EAAE,uBAAuB,EAAE,CAAC;CAC9C"}
@@ -0,0 +1,4 @@
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
+ export {};
4
+ //# sourceMappingURL=UniqueOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UniqueOptions.js","sourceRoot":"","sources":["../../../events/constraints/UniqueOptions.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
@@ -0,0 +1,9 @@
1
+ import type { Constraint } from '@cratis/chronicle.contracts';
2
+ /**
3
+ * Registers the given constraint classes and decorated event types and returns the registered wire definitions by name.
4
+ * @param constraints - The constraint classes.
5
+ * @param eventTypes - The event types whose decorators contribute constraints.
6
+ * @returns The registered constraints keyed by name.
7
+ */
8
+ export declare function registeredConstraints(constraints: Function[], eventTypes?: Function[]): Promise<Map<string, Constraint>>;
9
+ //# sourceMappingURL=registered_constraints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registered_constraints.d.ts","sourceRoot":"","sources":["../../../../../../events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAA8B,MAAM,6BAA6B,CAAC;AAK1F;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE,UAAU,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAUlI"}
@@ -0,0 +1,22 @@
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 { vi } from 'vitest';
4
+ import { Constraints } from '../../../Constraints.js';
5
+ /**
6
+ * Registers the given constraint classes and decorated event types and returns the registered wire definitions by name.
7
+ * @param constraints - The constraint classes.
8
+ * @param eventTypes - The event types whose decorators contribute constraints.
9
+ * @returns The registered constraints keyed by name.
10
+ */
11
+ export async function registeredConstraints(constraints, eventTypes = []) {
12
+ const register = vi.fn().mockResolvedValue({});
13
+ const connection = { constraints: { register } };
14
+ const artifacts = {
15
+ eventTypes, readModels: [], reactors: [], reducers: [], seeders: [], constraints,
16
+ projections: [], webhooks: [], eventTypeMigrations: [], globalForHandlers: []
17
+ };
18
+ await new Constraints('store', connection, artifacts).register();
19
+ const request = register.mock.calls[0][0];
20
+ return new Map(request.Constraints.map(registered => [registered.Name, registered]));
21
+ }
22
+ //# sourceMappingURL=registered_constraints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registered_constraints.js","sourceRoot":"","sources":["../../../../../../events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAI5B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,WAAuB,EAAE,UAAU,GAAe,EAAE;IAC5F,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAoC,CAAC;IACnF,MAAM,SAAS,GAAG;QACd,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW;QAChF,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE;KACzC,CAAC;IACzC,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAA+B,CAAC;IACxE,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AACzF,CAAC"}
@@ -4,6 +4,8 @@ export type { IConstraintBuilder } from './IConstraintBuilder.js';
4
4
  export type { IUniqueConstraintBuilder } from './IUniqueConstraintBuilder.js';
5
5
  export { constraint, getConstraintMetadata, isConstraint } from './constraint.js';
6
6
  export { unique } from './unique.js';
7
+ export type { UniqueOptions } from './UniqueOptions.js';
8
+ export type { ConstraintEventSequence } from './ConstraintEventSequences.js';
7
9
  export { removeConstraint } from './removeConstraint.js';
8
10
  export type { ConstraintMetadata } from './constraint.js';
9
11
  export type { IConstraints } from './IConstraints.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../events/constraints/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,YAAY,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChH,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../events/constraints/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,YAAY,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChH,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../events/constraints/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../events/constraints/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1,8 +1,11 @@
1
1
  import 'reflect-metadata';
2
2
  import { ChronicleClassOrPropertyDecorator } from '../../types/propertyDecoratorMetadata.js';
3
+ import type { UniqueOptions } from './UniqueOptions.js';
3
4
  interface UniqueMetadata {
4
5
  name?: string;
5
6
  message?: string;
7
+ /** Normalized event sequence identifiers; omitted means every event sequence. */
8
+ eventSequences?: string[];
6
9
  }
7
10
  /**
8
11
  * Marks an event class as unique per event source, or an event property as unique across event sources.
@@ -13,6 +16,13 @@ interface UniqueMetadata {
13
16
  * @returns A class or public instance field decorator.
14
17
  */
15
18
  export declare function unique(name?: string, message?: string): ChronicleClassOrPropertyDecorator;
19
+ /**
20
+ * Marks an event class as unique per event source, or an event property as unique across event sources,
21
+ * optionally applying the constraint only to selected event sequences.
22
+ * @param options - The constraint name, message and event sequences.
23
+ * @returns A class or public instance field decorator.
24
+ */
25
+ export declare function unique(options: UniqueOptions): ChronicleClassOrPropertyDecorator;
16
26
  /** Gets the unique constraint declared on an event class, if present. */
17
27
  export declare function getUniqueEventMetadata(type: Function): UniqueMetadata | undefined;
18
28
  /** Gets the unique constraint declared on an event property, if present. */
@@ -1 +1 @@
1
- {"version":3,"file":"unique.d.ts","sourceRoot":"","sources":["../../../events/constraints/unique.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iCAAiC,EAAwE,MAAM,0CAA0C,CAAC;AAMnK,UAAU,cAAc;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,iCAAiC,CAWzF;AAED,yEAAyE;AACzE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,GAAG,SAAS,CAEjF;AAED,4EAA4E;AAC5E,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEtG"}
1
+ {"version":3,"file":"unique.d.ts","sourceRoot":"","sources":["../../../events/constraints/unique.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iCAAiC,EAAwE,MAAM,0CAA0C,CAAC;AAGnK,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKxD,UAAU,cAAc;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,iCAAiC,CAAC;AAC3F;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,iCAAiC,CAAC;AAsBlF,yEAAyE;AACzE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,GAAG,SAAS,CAEjF;AAED,4EAA4E;AAC5E,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEtG"}
@@ -3,19 +3,20 @@
3
3
  import 'reflect-metadata';
4
4
  import { decorateClassOrProperty, getPropertyMetadata, getTypeOrFieldMetadata } from '../../types/propertyDecoratorMetadata.js';
5
5
  import { TypeIntrospector } from '../../types/TypeIntrospector.js';
6
+ import { normalizeConstraintEventSequences } from './ConstraintEventSequences.js';
6
7
  const CLASS_KEY = 'chronicle:constraint:unique:class';
7
8
  const PROPERTY_KEY = 'chronicle:constraint:unique:property';
8
- /**
9
- * Marks an event class as unique per event source, or an event property as unique across event sources.
10
- * The optional name defaults to the class or property name. Like the .NET attribute, this decorator
11
- * does not offer ignore-casing; use a fluent constraint for case-insensitive uniqueness.
12
- * @param name - Optional shared constraint name.
13
- * @param message - Optional fixed violation message.
14
- * @returns A class or public instance field decorator.
15
- */
16
- export function unique(name, message) {
9
+ export function unique(nameOrOptions, message) {
10
+ const options = typeof nameOrOptions === 'object' && nameOrOptions !== null
11
+ ? nameOrOptions
12
+ : { name: nameOrOptions, message };
13
+ const eventSequences = normalizeConstraintEventSequences(options.eventSequences ?? []);
14
+ const metadata = {
15
+ name: options.name,
16
+ message: options.message,
17
+ ...(eventSequences.length > 0 ? { eventSequences } : {})
18
+ };
17
19
  return decorateClassOrProperty((target, property) => {
18
- const metadata = { name, message };
19
20
  if (property !== undefined) {
20
21
  const key = property.toString();
21
22
  TypeIntrospector.trackProperty(target.constructor, key);
@@ -1 +1 @@
1
- {"version":3,"file":"unique.js","sourceRoot":"","sources":["../../../events/constraints/unique.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAqC,uBAAuB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACnK,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,MAAM,SAAS,GAAG,mCAAmC,CAAC;AACtD,MAAM,YAAY,GAAG,sCAAsC,CAAC;AAO5D;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CAAC,IAAa,EAAE,OAAgB;IAClD,OAAO,uBAAuB,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;QAChD,MAAM,QAAQ,GAAmB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACnD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAChC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YACvF,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,sBAAsB,CAAC,IAAc;IACjD,OAAO,sBAAsB,CAAiB,SAAS,EAAE,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,yBAAyB,CAAC,IAAc,EAAE,QAAgB;IACtE,OAAO,mBAAmB,CAAiB,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACvF,CAAC"}
1
+ {"version":3,"file":"unique.js","sourceRoot":"","sources":["../../../events/constraints/unique.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAqC,uBAAuB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACnK,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AAGlF,MAAM,SAAS,GAAG,mCAAmC,CAAC;AACtD,MAAM,YAAY,GAAG,sCAAsC,CAAC;AAyB5D,MAAM,UAAU,MAAM,CAAC,aAAsC,EAAE,OAAgB;IAC3E,MAAM,OAAO,GAAkB,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,IAAI;QACtF,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;IACvC,MAAM,cAAc,GAAG,iCAAiC,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAmB;QAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,CAAC;IACF,OAAO,uBAAuB,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;QAChD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAChC,gBAAgB,CAAC,aAAa,CAAE,MAAoC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YACvF,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,sBAAsB,CAAC,IAAc;IACjD,OAAO,sBAAsB,CAAiB,SAAS,EAAE,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,yBAAyB,CAAC,IAAc,EAAE,QAAgB;IACtE,OAAO,mBAAmB,CAAiB,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACvF,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Constructor } from '@cratis/fundamentals';
2
+ import { ReducerEventDispatcher } from './ReducerEventDispatcher.js';
3
+ /**
4
+ * Identifies a single reducer observation: the reducer, where it observes and how its events are dispatched.
5
+ */
6
+ export interface ReducerObservation {
7
+ /** The reducer identifier. */
8
+ readonly id: string;
9
+ /** The reducer type. */
10
+ readonly reducerType: Constructor;
11
+ /** The event sequence the reducer observes. */
12
+ readonly eventSequenceId: string;
13
+ /** The identifier of the read model the reducer produces. */
14
+ readonly readModelName: string;
15
+ /** The dispatcher routing events to the reducer's handlers. */
16
+ readonly dispatcher: ReducerEventDispatcher;
17
+ }
18
+ //# sourceMappingURL=ReducerObservation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReducerObservation.d.ts","sourceRoot":"","sources":["../../reducers/ReducerObservation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,wBAAwB;IACxB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC,+CAA+C;IAC/C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC,6DAA6D;IAC7D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;CAC/C"}
@@ -0,0 +1,4 @@
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
+ export {};
4
+ //# sourceMappingURL=ReducerObservation.js.map