@cratis/chronicle 3.0.0 → 3.1.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/EventStore.ts +17 -1
- package/IEventStore.ts +16 -0
- package/auditing/CausationType.ts +10 -0
- package/compliance/ComplianceContracts.ts +84 -0
- package/compliance/IPIIManager.ts +17 -0
- package/compliance/PIIManager.ts +31 -0
- package/compliance/index.ts +2 -0
- package/connection/ChronicleConnection.ts +7 -1
- package/connection/ChronicleServices.ts +2 -0
- package/connection/Guid.ts +18 -0
- package/dist/EventStore.d.ts +8 -0
- package/dist/EventStore.d.ts.map +1 -1
- package/dist/EventStore.js +13 -1
- package/dist/EventStore.js.map +1 -1
- package/dist/IEventStore.d.ts +12 -0
- package/dist/IEventStore.d.ts.map +1 -1
- package/dist/auditing/CausationType.d.ts +8 -0
- package/dist/auditing/CausationType.d.ts.map +1 -1
- package/dist/auditing/CausationType.js +8 -0
- package/dist/auditing/CausationType.js.map +1 -1
- package/dist/compliance/ComplianceContracts.d.ts +40 -0
- package/dist/compliance/ComplianceContracts.d.ts.map +1 -1
- package/dist/compliance/ComplianceContracts.js +71 -0
- package/dist/compliance/ComplianceContracts.js.map +1 -1
- package/dist/compliance/IPIIManager.d.ts +15 -0
- package/dist/compliance/IPIIManager.d.ts.map +1 -0
- package/dist/compliance/IPIIManager.js +4 -0
- package/dist/compliance/IPIIManager.js.map +1 -0
- package/dist/compliance/PIIManager.d.ts +20 -0
- package/dist/compliance/PIIManager.d.ts.map +1 -0
- package/dist/compliance/PIIManager.js +30 -0
- package/dist/compliance/PIIManager.js.map +1 -0
- package/dist/compliance/index.d.ts +2 -0
- package/dist/compliance/index.d.ts.map +1 -1
- package/dist/compliance/index.js +1 -0
- package/dist/compliance/index.js.map +1 -1
- package/dist/connection/ChronicleConnection.d.ts +1 -0
- package/dist/connection/ChronicleConnection.d.ts.map +1 -1
- package/dist/connection/ChronicleConnection.js +6 -1
- package/dist/connection/ChronicleConnection.js.map +1 -1
- package/dist/connection/ChronicleServices.d.ts +2 -0
- package/dist/connection/ChronicleServices.d.ts.map +1 -1
- package/dist/connection/Guid.d.ts +5 -0
- package/dist/connection/Guid.d.ts.map +1 -1
- package/dist/connection/Guid.js +15 -0
- package/dist/connection/Guid.js.map +1 -1
- package/dist/eventSequences/AppendOperationsBroadcaster.d.ts +16 -0
- package/dist/eventSequences/AppendOperationsBroadcaster.d.ts.map +1 -0
- package/dist/eventSequences/AppendOperationsBroadcaster.js +77 -0
- package/dist/eventSequences/AppendOperationsBroadcaster.js.map +1 -0
- package/dist/eventSequences/AppendOptions.d.ts +7 -0
- package/dist/eventSequences/AppendOptions.d.ts.map +1 -1
- package/dist/eventSequences/AppendResult.d.ts +14 -0
- package/dist/eventSequences/AppendResult.d.ts.map +1 -1
- package/dist/eventSequences/AppendedEventWithResult.d.ts +13 -0
- package/dist/eventSequences/AppendedEventWithResult.d.ts.map +1 -0
- package/dist/eventSequences/AppendedEventWithResult.js +4 -0
- package/dist/eventSequences/AppendedEventWithResult.js.map +1 -0
- package/dist/eventSequences/CompleteStreamError.d.ts +17 -0
- package/dist/eventSequences/CompleteStreamError.d.ts.map +1 -0
- package/dist/eventSequences/CompleteStreamError.js +20 -0
- package/dist/eventSequences/CompleteStreamError.js.map +1 -0
- package/dist/eventSequences/CompleteStreamResult.d.ts +14 -0
- package/dist/eventSequences/CompleteStreamResult.d.ts.map +1 -0
- package/dist/eventSequences/CompleteStreamResult.js +4 -0
- package/dist/eventSequences/CompleteStreamResult.js.map +1 -0
- package/dist/eventSequences/ConcurrencyViolation.d.ts +13 -0
- package/dist/eventSequences/ConcurrencyViolation.d.ts.map +1 -0
- package/dist/eventSequences/ConcurrencyViolation.js +4 -0
- package/dist/eventSequences/ConcurrencyViolation.js.map +1 -0
- package/dist/eventSequences/EventForEventSourceId.d.ts +8 -0
- package/dist/eventSequences/EventForEventSourceId.d.ts.map +1 -1
- package/dist/eventSequences/EventSequence.d.ts +35 -1
- package/dist/eventSequences/EventSequence.d.ts.map +1 -1
- package/dist/eventSequences/EventSequence.js +350 -19
- package/dist/eventSequences/EventSequence.js.map +1 -1
- package/dist/eventSequences/IEventSequence.d.ts +85 -1
- package/dist/eventSequences/IEventSequence.d.ts.map +1 -1
- package/dist/eventSequences/WaitForCompletionResult.d.ts +11 -0
- package/dist/eventSequences/WaitForCompletionResult.d.ts.map +1 -0
- package/dist/eventSequences/WaitForCompletionResult.js +4 -0
- package/dist/eventSequences/WaitForCompletionResult.js.map +1 -0
- package/dist/eventSequences/index.d.ts +5 -0
- package/dist/eventSequences/index.d.ts.map +1 -1
- package/dist/eventSequences/index.js +1 -0
- package/dist/eventSequences/index.js.map +1 -1
- package/dist/eventStoreSubscriptions/EventStoreSubscriptions.d.ts +3 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptions.d.ts.map +1 -1
- package/dist/eventStoreSubscriptions/EventStoreSubscriptions.js +9 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptions.js.map +1 -1
- package/dist/eventStoreSubscriptions/IEventStoreSubscriptions.d.ts +6 -0
- package/dist/eventStoreSubscriptions/IEventStoreSubscriptions.d.ts.map +1 -1
- package/dist/eventStoreSubscriptions/contracts.d.ts +18 -0
- package/dist/eventStoreSubscriptions/contracts.d.ts.map +1 -1
- package/dist/eventStoreSubscriptions/contracts.js +106 -0
- package/dist/eventStoreSubscriptions/contracts.js.map +1 -1
- package/dist/events/constraints/Constraints.js +1 -1
- package/dist/events/constraints/Constraints.js.map +1 -1
- package/dist/externalServices/ExternalServiceBuilder.d.ts +42 -0
- package/dist/externalServices/ExternalServiceBuilder.d.ts.map +1 -0
- package/dist/externalServices/ExternalServiceBuilder.js +110 -0
- package/dist/externalServices/ExternalServiceBuilder.js.map +1 -0
- package/dist/externalServices/ExternalServices.d.ts +19 -0
- package/dist/externalServices/ExternalServices.d.ts.map +1 -0
- package/dist/externalServices/ExternalServices.js +30 -0
- package/dist/externalServices/ExternalServices.js.map +1 -0
- package/dist/externalServices/ExternalServicesContracts.d.ts +137 -0
- package/dist/externalServices/ExternalServicesContracts.d.ts.map +1 -0
- package/dist/externalServices/ExternalServicesContracts.js +654 -0
- package/dist/externalServices/ExternalServicesContracts.js.map +1 -0
- package/dist/externalServices/IExternalServiceBuilder.d.ts +67 -0
- package/dist/externalServices/IExternalServiceBuilder.d.ts.map +1 -0
- package/dist/externalServices/IExternalServiceBuilder.js +4 -0
- package/dist/externalServices/IExternalServiceBuilder.js.map +1 -0
- package/dist/externalServices/IExternalServices.d.ts +13 -0
- package/dist/externalServices/IExternalServices.d.ts.map +1 -0
- package/dist/externalServices/IExternalServices.js +4 -0
- package/dist/externalServices/IExternalServices.js.map +1 -0
- package/dist/externalServices/index.d.ts +5 -0
- package/dist/externalServices/index.d.ts.map +1 -0
- package/dist/externalServices/index.js +5 -0
- package/dist/externalServices/index.js.map +1 -0
- package/dist/identities/IIdentityManager.d.ts +17 -0
- package/dist/identities/IIdentityManager.d.ts.map +1 -0
- package/dist/identities/IIdentityManager.js +4 -0
- package/dist/identities/IIdentityManager.js.map +1 -0
- package/dist/identities/IdentityManager.d.ts +20 -0
- package/dist/identities/IdentityManager.d.ts.map +1 -0
- package/dist/identities/IdentityManager.js +31 -0
- package/dist/identities/IdentityManager.js.map +1 -0
- package/dist/identities/index.d.ts +3 -0
- package/dist/identities/index.d.ts.map +1 -0
- package/dist/identities/index.js +4 -0
- package/dist/identities/index.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/observation/FailedPartition.d.ts +15 -0
- package/dist/observation/FailedPartition.d.ts.map +1 -0
- package/dist/observation/FailedPartition.js +4 -0
- package/dist/observation/FailedPartition.js.map +1 -0
- package/dist/observation/FailedPartitionAttempt.d.ts +15 -0
- package/dist/observation/FailedPartitionAttempt.d.ts.map +1 -0
- package/dist/observation/FailedPartitionAttempt.js +4 -0
- package/dist/observation/FailedPartitionAttempt.js.map +1 -0
- package/dist/observation/FailedPartitions.d.ts +24 -0
- package/dist/observation/FailedPartitions.d.ts.map +1 -0
- package/dist/observation/FailedPartitions.js +39 -0
- package/dist/observation/FailedPartitions.js.map +1 -0
- package/dist/observation/ICanBeNotifiedWhenPartitionReplayed.d.ts +19 -0
- package/dist/observation/ICanBeNotifiedWhenPartitionReplayed.d.ts.map +1 -0
- package/dist/observation/ICanBeNotifiedWhenPartitionReplayed.js +4 -0
- package/dist/observation/ICanBeNotifiedWhenPartitionReplayed.js.map +1 -0
- package/dist/observation/ICanBeNotifiedWhenReplay.d.ts +17 -0
- package/dist/observation/ICanBeNotifiedWhenReplay.d.ts.map +1 -0
- package/dist/observation/ICanBeNotifiedWhenReplay.js +4 -0
- package/dist/observation/ICanBeNotifiedWhenReplay.js.map +1 -0
- package/dist/observation/IFailedPartitions.d.ts +18 -0
- package/dist/observation/IFailedPartitions.d.ts.map +1 -0
- package/dist/observation/IFailedPartitions.js +4 -0
- package/dist/observation/IFailedPartitions.js.map +1 -0
- package/dist/observation/index.d.ts +6 -0
- package/dist/observation/index.d.ts.map +1 -1
- package/dist/observation/index.js +1 -0
- package/dist/observation/index.js.map +1 -1
- package/dist/observation/notifyReplayLifecycle.d.ts +13 -0
- package/dist/observation/notifyReplayLifecycle.d.ts.map +1 -0
- package/dist/observation/notifyReplayLifecycle.js +54 -0
- package/dist/observation/notifyReplayLifecycle.js.map +1 -0
- package/dist/observation/toClientFailedPartition.d.ts +9 -0
- package/dist/observation/toClientFailedPartition.d.ts.map +1 -0
- package/dist/observation/toClientFailedPartition.js +23 -0
- package/dist/observation/toClientFailedPartition.js.map +1 -0
- package/dist/projections/Projections.d.ts +0 -4
- package/dist/projections/Projections.d.ts.map +1 -1
- package/dist/projections/Projections.js +25 -103
- package/dist/projections/Projections.js.map +1 -1
- package/dist/projections/declarative/AddBuilder.d.ts +17 -0
- package/dist/projections/declarative/AddBuilder.d.ts.map +1 -0
- package/dist/projections/declarative/AddBuilder.js +28 -0
- package/dist/projections/declarative/AddBuilder.js.map +1 -0
- package/dist/projections/declarative/AddChildBuilder.d.ts +56 -0
- package/dist/projections/declarative/AddChildBuilder.d.ts.map +1 -0
- package/dist/projections/declarative/AddChildBuilder.js +72 -0
- package/dist/projections/declarative/AddChildBuilder.js.map +1 -0
- package/dist/projections/declarative/ChildrenBuilder.d.ts +28 -0
- package/dist/projections/declarative/ChildrenBuilder.d.ts.map +1 -0
- package/dist/projections/declarative/ChildrenBuilder.js +72 -0
- package/dist/projections/declarative/ChildrenBuilder.js.map +1 -0
- package/dist/projections/declarative/CompositeKeyBuilder.d.ts +16 -0
- package/dist/projections/declarative/CompositeKeyBuilder.d.ts.map +1 -0
- package/dist/projections/declarative/CompositeKeyBuilder.js +29 -0
- package/dist/projections/declarative/CompositeKeyBuilder.js.map +1 -0
- package/dist/projections/declarative/FromBuilder.d.ts +8 -6
- package/dist/projections/declarative/FromBuilder.d.ts.map +1 -1
- package/dist/projections/declarative/FromBuilder.js +44 -14
- package/dist/projections/declarative/FromBuilder.js.map +1 -1
- package/dist/projections/declarative/ICompositeKeyBuilder.d.ts +5 -0
- package/dist/projections/declarative/ICompositeKeyBuilder.d.ts.map +1 -1
- package/dist/projections/declarative/JoinBuilder.d.ts +7 -5
- package/dist/projections/declarative/JoinBuilder.d.ts.map +1 -1
- package/dist/projections/declarative/JoinBuilder.js +50 -16
- package/dist/projections/declarative/JoinBuilder.js.map +1 -1
- package/dist/projections/declarative/NestedBuilder.d.ts +24 -0
- package/dist/projections/declarative/NestedBuilder.d.ts.map +1 -0
- package/dist/projections/declarative/NestedBuilder.js +60 -0
- package/dist/projections/declarative/NestedBuilder.js.map +1 -0
- package/dist/projections/declarative/ProjectionBuilderCore.d.ts +127 -0
- package/dist/projections/declarative/ProjectionBuilderCore.d.ts.map +1 -0
- package/dist/projections/declarative/ProjectionBuilderCore.js +180 -0
- package/dist/projections/declarative/ProjectionBuilderCore.js.map +1 -0
- package/dist/projections/declarative/ProjectionBuilderFor.d.ts +6 -32
- package/dist/projections/declarative/ProjectionBuilderFor.d.ts.map +1 -1
- package/dist/projections/declarative/ProjectionBuilderFor.js +24 -118
- package/dist/projections/declarative/ProjectionBuilderFor.js.map +1 -1
- package/dist/projections/declarative/SubtractBuilder.d.ts +17 -0
- package/dist/projections/declarative/SubtractBuilder.d.ts.map +1 -0
- package/dist/projections/declarative/SubtractBuilder.js +28 -0
- package/dist/projections/declarative/SubtractBuilder.js.map +1 -0
- package/dist/projections/declarative/index.d.ts +9 -0
- package/dist/projections/declarative/index.d.ts.map +1 -1
- package/dist/projections/declarative/index.js +8 -0
- package/dist/projections/declarative/index.js.map +1 -1
- package/dist/projections/modelBound/childrenAndNestedBuilder.d.ts +90 -0
- package/dist/projections/modelBound/childrenAndNestedBuilder.d.ts.map +1 -0
- package/dist/projections/modelBound/childrenAndNestedBuilder.js +290 -0
- package/dist/projections/modelBound/childrenAndNestedBuilder.js.map +1 -0
- package/dist/reactors/ReactorSideEffects.d.ts +29 -0
- package/dist/reactors/ReactorSideEffects.d.ts.map +1 -0
- package/dist/reactors/ReactorSideEffects.js +70 -0
- package/dist/reactors/ReactorSideEffects.js.map +1 -0
- package/dist/reactors/Reactors.d.ts +4 -1
- package/dist/reactors/Reactors.d.ts.map +1 -1
- package/dist/reactors/Reactors.js +23 -4
- package/dist/reactors/Reactors.js.map +1 -1
- package/dist/reducers/Reducers.d.ts.map +1 -1
- package/dist/reducers/Reducers.js +15 -3
- package/dist/reducers/Reducers.js.map +1 -1
- package/dist/reducers/reducer.d.ts +9 -1
- package/dist/reducers/reducer.d.ts.map +1 -1
- package/dist/reducers/reducer.js +4 -2
- package/dist/reducers/reducer.js.map +1 -1
- package/dist/transactions/IUnitOfWork.d.ts +18 -0
- package/dist/transactions/IUnitOfWork.d.ts.map +1 -1
- package/dist/transactions/UnitOfWork.d.ts +9 -0
- package/dist/transactions/UnitOfWork.d.ts.map +1 -1
- package/dist/transactions/UnitOfWork.js +14 -0
- package/dist/transactions/UnitOfWork.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/eventSequences/AppendOperationsBroadcaster.ts +83 -0
- package/eventSequences/AppendOptions.ts +8 -0
- package/eventSequences/AppendResult.ts +16 -0
- package/eventSequences/AppendedEventWithResult.ts +17 -0
- package/eventSequences/CompleteStreamError.ts +20 -0
- package/eventSequences/CompleteStreamResult.ts +13 -0
- package/eventSequences/ConcurrencyViolation.ts +18 -0
- package/eventSequences/EventForEventSourceId.ts +12 -0
- package/eventSequences/EventSequence.spec.ts +588 -0
- package/eventSequences/EventSequence.ts +406 -20
- package/eventSequences/IEventSequence.ts +109 -1
- package/eventSequences/WaitForCompletionResult.ts +15 -0
- package/eventSequences/index.ts +5 -0
- package/eventStoreSubscriptions/EventStoreSubscriptions.spec.ts +52 -0
- package/eventStoreSubscriptions/EventStoreSubscriptions.ts +19 -1
- package/eventStoreSubscriptions/IEventStoreSubscriptions.ts +7 -0
- package/eventStoreSubscriptions/contracts.ts +126 -0
- package/events/constraints/Constraints.ts +1 -1
- package/externalServices/ExternalServiceBuilder.ts +128 -0
- package/externalServices/ExternalServices.ts +34 -0
- package/externalServices/ExternalServicesContracts.ts +709 -0
- package/externalServices/IExternalServiceBuilder.ts +76 -0
- package/externalServices/IExternalServices.ts +16 -0
- package/externalServices/index.ts +7 -0
- package/identities/IIdentityManager.ts +19 -0
- package/identities/IdentityManager.ts +32 -0
- package/identities/index.ts +5 -0
- package/index.ts +6 -0
- package/observation/FailedPartition.ts +21 -0
- package/observation/FailedPartitionAttempt.ts +21 -0
- package/observation/FailedPartitions.spec.ts +75 -0
- package/observation/FailedPartitions.ts +44 -0
- package/observation/ICanBeNotifiedWhenPartitionReplayed.ts +22 -0
- package/observation/ICanBeNotifiedWhenReplay.ts +20 -0
- package/observation/IFailedPartitions.ts +22 -0
- package/observation/index.ts +6 -0
- package/observation/notifyReplayLifecycle.spec.ts +98 -0
- package/observation/notifyReplayLifecycle.ts +61 -0
- package/observation/toClientFailedPartition.ts +26 -0
- package/package.json +12 -2
- package/projections/Projections.childrenAndNested.spec.ts +188 -0
- package/projections/Projections.spec.ts +131 -0
- package/projections/Projections.ts +37 -119
- package/projections/declarative/AddBuilder.ts +28 -0
- package/projections/declarative/AddChildBuilder.ts +97 -0
- package/projections/declarative/ChildrenBuilder.spec.ts +157 -0
- package/projections/declarative/ChildrenBuilder.ts +90 -0
- package/projections/declarative/CompositeKeyBuilder.spec.ts +117 -0
- package/projections/declarative/CompositeKeyBuilder.ts +38 -0
- package/projections/declarative/FromBuilder.ts +60 -15
- package/projections/declarative/ICompositeKeyBuilder.ts +6 -0
- package/projections/declarative/JoinBuilder.ts +66 -17
- package/projections/declarative/NestedBuilder.ts +76 -0
- package/projections/declarative/ProjectionBuilderCore.ts +257 -0
- package/projections/declarative/ProjectionBuilderFor.spec.ts +115 -0
- package/projections/declarative/ProjectionBuilderFor.ts +29 -168
- package/projections/declarative/SubtractBuilder.ts +28 -0
- package/projections/declarative/index.ts +9 -0
- package/projections/modelBound/childrenAndNestedBuilder.ts +354 -0
- package/reactors/ReactorSideEffects.spec.ts +182 -0
- package/reactors/ReactorSideEffects.ts +97 -0
- package/reactors/Reactors.ts +29 -4
- package/reducers/Reducers.spec.ts +87 -0
- package/reducers/Reducers.ts +15 -3
- package/reducers/reducer.spec.ts +40 -0
- package/reducers/reducer.ts +11 -2
- package/transactions/IUnitOfWork.ts +21 -0
- package/transactions/UnitOfWork.spec.ts +82 -0
- package/transactions/UnitOfWork.ts +20 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JoinBuilder.js","sourceRoot":"","sources":["../../../projections/declarative/JoinBuilder.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAoB,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"JoinBuilder.js","sourceRoot":"","sources":["../../../projections/declarative/JoinBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
2
|
+
import { ChildrenDefinitionLike, ProjectionBuilderCore } from './ProjectionBuilderCore';
|
|
3
|
+
import { IChildrenBuilder } from './IChildrenBuilder';
|
|
4
|
+
import { INestedBuilder } from './INestedBuilder';
|
|
5
|
+
/**
|
|
6
|
+
* Concrete implementation of {@link INestedBuilder}, building the `ChildrenDefinition` for a
|
|
7
|
+
* nested single-object sub-projection reached through `.nested()`.
|
|
8
|
+
* @template TParentReadModel - The parent read model type.
|
|
9
|
+
* @template TNestedReadModel - The nested object read model type.
|
|
10
|
+
*/
|
|
11
|
+
export declare class NestedBuilder<TParentReadModel, TNestedReadModel> extends ProjectionBuilderCore<TNestedReadModel, INestedBuilder<TParentReadModel, TNestedReadModel>> implements INestedBuilder<TParentReadModel, TNestedReadModel> {
|
|
12
|
+
/** @inheritdoc */
|
|
13
|
+
clearWith(eventType: Function): INestedBuilder<TParentReadModel, TNestedReadModel>;
|
|
14
|
+
/** @inheritdoc */
|
|
15
|
+
children<TChildModel>(targetPropertyAccessor: PropertyAccessor<TNestedReadModel>, builderCallback: (builder: IChildrenBuilder<TNestedReadModel, TChildModel>) => void): INestedBuilder<TParentReadModel, TNestedReadModel>;
|
|
16
|
+
/** @inheritdoc */
|
|
17
|
+
nested<TGrandNestedModel>(targetPropertyAccessor: PropertyAccessor<TNestedReadModel>, builderCallback: (builder: INestedBuilder<TNestedReadModel, TGrandNestedModel>) => void): INestedBuilder<TParentReadModel, TNestedReadModel>;
|
|
18
|
+
/**
|
|
19
|
+
* Builds the {@link ChildrenDefinitionLike} representing this nested object.
|
|
20
|
+
* @returns The accumulated nested definition.
|
|
21
|
+
*/
|
|
22
|
+
buildDefinition(): ChildrenDefinitionLike;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=NestedBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NestedBuilder.d.ts","sourceRoot":"","sources":["../../../projections/declarative/NestedBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAoC,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;;;;GAKG;AACH,qBAAa,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,CACzD,SAAQ,qBAAqB,CAAC,gBAAgB,EAAE,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAClG,YAAW,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC7D,kBAAkB;IAClB,SAAS,CAAC,SAAS,EAAE,QAAQ,GAAG,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IASlF,kBAAkB;IAClB,QAAQ,CAAC,WAAW,EAChB,sBAAsB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,EAC1D,eAAe,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,WAAW,CAAC,KAAK,IAAI,GACpF,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAWrD,kBAAkB;IAClB,MAAM,CAAC,iBAAiB,EACpB,sBAAsB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,EAC1D,eAAe,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,KAAK,IAAI,GACxF,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAWrD;;;OAGG;IACH,eAAe,IAAI,sBAAsB;CAa5C"}
|
|
@@ -0,0 +1,60 @@
|
|
|
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 { PropertyPathResolverProxyHandler } from '@cratis/fundamentals';
|
|
4
|
+
import { ProjectionBuilderCore } from './ProjectionBuilderCore';
|
|
5
|
+
import { ChildrenBuilder } from './ChildrenBuilder';
|
|
6
|
+
/**
|
|
7
|
+
* Concrete implementation of {@link INestedBuilder}, building the `ChildrenDefinition` for a
|
|
8
|
+
* nested single-object sub-projection reached through `.nested()`.
|
|
9
|
+
* @template TParentReadModel - The parent read model type.
|
|
10
|
+
* @template TNestedReadModel - The nested object read model type.
|
|
11
|
+
*/
|
|
12
|
+
export class NestedBuilder extends ProjectionBuilderCore {
|
|
13
|
+
/** @inheritdoc */
|
|
14
|
+
clearWith(eventType) {
|
|
15
|
+
const contractType = this.toContractEventType(eventType);
|
|
16
|
+
this._removedWith.push({
|
|
17
|
+
Key: contractType,
|
|
18
|
+
Value: { Key: '$eventSourceId', ParentKey: '' }
|
|
19
|
+
});
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
/** @inheritdoc */
|
|
23
|
+
children(targetPropertyAccessor, builderCallback) {
|
|
24
|
+
const handler = new PropertyPathResolverProxyHandler();
|
|
25
|
+
const proxy = new Proxy({}, handler);
|
|
26
|
+
targetPropertyAccessor(proxy);
|
|
27
|
+
const builder = new ChildrenBuilder();
|
|
28
|
+
builderCallback(builder);
|
|
29
|
+
this._children[handler.property] = builder.buildDefinition();
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
/** @inheritdoc */
|
|
33
|
+
nested(targetPropertyAccessor, builderCallback) {
|
|
34
|
+
const handler = new PropertyPathResolverProxyHandler();
|
|
35
|
+
const proxy = new Proxy({}, handler);
|
|
36
|
+
targetPropertyAccessor(proxy);
|
|
37
|
+
const builder = new NestedBuilder();
|
|
38
|
+
builderCallback(builder);
|
|
39
|
+
this._nested[handler.property] = builder.buildDefinition();
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Builds the {@link ChildrenDefinitionLike} representing this nested object.
|
|
44
|
+
* @returns The accumulated nested definition.
|
|
45
|
+
*/
|
|
46
|
+
buildDefinition() {
|
|
47
|
+
return {
|
|
48
|
+
IdentifiedBy: '',
|
|
49
|
+
From: this._from,
|
|
50
|
+
Join: this._join,
|
|
51
|
+
Children: this._children,
|
|
52
|
+
All: this._all,
|
|
53
|
+
RemovedWith: this._removedWith,
|
|
54
|
+
RemovedWithJoin: this._removedWithJoin,
|
|
55
|
+
AutoMap: this._autoMap,
|
|
56
|
+
Nested: this._nested
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=NestedBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NestedBuilder.js","sourceRoot":"","sources":["../../../projections/declarative/NestedBuilder.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAoB,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAA0B,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGxF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,OAAO,aACT,SAAQ,qBAA2F;IAEnG,kBAAkB;IAClB,SAAS,CAAC,SAAmB;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,GAAG,EAAE,YAAY;YACjB,KAAK,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,EAAE;SAClD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,QAAQ,CACJ,sBAA0D,EAC1D,eAAmF;QAEnF,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACrC,sBAAsB,CAAC,KAAyB,CAAC,CAAC;QAElD,MAAM,OAAO,GAAG,IAAI,eAAe,EAAiC,CAAC;QACrE,eAAe,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,MAAM,CACF,sBAA0D,EAC1D,eAAuF;QAEvF,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACrC,sBAAsB,CAAC,KAAyB,CAAC,CAAC;QAElD,MAAM,OAAO,GAAG,IAAI,aAAa,EAAuC,CAAC;QACzE,eAAe,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,eAAe;QACX,OAAO;YACH,YAAY,EAAE,EAAE;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,eAAe,EAAE,IAAI,CAAC,gBAAgB;YACtC,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,MAAM,EAAE,IAAI,CAAC,OAAO;SACvB,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { AutoMap } from '@cratis/chronicle.contracts';
|
|
2
|
+
import { IFromBuilder } from './IFromBuilder';
|
|
3
|
+
import { IFromEveryBuilder } from './IFromEveryBuilder';
|
|
4
|
+
import { IJoinBuilder } from './IJoinBuilder';
|
|
5
|
+
import { IRemovedWithBuilder } from './IRemovedWithBuilder';
|
|
6
|
+
import { IRemovedWithJoinBuilder } from './IRemovedWithJoinBuilder';
|
|
7
|
+
/** The contract-level event type identifier shape used across projection definitions. */
|
|
8
|
+
export type ContractEventType = {
|
|
9
|
+
Id: string;
|
|
10
|
+
Generation: number;
|
|
11
|
+
Tombstone: boolean;
|
|
12
|
+
};
|
|
13
|
+
/** Accumulated property mapping for a from clause. */
|
|
14
|
+
export interface FromRecord {
|
|
15
|
+
Key: ContractEventType;
|
|
16
|
+
Value: {
|
|
17
|
+
Properties: Record<string, string>;
|
|
18
|
+
Key: string;
|
|
19
|
+
ParentKey: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/** Accumulated property mapping for a join clause. */
|
|
23
|
+
export interface JoinRecord {
|
|
24
|
+
Key: ContractEventType;
|
|
25
|
+
Value: {
|
|
26
|
+
On: string;
|
|
27
|
+
Properties: Record<string, string>;
|
|
28
|
+
Key: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/** Accumulated removal mapping for a removedWith clause. */
|
|
32
|
+
export interface RemovedWithRecord {
|
|
33
|
+
Key: ContractEventType;
|
|
34
|
+
Value: {
|
|
35
|
+
Key: string;
|
|
36
|
+
ParentKey: string;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/** Accumulated removal mapping for a removedWithJoin clause. */
|
|
40
|
+
export interface RemovedWithJoinRecord {
|
|
41
|
+
Key: ContractEventType;
|
|
42
|
+
Value: {
|
|
43
|
+
Key: string;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Plain object shape matching the wire-level `ChildrenDefinition` used for both children
|
|
48
|
+
* collections and nested single-object projections.
|
|
49
|
+
*/
|
|
50
|
+
export interface ChildrenDefinitionLike {
|
|
51
|
+
IdentifiedBy: string;
|
|
52
|
+
From: FromRecord[];
|
|
53
|
+
Join: JoinRecord[];
|
|
54
|
+
Children: Record<string, ChildrenDefinitionLike>;
|
|
55
|
+
All: {
|
|
56
|
+
Properties: Record<string, string>;
|
|
57
|
+
IncludeChildren: boolean;
|
|
58
|
+
AutoMap: AutoMap;
|
|
59
|
+
};
|
|
60
|
+
FromEventProperty?: {
|
|
61
|
+
Event: ContractEventType | undefined;
|
|
62
|
+
PropertyExpression: string;
|
|
63
|
+
};
|
|
64
|
+
RemovedWith: RemovedWithRecord[];
|
|
65
|
+
RemovedWithJoin: RemovedWithJoinRecord[];
|
|
66
|
+
AutoMap: AutoMap;
|
|
67
|
+
Nested: Record<string, ChildrenDefinitionLike>;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Base accumulator shared by every projection-shaped builder (the top-level
|
|
71
|
+
* {@link ProjectionBuilderFor}, and the child/nested builders reached through
|
|
72
|
+
* `.children()`/`.nested()`). Holds the from/join/fromEvery/removedWith/removedWithJoin/
|
|
73
|
+
* children/nested state and the mapping operations common to all of them, mirroring the
|
|
74
|
+
* shared `ProjectionBuilder<TReadModel, TBuilder>` base class on the C# client.
|
|
75
|
+
* @template TReadModel - The read model type this builder produces.
|
|
76
|
+
* @template TBuilder - The concrete builder type returned for fluent chaining.
|
|
77
|
+
*/
|
|
78
|
+
export declare abstract class ProjectionBuilderCore<TReadModel, TBuilder> {
|
|
79
|
+
protected _autoMap: AutoMap;
|
|
80
|
+
protected _initialState: string;
|
|
81
|
+
protected readonly _from: FromRecord[];
|
|
82
|
+
protected readonly _join: JoinRecord[];
|
|
83
|
+
protected readonly _removedWith: RemovedWithRecord[];
|
|
84
|
+
protected readonly _removedWithJoin: RemovedWithJoinRecord[];
|
|
85
|
+
protected readonly _children: Record<string, ChildrenDefinitionLike>;
|
|
86
|
+
protected readonly _nested: Record<string, ChildrenDefinitionLike>;
|
|
87
|
+
protected _all: {
|
|
88
|
+
Properties: Record<string, string>;
|
|
89
|
+
IncludeChildren: boolean;
|
|
90
|
+
AutoMap: AutoMap;
|
|
91
|
+
};
|
|
92
|
+
/** @inheritdoc */
|
|
93
|
+
autoMap(): TBuilder;
|
|
94
|
+
/** @inheritdoc */
|
|
95
|
+
noAutoMap(): TBuilder;
|
|
96
|
+
/** @inheritdoc */
|
|
97
|
+
withInitialValues(initialValueProvider: () => TReadModel): TBuilder;
|
|
98
|
+
/** @inheritdoc */
|
|
99
|
+
from<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IFromBuilder<TReadModel, TEvent>) => void): TBuilder;
|
|
100
|
+
/** @inheritdoc */
|
|
101
|
+
join<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IJoinBuilder<TReadModel, TEvent>) => void): TBuilder;
|
|
102
|
+
/** @inheritdoc */
|
|
103
|
+
fromEvery(builderCallback: (builder: IFromEveryBuilder<TReadModel>) => void): TBuilder;
|
|
104
|
+
/** @inheritdoc */
|
|
105
|
+
removedWith<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IRemovedWithBuilder<TReadModel, TEvent>) => void): TBuilder;
|
|
106
|
+
/** @inheritdoc */
|
|
107
|
+
removedWithJoin<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IRemovedWithJoinBuilder<TReadModel, TEvent>) => void): TBuilder;
|
|
108
|
+
/**
|
|
109
|
+
* Creates an empty {@link ChildrenDefinitionLike} accumulator for a children/nested entry.
|
|
110
|
+
* @returns A fresh, empty children definition.
|
|
111
|
+
*/
|
|
112
|
+
protected createEmptyChildrenDefinition(): ChildrenDefinitionLike;
|
|
113
|
+
/**
|
|
114
|
+
* Merges `.addChild()` accumulations captured on a from/join builder into this builder's
|
|
115
|
+
* children definitions, creating the target child entry on first use.
|
|
116
|
+
* @param eventType - The contract event type the child additions were captured for.
|
|
117
|
+
* @param children - The accumulated child additions.
|
|
118
|
+
*/
|
|
119
|
+
private mergeChildAdditions;
|
|
120
|
+
/**
|
|
121
|
+
* Resolves the contract event type for a decorated event constructor.
|
|
122
|
+
* @param eventTypeConstructor - The event class constructor.
|
|
123
|
+
* @returns The contract-level event type identifier.
|
|
124
|
+
*/
|
|
125
|
+
protected toContractEventType(eventTypeConstructor: Function): ContractEventType;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=ProjectionBuilderCore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectionBuilderCore.d.ts","sourceRoot":"","sources":["../../../projections/declarative/ProjectionBuilderCore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,180 @@
|
|
|
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 { AutoMap } from '@cratis/chronicle.contracts';
|
|
4
|
+
import { getEventTypeFor } from '../../events/eventTypeDecorator';
|
|
5
|
+
import { FromBuilder } from './FromBuilder';
|
|
6
|
+
import { JoinBuilder } from './JoinBuilder';
|
|
7
|
+
import { FromEveryBuilder } from './FromEveryBuilder';
|
|
8
|
+
import { RemovedWithBuilder } from './RemovedWithBuilder';
|
|
9
|
+
import { RemovedWithJoinBuilder } from './RemovedWithJoinBuilder';
|
|
10
|
+
/**
|
|
11
|
+
* Base accumulator shared by every projection-shaped builder (the top-level
|
|
12
|
+
* {@link ProjectionBuilderFor}, and the child/nested builders reached through
|
|
13
|
+
* `.children()`/`.nested()`). Holds the from/join/fromEvery/removedWith/removedWithJoin/
|
|
14
|
+
* children/nested state and the mapping operations common to all of them, mirroring the
|
|
15
|
+
* shared `ProjectionBuilder<TReadModel, TBuilder>` base class on the C# client.
|
|
16
|
+
* @template TReadModel - The read model type this builder produces.
|
|
17
|
+
* @template TBuilder - The concrete builder type returned for fluent chaining.
|
|
18
|
+
*/
|
|
19
|
+
export class ProjectionBuilderCore {
|
|
20
|
+
_autoMap = AutoMap.Inherit;
|
|
21
|
+
_initialState = '{}';
|
|
22
|
+
_from = [];
|
|
23
|
+
_join = [];
|
|
24
|
+
_removedWith = [];
|
|
25
|
+
_removedWithJoin = [];
|
|
26
|
+
_children = {};
|
|
27
|
+
_nested = {};
|
|
28
|
+
_all = {
|
|
29
|
+
Properties: {},
|
|
30
|
+
IncludeChildren: false,
|
|
31
|
+
AutoMap: AutoMap.Inherit
|
|
32
|
+
};
|
|
33
|
+
/** @inheritdoc */
|
|
34
|
+
autoMap() {
|
|
35
|
+
this._autoMap = AutoMap.Enabled;
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
/** @inheritdoc */
|
|
39
|
+
noAutoMap() {
|
|
40
|
+
this._autoMap = AutoMap.Disabled;
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
/** @inheritdoc */
|
|
44
|
+
withInitialValues(initialValueProvider) {
|
|
45
|
+
this._initialState = JSON.stringify(initialValueProvider());
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
/** @inheritdoc */
|
|
49
|
+
from(eventType, builderCallback) {
|
|
50
|
+
const contractType = this.toContractEventType(eventType);
|
|
51
|
+
const fromBuilder = new FromBuilder();
|
|
52
|
+
builderCallback?.(fromBuilder);
|
|
53
|
+
this._from.push({
|
|
54
|
+
Key: contractType,
|
|
55
|
+
Value: {
|
|
56
|
+
Properties: fromBuilder.entry.properties,
|
|
57
|
+
Key: fromBuilder.entry.key,
|
|
58
|
+
ParentKey: fromBuilder.entry.parentKey
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
this.mergeChildAdditions(contractType, fromBuilder.entry.children);
|
|
62
|
+
return this;
|
|
63
|
+
}
|
|
64
|
+
/** @inheritdoc */
|
|
65
|
+
join(eventType, builderCallback) {
|
|
66
|
+
const contractType = this.toContractEventType(eventType);
|
|
67
|
+
const joinBuilder = new JoinBuilder();
|
|
68
|
+
builderCallback?.(joinBuilder);
|
|
69
|
+
this._join.push({
|
|
70
|
+
Key: contractType,
|
|
71
|
+
Value: {
|
|
72
|
+
On: joinBuilder.entry.on,
|
|
73
|
+
Properties: joinBuilder.entry.properties,
|
|
74
|
+
Key: joinBuilder.entry.key
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
this.mergeChildAdditions(contractType, joinBuilder.entry.children);
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
/** @inheritdoc */
|
|
81
|
+
fromEvery(builderCallback) {
|
|
82
|
+
const builder = new FromEveryBuilder();
|
|
83
|
+
builderCallback(builder);
|
|
84
|
+
this._all = {
|
|
85
|
+
Properties: {
|
|
86
|
+
...this._all.Properties,
|
|
87
|
+
...builder.entry.properties
|
|
88
|
+
},
|
|
89
|
+
IncludeChildren: builder.entry.includeChildren,
|
|
90
|
+
AutoMap: AutoMap.Inherit
|
|
91
|
+
};
|
|
92
|
+
return this;
|
|
93
|
+
}
|
|
94
|
+
/** @inheritdoc */
|
|
95
|
+
removedWith(eventType, builderCallback) {
|
|
96
|
+
const contractType = this.toContractEventType(eventType);
|
|
97
|
+
const removedWithBuilder = new RemovedWithBuilder();
|
|
98
|
+
builderCallback?.(removedWithBuilder);
|
|
99
|
+
this._removedWith.push({
|
|
100
|
+
Key: contractType,
|
|
101
|
+
Value: {
|
|
102
|
+
Key: removedWithBuilder.entry.key,
|
|
103
|
+
ParentKey: removedWithBuilder.entry.parentKey
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
/** @inheritdoc */
|
|
109
|
+
removedWithJoin(eventType, builderCallback) {
|
|
110
|
+
const contractType = this.toContractEventType(eventType);
|
|
111
|
+
const removedWithJoinBuilder = new RemovedWithJoinBuilder();
|
|
112
|
+
builderCallback?.(removedWithJoinBuilder);
|
|
113
|
+
this._removedWithJoin.push({
|
|
114
|
+
Key: contractType,
|
|
115
|
+
Value: {
|
|
116
|
+
Key: removedWithJoinBuilder.entry.key
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Creates an empty {@link ChildrenDefinitionLike} accumulator for a children/nested entry.
|
|
123
|
+
* @returns A fresh, empty children definition.
|
|
124
|
+
*/
|
|
125
|
+
createEmptyChildrenDefinition() {
|
|
126
|
+
return {
|
|
127
|
+
IdentifiedBy: '$eventSourceId',
|
|
128
|
+
From: [],
|
|
129
|
+
Join: [],
|
|
130
|
+
Children: {},
|
|
131
|
+
All: { Properties: {}, IncludeChildren: false, AutoMap: AutoMap.Inherit },
|
|
132
|
+
RemovedWith: [],
|
|
133
|
+
RemovedWithJoin: [],
|
|
134
|
+
AutoMap: AutoMap.Inherit,
|
|
135
|
+
Nested: {}
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Merges `.addChild()` accumulations captured on a from/join builder into this builder's
|
|
140
|
+
* children definitions, creating the target child entry on first use.
|
|
141
|
+
* @param eventType - The contract event type the child additions were captured for.
|
|
142
|
+
* @param children - The accumulated child additions.
|
|
143
|
+
*/
|
|
144
|
+
mergeChildAdditions(eventType, children) {
|
|
145
|
+
for (const child of children) {
|
|
146
|
+
const childDefinition = this._children[child.targetProperty] ??= this.createEmptyChildrenDefinition();
|
|
147
|
+
if (child.identifiedBy) {
|
|
148
|
+
childDefinition.IdentifiedBy = child.identifiedBy;
|
|
149
|
+
}
|
|
150
|
+
if (child.fromEventProperty) {
|
|
151
|
+
childDefinition.FromEventProperty = { Event: eventType, PropertyExpression: child.fromEventProperty };
|
|
152
|
+
}
|
|
153
|
+
childDefinition.From.push({
|
|
154
|
+
Key: eventType,
|
|
155
|
+
Value: {
|
|
156
|
+
Key: child.usingKey ?? '$eventSourceId',
|
|
157
|
+
ParentKey: '$eventSourceId',
|
|
158
|
+
Properties: {}
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Resolves the contract event type for a decorated event constructor.
|
|
165
|
+
* @param eventTypeConstructor - The event class constructor.
|
|
166
|
+
* @returns The contract-level event type identifier.
|
|
167
|
+
*/
|
|
168
|
+
toContractEventType(eventTypeConstructor) {
|
|
169
|
+
const eventType = getEventTypeFor(eventTypeConstructor);
|
|
170
|
+
if (eventType.id.value === '') {
|
|
171
|
+
throw new Error(`Event type '${eventTypeConstructor.name}' is not decorated with @eventType().`);
|
|
172
|
+
}
|
|
173
|
+
return {
|
|
174
|
+
Id: eventType.id.value,
|
|
175
|
+
Generation: eventType.generation.value,
|
|
176
|
+
Tombstone: false
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=ProjectionBuilderCore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectionBuilderCore.js","sourceRoot":"","sources":["../../../projections/declarative/ProjectionBuilderCore.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AA+ClE;;;;;;;;GAQG;AACH,MAAM,OAAgB,qBAAqB;IAC7B,QAAQ,GAAY,OAAO,CAAC,OAAO,CAAC;IACpC,aAAa,GAAW,IAAI,CAAC;IACpB,KAAK,GAAiB,EAAE,CAAC;IACzB,KAAK,GAAiB,EAAE,CAAC;IACzB,YAAY,GAAwB,EAAE,CAAC;IACvC,gBAAgB,GAA4B,EAAE,CAAC;IAC/C,SAAS,GAA2C,EAAE,CAAC;IACvD,OAAO,GAA2C,EAAE,CAAC;IAC9D,IAAI,GAAuF;QACjG,UAAU,EAAE,EAAE;QACd,eAAe,EAAE,KAAK;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAC;IAEF,kBAAkB;IAClB,OAAO;QACH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,OAAO,IAA2B,CAAC;IACvC,CAAC;IAED,kBAAkB;IAClB,SAAS;QACL,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,OAAO,IAA2B,CAAC;IACvC,CAAC;IAED,kBAAkB;IAClB,iBAAiB,CAAC,oBAAsC;QACpD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAC5D,OAAO,IAA2B,CAAC;IACvC,CAAC;IAED,kBAAkB;IAClB,IAAI,CACA,SAAyC,EACzC,eAAqE;QAErE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,IAAI,WAAW,EAAsB,CAAC;QAC1D,eAAe,EAAE,CAAC,WAAW,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,YAAY;YACjB,KAAK,EAAE;gBACH,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,UAAU;gBACxC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG;gBAC1B,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS;aACzC;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnE,OAAO,IAA2B,CAAC;IACvC,CAAC;IAED,kBAAkB;IAClB,IAAI,CACA,SAAyC,EACzC,eAAqE;QAErE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,IAAI,WAAW,EAAsB,CAAC;QAC1D,eAAe,EAAE,CAAC,WAAW,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,YAAY;YACjB,KAAK,EAAE;gBACH,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE;gBACxB,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,UAAU;gBACxC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG;aAC7B;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnE,OAAO,IAA2B,CAAC;IACvC,CAAC;IAED,kBAAkB;IAClB,SAAS,CAAC,eAAiE;QACvE,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAc,CAAC;QACnD,eAAe,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG;YACR,UAAU,EAAE;gBACR,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU;gBACvB,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU;aAC9B;YACD,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe;YAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;SAC3B,CAAC;QACF,OAAO,IAA2B,CAAC;IACvC,CAAC;IAED,kBAAkB;IAClB,WAAW,CACP,SAAyC,EACzC,eAA4E;QAE5E,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAsB,CAAC;QACxE,eAAe,EAAE,CAAC,kBAAkB,CAAC,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,GAAG,EAAE,YAAY;YACjB,KAAK,EAAE;gBACH,GAAG,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG;gBACjC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,SAAS;aAChD;SACJ,CAAC,CAAC;QACH,OAAO,IAA2B,CAAC;IACvC,CAAC;IAED,kBAAkB;IAClB,eAAe,CACX,SAAyC,EACzC,eAAgF;QAEhF,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,sBAAsB,GAAG,IAAI,sBAAsB,EAAsB,CAAC;QAChF,eAAe,EAAE,CAAC,sBAAsB,CAAC,CAAC;QAC1C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACvB,GAAG,EAAE,YAAY;YACjB,KAAK,EAAE;gBACH,GAAG,EAAE,sBAAsB,CAAC,KAAK,CAAC,GAAG;aACxC;SACJ,CAAC,CAAC;QACH,OAAO,IAA2B,CAAC;IACvC,CAAC;IAED;;;OAGG;IACO,6BAA6B;QACnC,OAAO;YACH,YAAY,EAAE,gBAAgB;YAC9B,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,EAAE;YACZ,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;YACzE,WAAW,EAAE,EAAE;YACf,eAAe,EAAE,EAAE;YACnB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,EAAE;SACb,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACK,mBAAmB,CAAC,SAA4B,EAAE,QAA8B;QACpF,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,6BAA6B,EAAE,CAAC;YAEtG,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACrB,eAAe,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACtD,CAAC;YAED,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC1B,eAAe,CAAC,iBAAiB,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC1G,CAAC;YAED,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;gBACtB,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE;oBACH,GAAG,EAAE,KAAK,CAAC,QAAQ,IAAI,gBAAgB;oBACvC,SAAS,EAAE,gBAAgB;oBAC3B,UAAU,EAAE,EAAE;iBACjB;aACJ,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED;;;;OAIG;IACO,mBAAmB,CAAC,oBAA8B;QACxD,MAAM,SAAS,GAAG,eAAe,CAAC,oBAAoB,CAAC,CAAC;QACxD,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,eAAe,oBAAoB,CAAC,IAAI,uCAAuC,CAAC,CAAC;QACrG,CAAC;QACD,OAAO;YACH,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK;YACtB,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK;YACtC,SAAS,EAAE,KAAK;SACnB,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -1,28 +1,19 @@
|
|
|
1
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
1
2
|
import { IChildrenBuilder } from './IChildrenBuilder';
|
|
2
|
-
import { IFromBuilder } from './IFromBuilder';
|
|
3
|
-
import { IFromEveryBuilder } from './IFromEveryBuilder';
|
|
4
|
-
import { IJoinBuilder } from './IJoinBuilder';
|
|
5
3
|
import { INestedBuilder } from './INestedBuilder';
|
|
6
4
|
import { IProjectionBuilderFor } from './IProjectionBuilderFor';
|
|
7
|
-
import {
|
|
8
|
-
import { IRemovedWithJoinBuilder } from './IRemovedWithJoinBuilder';
|
|
5
|
+
import { ProjectionBuilderCore } from './ProjectionBuilderCore';
|
|
9
6
|
/**
|
|
10
7
|
* Concrete implementation of {@link IProjectionBuilderFor} that accumulates projection
|
|
11
8
|
* configuration and produces a Chronicle-compatible projection definition payload.
|
|
12
9
|
* @template TReadModel - The read model type this projection produces.
|
|
13
10
|
*/
|
|
14
|
-
export declare class ProjectionBuilderFor<TReadModel> implements IProjectionBuilderFor<TReadModel> {
|
|
11
|
+
export declare class ProjectionBuilderFor<TReadModel> extends ProjectionBuilderCore<TReadModel, ProjectionBuilderFor<TReadModel>> implements IProjectionBuilderFor<TReadModel> {
|
|
15
12
|
private _eventSequenceId;
|
|
16
13
|
private _containerName;
|
|
17
14
|
private _rewindable;
|
|
18
15
|
private _active;
|
|
19
|
-
|
|
20
|
-
private _initialState;
|
|
21
|
-
private readonly _from;
|
|
22
|
-
private readonly _join;
|
|
23
|
-
private readonly _removedWith;
|
|
24
|
-
private readonly _removedWithJoin;
|
|
25
|
-
private _all;
|
|
16
|
+
constructor();
|
|
26
17
|
/** @inheritdoc */
|
|
27
18
|
fromEventSequence(eventSequenceId: string): this;
|
|
28
19
|
/** @inheritdoc */
|
|
@@ -32,25 +23,9 @@ export declare class ProjectionBuilderFor<TReadModel> implements IProjectionBuil
|
|
|
32
23
|
/** @inheritdoc */
|
|
33
24
|
passive(): this;
|
|
34
25
|
/** @inheritdoc */
|
|
35
|
-
|
|
26
|
+
children<TChildModel>(targetPropertyAccessor: PropertyAccessor<TReadModel>, builderCallback: (builder: IChildrenBuilder<TReadModel, TChildModel>) => void): this;
|
|
36
27
|
/** @inheritdoc */
|
|
37
|
-
|
|
38
|
-
/** @inheritdoc */
|
|
39
|
-
withInitialValues(initialValueProvider: () => TReadModel): this;
|
|
40
|
-
/** @inheritdoc */
|
|
41
|
-
from<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IFromBuilder<TReadModel, TEvent>) => void): this;
|
|
42
|
-
/** @inheritdoc */
|
|
43
|
-
join<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IJoinBuilder<TReadModel, TEvent>) => void): this;
|
|
44
|
-
/** @inheritdoc */
|
|
45
|
-
fromEvery(builderCallback: (builder: IFromEveryBuilder<TReadModel>) => void): this;
|
|
46
|
-
/** @inheritdoc */
|
|
47
|
-
removedWith<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IRemovedWithBuilder<TReadModel, TEvent>) => void): this;
|
|
48
|
-
/** @inheritdoc */
|
|
49
|
-
removedWithJoin<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IRemovedWithJoinBuilder<TReadModel, TEvent>) => void): this;
|
|
50
|
-
/** @inheritdoc */
|
|
51
|
-
children<TChildModel>(_targetPropertyAccessor: any, _builderCallback: (builder: IChildrenBuilder<TReadModel, TChildModel>) => void): this;
|
|
52
|
-
/** @inheritdoc */
|
|
53
|
-
nested<TNestedModel>(_targetPropertyAccessor: any, _builderCallback: (builder: INestedBuilder<TReadModel, TNestedModel>) => void): this;
|
|
28
|
+
nested<TNestedModel>(targetPropertyAccessor: PropertyAccessor<TReadModel>, builderCallback: (builder: INestedBuilder<TReadModel, TNestedModel>) => void): this;
|
|
54
29
|
/**
|
|
55
30
|
* Builds the contract-compatible projection definition payload.
|
|
56
31
|
* @param identifier - The projection identifier.
|
|
@@ -63,7 +38,6 @@ export declare class ProjectionBuilderFor<TReadModel> implements IProjectionBuil
|
|
|
63
38
|
* @returns Unique read model property names used by from/join/fromEvery mappings.
|
|
64
39
|
*/
|
|
65
40
|
getMappedReadModelProperties(): string[];
|
|
66
|
-
private toContractEventType;
|
|
67
41
|
/**
|
|
68
42
|
* Computes a stable, deterministic ISO timestamp from the projection definition content,
|
|
69
43
|
* excluding the LastUpdated field itself. This ensures the server does not interpret
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectionBuilderFor.d.ts","sourceRoot":"","sources":["../../../projections/declarative/ProjectionBuilderFor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProjectionBuilderFor.d.ts","sourceRoot":"","sources":["../../../projections/declarative/ProjectionBuilderFor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAoC,MAAM,sBAAsB,CAAC;AAG1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;GAIG;AACH,qBAAa,oBAAoB,CAAC,UAAU,CAAE,SAAQ,qBAAqB,CAAC,UAAU,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAE,YAAW,qBAAqB,CAAC,UAAU,CAAC;IAClK,OAAO,CAAC,gBAAgB,CAA0C;IAClE,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,OAAO,CAAiB;;IAOhC,kBAAkB;IAClB,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAKhD,kBAAkB;IAClB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKjC,kBAAkB;IAClB,aAAa,IAAI,IAAI;IAKrB,kBAAkB;IAClB,OAAO,IAAI,IAAI;IAKf,kBAAkB;IAClB,QAAQ,CAAC,WAAW,EAChB,sBAAsB,EAAE,gBAAgB,CAAC,UAAU,CAAC,EACpD,eAAe,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,IAAI,GAC9E,IAAI;IAWP,kBAAkB;IAClB,MAAM,CAAC,YAAY,EACf,sBAAsB,EAAE,gBAAgB,CAAC,UAAU,CAAC,EACpD,eAAe,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK,IAAI,GAC7E,IAAI;IAWP;;;;;OAKG;IACH,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAyBzE;;;OAGG;IACH,4BAA4B,IAAI,MAAM,EAAE;IAsBxC;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;CASnC"}
|