@cratis/chronicle 6.50.0 → 6.51.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.
- package/dist/eventSequences/ITransactionalEventSequence.d.ts +2 -2
- package/dist/events/constraints/ConstraintBuilder.d.ts +7 -0
- package/dist/events/constraints/ConstraintBuilder.d.ts.map +1 -1
- package/dist/events/constraints/ConstraintBuilder.js +13 -0
- package/dist/events/constraints/ConstraintBuilder.js.map +1 -1
- package/dist/events/constraints/ConstraintEventSequences.d.ts +19 -0
- package/dist/events/constraints/ConstraintEventSequences.d.ts.map +1 -0
- package/dist/events/constraints/ConstraintEventSequences.js +39 -0
- package/dist/events/constraints/ConstraintEventSequences.js.map +1 -0
- package/dist/events/constraints/Constraints.d.ts.map +1 -1
- package/dist/events/constraints/Constraints.js +24 -3
- package/dist/events/constraints/Constraints.js.map +1 -1
- package/dist/events/constraints/IConstraintBuilder.d.ts +18 -0
- package/dist/events/constraints/IConstraintBuilder.d.ts.map +1 -1
- package/dist/events/constraints/UniqueOptions.d.ts +15 -0
- package/dist/events/constraints/UniqueOptions.d.ts.map +1 -0
- package/dist/events/constraints/UniqueOptions.js +4 -0
- package/dist/events/constraints/UniqueOptions.js.map +1 -0
- package/dist/events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.d.ts +9 -0
- package/dist/events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.d.ts.map +1 -0
- package/dist/events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.js +22 -0
- package/dist/events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.js.map +1 -0
- package/dist/events/constraints/index.d.ts +2 -0
- package/dist/events/constraints/index.d.ts.map +1 -1
- package/dist/events/constraints/index.js.map +1 -1
- package/dist/events/constraints/unique.d.ts +10 -0
- package/dist/events/constraints/unique.d.ts.map +1 -1
- package/dist/events/constraints/unique.js +11 -10
- package/dist/events/constraints/unique.js.map +1 -1
- package/dist/testing/EventScenario.d.ts.map +1 -1
- package/dist/testing/EventScenario.js +8 -3
- package/dist/testing/EventScenario.js.map +1 -1
- package/dist/testing/InProcessConstraints.d.ts +4 -1
- package/dist/testing/InProcessConstraints.d.ts.map +1 -1
- package/dist/testing/InProcessConstraints.js +5 -1
- package/dist/testing/InProcessConstraints.js.map +1 -1
- package/dist/testing/InProcessEventSequence.d.ts.map +1 -1
- package/dist/testing/InProcessEventSequence.js +2 -1
- package/dist/testing/InProcessEventSequence.js.map +1 -1
- package/dist/transactions/ConflictingConcurrencyScopesInUnitOfWork.d.ts +14 -0
- package/dist/transactions/ConflictingConcurrencyScopesInUnitOfWork.d.ts.map +1 -0
- package/dist/transactions/ConflictingConcurrencyScopesInUnitOfWork.js +20 -0
- package/dist/transactions/ConflictingConcurrencyScopesInUnitOfWork.js.map +1 -0
- package/dist/transactions/IUnitOfWork.d.ts +2 -1
- package/dist/transactions/IUnitOfWork.d.ts.map +1 -1
- package/dist/transactions/TransactionalAppendOptions.d.ts +23 -2
- package/dist/transactions/TransactionalAppendOptions.d.ts.map +1 -1
- package/dist/transactions/UnitOfWork.d.ts +1 -0
- package/dist/transactions/UnitOfWork.d.ts.map +1 -1
- package/dist/transactions/UnitOfWork.js +28 -13
- package/dist/transactions/UnitOfWork.js.map +1 -1
- package/dist/transactions/concurrencyScopesAreEqual.d.ts +9 -0
- package/dist/transactions/concurrencyScopesAreEqual.d.ts.map +1 -0
- package/dist/transactions/concurrencyScopesAreEqual.js +19 -0
- package/dist/transactions/concurrencyScopesAreEqual.js.map +1 -0
- package/dist/transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.d.ts +26 -0
- package/dist/transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.d.ts.map +1 -0
- package/dist/transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.js +31 -0
- package/dist/transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.js.map +1 -0
- package/dist/transactions/index.d.ts +1 -0
- package/dist/transactions/index.d.ts.map +1 -1
- package/dist/transactions/index.js +1 -0
- package/dist/transactions/index.js.map +1 -1
- package/dist/transactions/toEventForEventSourceId.d.ts +13 -0
- package/dist/transactions/toEventForEventSourceId.d.ts.map +1 -0
- package/dist/transactions/toEventForEventSourceId.js +29 -0
- package/dist/transactions/toEventForEventSourceId.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/eventSequences/ITransactionalEventSequence.ts +2 -2
- package/eventSequences/for_TransactionalEventSequence/when_appending_many_with_options.spec.ts +29 -0
- package/events/constraints/ConstraintBuilder.ts +16 -0
- package/events/constraints/ConstraintEventSequences.ts +41 -0
- package/events/constraints/Constraints.ts +22 -3
- package/events/constraints/IConstraintBuilder.ts +20 -0
- package/events/constraints/UniqueOptions.ts +20 -0
- package/events/constraints/for_Constraints/against_a_kernel/when_appending_to_event_sequences_a_constraint_is_scoped_to.integration.spec.ts +118 -0
- package/events/constraints/for_Constraints/when_scoping_to_event_sequences/given/registered_constraints.ts +26 -0
- package/events/constraints/for_Constraints/when_scoping_to_event_sequences/with_fluent_builder.spec.ts +40 -0
- package/events/constraints/for_Constraints/when_scoping_to_event_sequences/with_legacy_decorators.legacy.spec.ts +47 -0
- package/events/constraints/for_Constraints/when_scoping_to_event_sequences/with_merged_declarations.spec.ts +36 -0
- package/events/constraints/for_Constraints/when_scoping_to_event_sequences/with_standard_decorators.standard.spec.ts +46 -0
- package/events/constraints/index.ts +2 -0
- package/events/constraints/unique.ts +22 -2
- package/package.json +2 -2
- package/testing/EventScenario.fixtures.spec.ts +1 -1
- package/testing/EventScenario.ts +10 -4
- package/testing/InProcessConstraints.ts +5 -1
- package/testing/InProcessEventSequence.ts +2 -1
- package/testing/for_EventScenario/when_appending_event_sequence_constraints/event_sequence_scenario_behaviors.fixture.ts +101 -0
- package/testing/for_EventScenario/when_appending_event_sequence_constraints/other_sequence_extended_key.legacy.spec.ts +28 -0
- package/testing/for_EventScenario/when_appending_event_sequence_constraints/other_sequence_extended_key.standard.spec.ts +27 -0
- package/testing/for_EventScenario/when_appending_event_sequence_constraints/other_sequence_extended_key_behaviors.fixture.ts +40 -0
- package/testing/for_EventScenario/when_appending_event_sequence_constraints/with_legacy_decorators.legacy.spec.ts +55 -0
- package/testing/for_EventScenario/when_appending_event_sequence_constraints/with_standard_decorators.standard.spec.ts +54 -0
- package/transactions/ConflictingConcurrencyScopesInUnitOfWork.ts +19 -0
- package/transactions/IUnitOfWork.ts +2 -1
- package/transactions/TransactionalAppendOptions.ts +30 -2
- package/transactions/UnitOfWork.ts +29 -13
- package/transactions/concurrencyScopesAreEqual.ts +23 -0
- package/transactions/for_UnitOfWork/against_a_kernel/when_committing_with_append_metadata.integration.spec.ts +70 -0
- package/transactions/for_UnitOfWork/given/a_unit_of_work_with_a_recording_store.ts +54 -0
- package/transactions/for_UnitOfWork/when_adding_events_with_concurrency_scopes/and_the_event_type_filters_are_equivalent.spec.ts +32 -0
- package/transactions/for_UnitOfWork/when_adding_events_with_concurrency_scopes/and_the_event_type_filters_differ.spec.ts +40 -0
- package/transactions/for_UnitOfWork/when_adding_events_with_concurrency_scopes/and_the_scopes_are_equal_or_omitted.spec.ts +29 -0
- package/transactions/for_UnitOfWork/when_adding_events_with_concurrency_scopes/and_the_scopes_differ_for_one_event_source.spec.ts +29 -0
- package/transactions/for_UnitOfWork/when_committing_events_with_append_metadata/and_a_later_event_sequence_fails.spec.ts +30 -0
- package/transactions/for_UnitOfWork/when_committing_events_with_append_metadata/and_events_span_event_sequences.spec.ts +34 -0
- package/transactions/for_UnitOfWork/when_committing_events_with_append_metadata/and_options_differ_per_event.spec.ts +45 -0
- package/transactions/for_UnitOfWork/when_committing_events_with_append_metadata/and_the_append_is_rejected.spec.ts +26 -0
- package/transactions/for_UnitOfWork/when_rolling_back_events_with_append_metadata.spec.ts +24 -0
- package/transactions/index.ts +1 -0
- package/transactions/toEventForEventSourceId.ts +32 -0
- package/vitest.integration.config.ts +2 -0
- package/webhooks/for_Webhooks/against_a_kernel/given/ReceivedWebhookRequest.fixture.ts +21 -0
- package/webhooks/for_Webhooks/against_a_kernel/given/WebhookReceiver.fixture.ts +99 -0
- package/webhooks/for_Webhooks/against_a_kernel/when_delivering_events_to_a_failing_webhook.integration.spec.ts +101 -0
- package/webhooks/for_Webhooks/against_a_kernel/when_delivering_events_to_a_webhook.integration.spec.ts +130 -0
- package/webhooks/for_Webhooks/against_a_kernel/when_registering_a_webhook_that_is_not_replayable_and_not_active.integration.spec.ts +101 -0
- package/webhooks/for_Webhooks/when_registering_a_webhook_that_is_not_replayable_and_not_active.spec.ts +43 -0
|
@@ -10,14 +10,14 @@ export interface ITransactionalEventSequence {
|
|
|
10
10
|
* Adds a single event to the current unit of work.
|
|
11
11
|
* @param eventSourceId - The identifier of the event source.
|
|
12
12
|
* @param event - The event to append.
|
|
13
|
-
* @param options - Optional
|
|
13
|
+
* @param options - Optional append metadata (routing, subject, occurrence time, tags, named tags, concurrency scope) kept with the event until commit.
|
|
14
14
|
*/
|
|
15
15
|
append(eventSourceId: string, event: object, options?: TransactionalAppendOptions): Promise<void>;
|
|
16
16
|
/**
|
|
17
17
|
* Adds multiple events to the current unit of work.
|
|
18
18
|
* @param eventSourceId - The identifier of the event source.
|
|
19
19
|
* @param events - The events to append.
|
|
20
|
-
* @param options - Optional
|
|
20
|
+
* @param options - Optional append metadata (routing, subject, occurrence time, tags, named tags, concurrency scope) applied to every event.
|
|
21
21
|
*/
|
|
22
22
|
appendMany(eventSourceId: string, events: object[], options?: TransactionalAppendOptions): Promise<void>;
|
|
23
23
|
}
|
|
@@ -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":"
|
|
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;
|
|
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;
|
|
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 @@
|
|
|
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;
|
|
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;
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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;
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventScenario.d.ts","sourceRoot":"","sources":["../../testing/EventScenario.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAQhE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAUzE,sFAAsF;AACtF,qBAAa,aAAa;IACtB,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IAExC,YAAY,OAAO,GAAE,oBAAyB,
|
|
1
|
+
{"version":3,"file":"EventScenario.d.ts","sourceRoot":"","sources":["../../testing/EventScenario.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAQhE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAUzE,sFAAsF;AACtF,qBAAa,aAAa;IACtB,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IAExC,YAAY,OAAO,GAAE,oBAAyB,EA2H7C;IAED,qDAAqD;IACrD,IAAI,QAAQ,IAAI,SAAS,CAKxB;IACK,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAE1F;IACD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/F,UAAU,CAAC,MAAM,EAAE,qBAAqB,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAO9F,IAAI,OAAO,IAAI,SAAS,YAAY,EAAE,CAAmE;IACzG,IAAI,cAAc,IAAI,SAAS,aAAa,EAAE,CAA0E;IAExH,+DAA+D;IAC/D,IAAI,IAAI,IAAI;QAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;QAAC,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAA;KAAE,CAE3G;CACJ"}
|
|
@@ -71,8 +71,13 @@ export class EventScenario {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
// The scenario appends to the event log only. A definition scoped to other event sequences is neither
|
|
75
|
+
// validated nor indexed there by the kernel (constraints-event-sequences.json), so it takes no part.
|
|
76
|
+
const eventLog = EventSequenceId.eventLog.value;
|
|
77
|
+
const applicable = new Map([...definitions].filter(([, capture]) => !capture.eventSequences?.length || capture.eventSequences.includes(eventLog)));
|
|
78
|
+
const inapplicable = new Set([...definitions.keys()].filter(name => !applicable.has(name)));
|
|
79
|
+
constraints = new InProcessConstraints(applicable, new Map(eventTypes.map(type => [getEventTypeFor(type).id.value, getEventTypeMetadata(type).schema])), inapplicable);
|
|
80
|
+
for (const [name, capture] of applicable) {
|
|
76
81
|
const ids = capture.uniqueConstraint?.eventDefinitions.map(entry => entry.eventTypeId) ??
|
|
77
82
|
capture.uniqueEventType?.eventTypeIds ?? [capture.uniqueEventType?.eventTypeId];
|
|
78
83
|
const removedWith = [...(capture.uniqueConstraint?.removedWithEventTypeIds ?? []),
|
|
@@ -103,7 +108,7 @@ export class EventScenario {
|
|
|
103
108
|
throw new UnsupportedEventSequenceOperation('artifacts.constraints', name, `Unique keys with schema ${schema?.type ?? 'missing'}/${schema?.format ?? 'unformatted'} are not fixture-backed; date, object and other numeric formats require a kernel-backed test.`);
|
|
104
109
|
}
|
|
105
110
|
const extendedKey = schemas.some(schema => schema?.type === 'number' || schema?.format === 'guid');
|
|
106
|
-
if (extendedKey && (
|
|
111
|
+
if (extendedKey && (applicable.size !== 1 || capture.uniqueConstraint.eventDefinitions.length !== 1 ||
|
|
107
112
|
removedWith.some(id => id !== undefined))) {
|
|
108
113
|
throw new UnsupportedEventSequenceOperation('artifacts.constraints', name, 'Guid and numeric keys require one isolated definition covering one event type without removers; shared definitions and removal combinations are not fixture-backed.');
|
|
109
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventScenario.js","sourceRoot":"","sources":["../../testing/EventScenario.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAOhE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AACpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAE3F,SAAS,uBAAuB,CAAC,IAAc;IAC3C,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAC3F,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,yBAAyB,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC;AAC9H,CAAC;AAED,sFAAsF;AACtF,MAAM,OAAO,aAAa;IACb,aAAa,CAAiB;IAC9B,KAAK,CAA4B;IACjC,IAAI,CAA2B;IAExC,YAAY,OAAO,GAAyB,EAAE;QAC1C,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC;QAC5C,MAAM,mBAAmB,GAAG,iBAAiB,EAAE,WAAW,CAAC;QAC3D,MAAM,SAAS,GAAG,iBAAiB,IAAI,IAAI,8BAA8B,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAClG,MAAM,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,mBAAmB,EAAE,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YAC1E,MAAM,IAAI,iCAAiC,CAAC,uBAAuB,EAAE,0BAA0B,EAC3F,+GAA+G,CAAC,CAAC;QACzH,CAAC;QACD,MAAM,mBAAmB,GAAG,iBAAiB,IAAI,mBAAmB,KAAK,SAAS;YAC9E,CAAC,CAAC,IAAI,8BAA8B,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,MAAM,UAAU,GAAG,mBAAmB,IAAI,mBAAmB,EAAE,WAAW,IAAI,SAAS,CAAC,WAAW,CAAC;QACpG,IAAI,WAA6C,CAAC;QAClD,IAAI,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YACrC,KAAK,MAAM,IAAI,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;gBAClC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,iCAAiC,CAAC,uBAAuB,EAAE,IAAI,CAAC,IAAI,EAC5G,2DAA2D,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,CAAC;gBACD,mFAAmF;gBACnF,yFAAyF;gBACzF,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBACrG,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAuC,CAAC;gBACxE,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;oBACpC,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;oBAC1C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC1C,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;wBACxG,MAAM,IAAI,iCAAiC,CAAC,sBAAsB,EAAE,EAAE,EAClE,0FAA0F,CAAC,CAAC;oBACpG,CAAC;oBACD,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACnC,CAAC;gBACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC,CAAC;gBACnH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpF,MAAM,WAAW,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE;oBACnF,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;wBAC1F,OAAO,CAAC,eAAe,EAAE,YAAY,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;oBACpF,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,uBAAuB,IAAI,EAAE,CAAC;wBAC7E,OAAO,CAAC,gBAAgB,EAAE,sBAAsB;wBAChD,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,uBAAuB,IAAI,EAAE,CAAC,CAAC,CAAC;oBACjE,OAAO,CAAC,GAAG,WAAW,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACf,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;oBAC5B,KAAK,MAAM,IAAI,IAAI,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;wBACjD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;4BACzB,MAAM,IAAI,iCAAiC,CAAC,uBAAuB,EAAE,IAAI,EACrE,6DAA6D,CAAC,CAAC;wBACvE,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,WAAW,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"EventScenario.js","sourceRoot":"","sources":["../../testing/EventScenario.ts"],"names":[],"mappings":"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"}
|