@cratis/chronicle 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ChronicleClient.ts +453 -0
- package/ChronicleOptions.ts +104 -0
- package/EventSequences/AppendError.ts +10 -0
- package/EventSequences/AppendOptions.ts +15 -0
- package/EventSequences/AppendResult.ts +23 -0
- package/EventSequences/ConstraintViolation.ts +16 -0
- package/EventSequences/EventLog.ts +21 -0
- package/EventSequences/EventSequence.ts +372 -0
- package/EventSequences/EventSequenceId.ts +17 -0
- package/EventSequences/EventSequenceNumber.ts +38 -0
- package/EventSequences/IEventLog.ts +10 -0
- package/EventSequences/IEventSequence.ts +47 -0
- package/EventSequences/index.ts +13 -0
- package/EventStore.ts +132 -0
- package/EventStoreName.ts +14 -0
- package/EventStoreNamespaceName.ts +17 -0
- package/Events/AppendedEvent.ts +19 -0
- package/Events/CausationEntry.ts +13 -0
- package/Events/Constraints/ConstraintBuilder.ts +86 -0
- package/Events/Constraints/ConstraintId.ts +14 -0
- package/Events/Constraints/Constraints.ts +117 -0
- package/Events/Constraints/IConstraint.ts +18 -0
- package/Events/Constraints/IConstraintBuilder.ts +44 -0
- package/Events/Constraints/IConstraints.ts +28 -0
- package/Events/Constraints/IUniqueConstraintBuilder.ts +52 -0
- package/Events/Constraints/UniqueConstraintBuilder.ts +97 -0
- package/Events/Constraints/constraint.ts +56 -0
- package/Events/Constraints/index.ts +15 -0
- package/Events/EventContext.ts +28 -0
- package/Events/EventType.ts +41 -0
- package/Events/EventTypeGeneration.ts +20 -0
- package/Events/EventTypeId.ts +19 -0
- package/Events/EventTypes.ts +95 -0
- package/Events/IEventTypes.ts +39 -0
- package/Events/eventTypeDecorator.ts +147 -0
- package/Events/index.ts +14 -0
- package/IChronicleClient.ts +39 -0
- package/IEventStore.ts +56 -0
- package/Metrics.ts +109 -0
- package/Observation/ObserverId.ts +14 -0
- package/Observation/ObserverRunningState.ts +34 -0
- package/Observation/index.ts +5 -0
- package/Projections/IProjections.ts +19 -0
- package/Projections/ProjectionId.ts +14 -0
- package/Projections/Projections.ts +463 -0
- package/Projections/declarative/AllSetBuilder.ts +39 -0
- package/Projections/declarative/FromBuilder.ts +144 -0
- package/Projections/declarative/FromEveryBuilder.ts +46 -0
- package/Projections/declarative/IAddBuilder.ts +18 -0
- package/Projections/declarative/IAddChildBuilder.ts +25 -0
- package/Projections/declarative/IAllSetBuilder.ts +31 -0
- package/Projections/declarative/IChildrenBuilder.ts +31 -0
- package/Projections/declarative/ICompositeKeyBuilder.ts +22 -0
- package/Projections/declarative/IFromBuilder.ts +12 -0
- package/Projections/declarative/IFromEveryBuilder.ts +24 -0
- package/Projections/declarative/IJoinBuilder.ts +20 -0
- package/Projections/declarative/INestedBuilder.ts +19 -0
- package/Projections/declarative/IProjectionBuilder.ts +98 -0
- package/Projections/declarative/IProjectionBuilderFor.ts +38 -0
- package/Projections/declarative/IProjectionFor.ts +18 -0
- package/Projections/declarative/IReadModelPropertiesBuilder.ts +132 -0
- package/Projections/declarative/IRemovedWithBuilder.ts +25 -0
- package/Projections/declarative/IRemovedWithJoinBuilder.ts +25 -0
- package/Projections/declarative/ISetBuilder.ts +38 -0
- package/Projections/declarative/ISubtractBuilder.ts +18 -0
- package/Projections/declarative/JoinBuilder.ts +148 -0
- package/Projections/declarative/ProjectionBuilderFor.ts +277 -0
- package/Projections/declarative/RemovedWithBuilder.ts +40 -0
- package/Projections/declarative/RemovedWithJoinBuilder.ts +43 -0
- package/Projections/declarative/SetBuilder.ts +46 -0
- package/Projections/declarative/index.ts +26 -0
- package/Projections/declarative/projection.ts +59 -0
- package/Projections/index.ts +8 -0
- package/Projections/modelBound/FromEventMetadata.ts +10 -0
- package/Projections/modelBound/FromEventOptions.ts +12 -0
- package/Projections/modelBound/addFrom.ts +41 -0
- package/Projections/modelBound/childrenFrom.ts +52 -0
- package/Projections/modelBound/clearWith.ts +54 -0
- package/Projections/modelBound/count.ts +41 -0
- package/Projections/modelBound/decrement.ts +41 -0
- package/Projections/modelBound/fromEvent.ts +40 -0
- package/Projections/modelBound/fromEvery.ts +39 -0
- package/Projections/modelBound/increment.ts +41 -0
- package/Projections/modelBound/index.ts +38 -0
- package/Projections/modelBound/join.ts +44 -0
- package/Projections/modelBound/modelBound.ts +59 -0
- package/Projections/modelBound/nested.ts +29 -0
- package/Projections/modelBound/notRewindable.ts +24 -0
- package/Projections/modelBound/removedWith.ts +60 -0
- package/Projections/modelBound/removedWithJoin.ts +55 -0
- package/Projections/modelBound/setFrom.ts +41 -0
- package/Projections/modelBound/setFromContext.ts +41 -0
- package/Projections/modelBound/setValue.ts +41 -0
- package/Projections/modelBound/subtractFrom.ts +41 -0
- package/README.md +69 -0
- package/Reactors/IReactors.ts +19 -0
- package/Reactors/ReactorId.ts +14 -0
- package/Reactors/Reactors.ts +320 -0
- package/Reactors/index.ts +8 -0
- package/Reactors/reactor.ts +75 -0
- package/ReadModels/ReadModelId.ts +14 -0
- package/ReadModels/index.ts +6 -0
- package/ReadModels/readModel.ts +89 -0
- package/Reducers/IReducers.ts +19 -0
- package/Reducers/ReducerId.ts +14 -0
- package/Reducers/Reducers.ts +322 -0
- package/Reducers/index.ts +8 -0
- package/Reducers/reducer.ts +87 -0
- package/Schemas/JsonSchema.ts +18 -0
- package/Schemas/JsonSchemaGenerator.ts +107 -0
- package/Schemas/index.ts +6 -0
- package/Schemas/jsonSchemaProperty.ts +24 -0
- package/Tracing.ts +21 -0
- package/artifacts/DefaultClientArtifactsProvider.ts +56 -0
- package/artifacts/IClientArtifactsProvider.ts +30 -0
- package/artifacts/index.ts +5 -0
- package/connection/ChronicleConnection.ts +226 -0
- package/connection/ChronicleConnectionString.ts +4 -0
- package/connection/ChronicleServices.ts +4 -0
- package/connection/ConnectionLifecycle.ts +77 -0
- package/connection/DateTimeOffset.ts +4 -0
- package/connection/Guid.ts +4 -0
- package/connection/TokenProvider.ts +13 -0
- package/connection/index.ts +9 -0
- package/dist/ChronicleClient.d.ts +55 -0
- package/dist/ChronicleClient.d.ts.map +1 -0
- package/dist/ChronicleClient.js +396 -0
- package/dist/ChronicleClient.js.map +1 -0
- package/dist/ChronicleOptions.d.ts +54 -0
- package/dist/ChronicleOptions.d.ts.map +1 -0
- package/dist/ChronicleOptions.js +75 -0
- package/dist/ChronicleOptions.js.map +1 -0
- package/dist/EventSequences/AppendError.d.ts +8 -0
- package/dist/EventSequences/AppendError.d.ts.map +1 -0
- package/dist/EventSequences/AppendError.js +4 -0
- package/dist/EventSequences/AppendError.js.map +1 -0
- package/dist/EventSequences/AppendOptions.d.ts +11 -0
- package/dist/EventSequences/AppendOptions.d.ts.map +1 -0
- package/dist/EventSequences/AppendOptions.js +4 -0
- package/dist/EventSequences/AppendOptions.js.map +1 -0
- package/dist/EventSequences/AppendResult.d.ts +17 -0
- package/dist/EventSequences/AppendResult.d.ts.map +1 -0
- package/dist/EventSequences/AppendResult.js +4 -0
- package/dist/EventSequences/AppendResult.js.map +1 -0
- package/dist/EventSequences/ConstraintViolation.d.ts +12 -0
- package/dist/EventSequences/ConstraintViolation.d.ts.map +1 -0
- package/dist/EventSequences/ConstraintViolation.js +4 -0
- package/dist/EventSequences/ConstraintViolation.js.map +1 -0
- package/dist/EventSequences/EventLog.d.ts +11 -0
- package/dist/EventSequences/EventLog.d.ts.map +1 -0
- package/dist/EventSequences/EventLog.js +14 -0
- package/dist/EventSequences/EventLog.js.map +1 -0
- package/dist/EventSequences/EventSequence.d.ts +27 -0
- package/dist/EventSequences/EventSequence.d.ts.map +1 -0
- package/dist/EventSequences/EventSequence.js +337 -0
- package/dist/EventSequences/EventSequence.js.map +1 -0
- package/dist/EventSequences/EventSequenceId.d.ts +12 -0
- package/dist/EventSequences/EventSequenceId.d.ts.map +1 -0
- package/dist/EventSequences/EventSequenceId.js +18 -0
- package/dist/EventSequences/EventSequenceId.js.map +1 -0
- package/dist/EventSequences/EventSequenceNumber.d.ts +26 -0
- package/dist/EventSequences/EventSequenceNumber.d.ts.map +1 -0
- package/dist/EventSequences/EventSequenceNumber.js +36 -0
- package/dist/EventSequences/EventSequenceNumber.js.map +1 -0
- package/dist/EventSequences/IEventLog.d.ts +8 -0
- package/dist/EventSequences/IEventLog.d.ts.map +1 -0
- package/dist/EventSequences/IEventLog.js +4 -0
- package/dist/EventSequences/IEventLog.js.map +1 -0
- package/dist/EventSequences/IEventSequence.d.ts +40 -0
- package/dist/EventSequences/IEventSequence.d.ts.map +1 -0
- package/dist/EventSequences/IEventSequence.js +4 -0
- package/dist/EventSequences/IEventSequence.js.map +1 -0
- package/dist/EventSequences/index.d.ts +11 -0
- package/dist/EventSequences/index.d.ts.map +1 -0
- package/dist/EventSequences/index.js +7 -0
- package/dist/EventSequences/index.js.map +1 -0
- package/dist/EventStore.d.ts +42 -0
- package/dist/EventStore.d.ts.map +1 -0
- package/dist/EventStore.js +111 -0
- package/dist/EventStore.js.map +1 -0
- package/dist/EventStoreName.d.ts +10 -0
- package/dist/EventStoreName.d.ts.map +1 -0
- package/dist/EventStoreName.js +16 -0
- package/dist/EventStoreName.js.map +1 -0
- package/dist/EventStoreNamespaceName.d.ts +12 -0
- package/dist/EventStoreNamespaceName.d.ts.map +1 -0
- package/dist/EventStoreNamespaceName.js +18 -0
- package/dist/EventStoreNamespaceName.js.map +1 -0
- package/dist/Events/AppendedEvent.d.ts +14 -0
- package/dist/Events/AppendedEvent.d.ts.map +1 -0
- package/dist/Events/AppendedEvent.js +4 -0
- package/dist/Events/AppendedEvent.js.map +1 -0
- package/dist/Events/CausationEntry.d.ts +10 -0
- package/dist/Events/CausationEntry.d.ts.map +1 -0
- package/dist/Events/CausationEntry.js +4 -0
- package/dist/Events/CausationEntry.js.map +1 -0
- package/dist/Events/Constraints/ConstraintBuilder.d.ts +42 -0
- package/dist/Events/Constraints/ConstraintBuilder.d.ts.map +1 -0
- package/dist/Events/Constraints/ConstraintBuilder.js +55 -0
- package/dist/Events/Constraints/ConstraintBuilder.js.map +1 -0
- package/dist/Events/Constraints/ConstraintId.d.ts +10 -0
- package/dist/Events/Constraints/ConstraintId.d.ts.map +1 -0
- package/dist/Events/Constraints/ConstraintId.js +16 -0
- package/dist/Events/Constraints/ConstraintId.js.map +1 -0
- package/dist/Events/Constraints/Constraints.d.ts +27 -0
- package/dist/Events/Constraints/Constraints.d.ts.map +1 -0
- package/dist/Events/Constraints/Constraints.js +104 -0
- package/dist/Events/Constraints/Constraints.js.map +1 -0
- package/dist/Events/Constraints/IConstraint.d.ts +15 -0
- package/dist/Events/Constraints/IConstraint.d.ts.map +1 -0
- package/dist/Events/Constraints/IConstraint.js +4 -0
- package/dist/Events/Constraints/IConstraint.js.map +1 -0
- package/dist/Events/Constraints/IConstraintBuilder.d.ts +37 -0
- package/dist/Events/Constraints/IConstraintBuilder.d.ts.map +1 -0
- package/dist/Events/Constraints/IConstraintBuilder.js +4 -0
- package/dist/Events/Constraints/IConstraintBuilder.js.map +1 -0
- package/dist/Events/Constraints/IConstraints.d.ts +23 -0
- package/dist/Events/Constraints/IConstraints.d.ts.map +1 -0
- package/dist/Events/Constraints/IConstraints.js +4 -0
- package/dist/Events/Constraints/IConstraints.js.map +1 -0
- package/dist/Events/Constraints/IUniqueConstraintBuilder.d.ts +44 -0
- package/dist/Events/Constraints/IUniqueConstraintBuilder.d.ts.map +1 -0
- package/dist/Events/Constraints/IUniqueConstraintBuilder.js +4 -0
- package/dist/Events/Constraints/IUniqueConstraintBuilder.js.map +1 -0
- package/dist/Events/Constraints/UniqueConstraintBuilder.d.ts +42 -0
- package/dist/Events/Constraints/UniqueConstraintBuilder.d.ts.map +1 -0
- package/dist/Events/Constraints/UniqueConstraintBuilder.js +72 -0
- package/dist/Events/Constraints/UniqueConstraintBuilder.js.map +1 -0
- package/dist/Events/Constraints/constraint.d.ts +29 -0
- package/dist/Events/Constraints/constraint.d.ts.map +1 -0
- package/dist/Events/Constraints/constraint.js +39 -0
- package/dist/Events/Constraints/constraint.js.map +1 -0
- package/dist/Events/Constraints/index.d.ts +13 -0
- package/dist/Events/Constraints/index.d.ts.map +1 -0
- package/dist/Events/Constraints/index.js +8 -0
- package/dist/Events/Constraints/index.js.map +1 -0
- package/dist/Events/EventContext.d.ts +20 -0
- package/dist/Events/EventContext.d.ts.map +1 -0
- package/dist/Events/EventContext.js +4 -0
- package/dist/Events/EventContext.js.map +1 -0
- package/dist/Events/EventType.d.ts +23 -0
- package/dist/Events/EventType.d.ts.map +1 -0
- package/dist/Events/EventType.js +40 -0
- package/dist/Events/EventType.js.map +1 -0
- package/dist/Events/EventTypeGeneration.d.ts +14 -0
- package/dist/Events/EventTypeGeneration.d.ts.map +1 -0
- package/dist/Events/EventTypeGeneration.js +20 -0
- package/dist/Events/EventTypeGeneration.js.map +1 -0
- package/dist/Events/EventTypeId.d.ts +14 -0
- package/dist/Events/EventTypeId.d.ts.map +1 -0
- package/dist/Events/EventTypeId.js +20 -0
- package/dist/Events/EventTypeId.js.map +1 -0
- package/dist/Events/EventTypes.d.ts +33 -0
- package/dist/Events/EventTypes.d.ts.map +1 -0
- package/dist/Events/EventTypes.js +83 -0
- package/dist/Events/EventTypes.js.map +1 -0
- package/dist/Events/IEventTypes.d.ts +32 -0
- package/dist/Events/IEventTypes.d.ts.map +1 -0
- package/dist/Events/IEventTypes.js +4 -0
- package/dist/Events/IEventTypes.js.map +1 -0
- package/dist/Events/eventTypeDecorator.d.ts +71 -0
- package/dist/Events/eventTypeDecorator.d.ts.map +1 -0
- package/dist/Events/eventTypeDecorator.js +86 -0
- package/dist/Events/eventTypeDecorator.js.map +1 -0
- package/dist/Events/index.d.ts +12 -0
- package/dist/Events/index.d.ts.map +1 -0
- package/dist/Events/index.js +9 -0
- package/dist/Events/index.js.map +1 -0
- package/dist/Grpc.d.ts +19 -0
- package/dist/Grpc.d.ts.map +1 -0
- package/dist/Grpc.js +33 -0
- package/dist/Grpc.js.map +1 -0
- package/dist/IChronicleClient.d.ts +33 -0
- package/dist/IChronicleClient.d.ts.map +1 -0
- package/dist/IChronicleClient.js +4 -0
- package/dist/IChronicleClient.js.map +1 -0
- package/dist/IEventStore.d.ts +44 -0
- package/dist/IEventStore.d.ts.map +1 -0
- package/dist/IEventStore.js +4 -0
- package/dist/IEventStore.js.map +1 -0
- package/dist/Metrics.d.ts +70 -0
- package/dist/Metrics.d.ts.map +1 -0
- package/dist/Metrics.js +100 -0
- package/dist/Metrics.js.map +1 -0
- package/dist/Observation/ObserverId.d.ts +10 -0
- package/dist/Observation/ObserverId.d.ts.map +1 -0
- package/dist/Observation/ObserverId.js +16 -0
- package/dist/Observation/ObserverId.js.map +1 -0
- package/dist/Observation/ObserverRunningState.d.ts +24 -0
- package/dist/Observation/ObserverRunningState.d.ts.map +1 -0
- package/dist/Observation/ObserverRunningState.js +27 -0
- package/dist/Observation/ObserverRunningState.js.map +1 -0
- package/dist/Observation/index.d.ts +3 -0
- package/dist/Observation/index.d.ts.map +1 -0
- package/dist/Observation/index.js +5 -0
- package/dist/Observation/index.js.map +1 -0
- package/dist/Projections/IProjections.d.ts +16 -0
- package/dist/Projections/IProjections.d.ts.map +1 -0
- package/dist/Projections/IProjections.js +4 -0
- package/dist/Projections/IProjections.js.map +1 -0
- package/dist/Projections/ProjectionId.d.ts +10 -0
- package/dist/Projections/ProjectionId.d.ts.map +1 -0
- package/dist/Projections/ProjectionId.js +16 -0
- package/dist/Projections/ProjectionId.js.map +1 -0
- package/dist/Projections/Projections.d.ts +36 -0
- package/dist/Projections/Projections.d.ts.map +1 -0
- package/dist/Projections/Projections.js +390 -0
- package/dist/Projections/Projections.js.map +1 -0
- package/dist/Projections/declarative/AllSetBuilder.d.ts +20 -0
- package/dist/Projections/declarative/AllSetBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/AllSetBuilder.js +37 -0
- package/dist/Projections/declarative/AllSetBuilder.js.map +1 -0
- package/dist/Projections/declarative/FromBuilder.d.ts +56 -0
- package/dist/Projections/declarative/FromBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/FromBuilder.js +105 -0
- package/dist/Projections/declarative/FromBuilder.js.map +1 -0
- package/dist/Projections/declarative/FromEveryBuilder.d.ts +22 -0
- package/dist/Projections/declarative/FromEveryBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/FromEveryBuilder.js +28 -0
- package/dist/Projections/declarative/FromEveryBuilder.js.map +1 -0
- package/dist/Projections/declarative/IAddBuilder.d.ts +15 -0
- package/dist/Projections/declarative/IAddBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/IAddBuilder.js +4 -0
- package/dist/Projections/declarative/IAddBuilder.js.map +1 -0
- package/dist/Projections/declarative/IAddChildBuilder.d.ts +21 -0
- package/dist/Projections/declarative/IAddChildBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/IAddChildBuilder.js +4 -0
- package/dist/Projections/declarative/IAddChildBuilder.js.map +1 -0
- package/dist/Projections/declarative/IAllSetBuilder.d.ts +26 -0
- package/dist/Projections/declarative/IAllSetBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/IAllSetBuilder.js +4 -0
- package/dist/Projections/declarative/IAllSetBuilder.js.map +1 -0
- package/dist/Projections/declarative/IChildrenBuilder.d.ts +22 -0
- package/dist/Projections/declarative/IChildrenBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/IChildrenBuilder.js +4 -0
- package/dist/Projections/declarative/IChildrenBuilder.js.map +1 -0
- package/dist/Projections/declarative/ICompositeKeyBuilder.d.ts +16 -0
- package/dist/Projections/declarative/ICompositeKeyBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/ICompositeKeyBuilder.js +4 -0
- package/dist/Projections/declarative/ICompositeKeyBuilder.js.map +1 -0
- package/dist/Projections/declarative/IFromBuilder.d.ts +9 -0
- package/dist/Projections/declarative/IFromBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/IFromBuilder.js +4 -0
- package/dist/Projections/declarative/IFromBuilder.js.map +1 -0
- package/dist/Projections/declarative/IFromEveryBuilder.d.ts +20 -0
- package/dist/Projections/declarative/IFromEveryBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/IFromEveryBuilder.js +4 -0
- package/dist/Projections/declarative/IFromEveryBuilder.js.map +1 -0
- package/dist/Projections/declarative/IJoinBuilder.d.ts +16 -0
- package/dist/Projections/declarative/IJoinBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/IJoinBuilder.js +4 -0
- package/dist/Projections/declarative/IJoinBuilder.js.map +1 -0
- package/dist/Projections/declarative/INestedBuilder.d.ts +15 -0
- package/dist/Projections/declarative/INestedBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/INestedBuilder.js +4 -0
- package/dist/Projections/declarative/INestedBuilder.js.map +1 -0
- package/dist/Projections/declarative/IProjectionBuilder.d.ts +80 -0
- package/dist/Projections/declarative/IProjectionBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/IProjectionBuilder.js +4 -0
- package/dist/Projections/declarative/IProjectionBuilder.js.map +1 -0
- package/dist/Projections/declarative/IProjectionBuilderFor.d.ts +31 -0
- package/dist/Projections/declarative/IProjectionBuilderFor.d.ts.map +1 -0
- package/dist/Projections/declarative/IProjectionBuilderFor.js +4 -0
- package/dist/Projections/declarative/IProjectionBuilderFor.js.map +1 -0
- package/dist/Projections/declarative/IProjectionFor.d.ts +15 -0
- package/dist/Projections/declarative/IProjectionFor.d.ts.map +1 -0
- package/dist/Projections/declarative/IProjectionFor.js +4 -0
- package/dist/Projections/declarative/IProjectionFor.js.map +1 -0
- package/dist/Projections/declarative/IReadModelPropertiesBuilder.d.ts +111 -0
- package/dist/Projections/declarative/IReadModelPropertiesBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/IReadModelPropertiesBuilder.js +4 -0
- package/dist/Projections/declarative/IReadModelPropertiesBuilder.js.map +1 -0
- package/dist/Projections/declarative/IRemovedWithBuilder.d.ts +21 -0
- package/dist/Projections/declarative/IRemovedWithBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/IRemovedWithBuilder.js +4 -0
- package/dist/Projections/declarative/IRemovedWithBuilder.js.map +1 -0
- package/dist/Projections/declarative/IRemovedWithJoinBuilder.d.ts +21 -0
- package/dist/Projections/declarative/IRemovedWithJoinBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/IRemovedWithJoinBuilder.js +4 -0
- package/dist/Projections/declarative/IRemovedWithJoinBuilder.js.map +1 -0
- package/dist/Projections/declarative/ISetBuilder.d.ts +32 -0
- package/dist/Projections/declarative/ISetBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/ISetBuilder.js +4 -0
- package/dist/Projections/declarative/ISetBuilder.js.map +1 -0
- package/dist/Projections/declarative/ISubtractBuilder.d.ts +15 -0
- package/dist/Projections/declarative/ISubtractBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/ISubtractBuilder.js +4 -0
- package/dist/Projections/declarative/ISubtractBuilder.js.map +1 -0
- package/dist/Projections/declarative/JoinBuilder.d.ts +58 -0
- package/dist/Projections/declarative/JoinBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/JoinBuilder.js +107 -0
- package/dist/Projections/declarative/JoinBuilder.js.map +1 -0
- package/dist/Projections/declarative/ProjectionBuilderFor.d.ts +68 -0
- package/dist/Projections/declarative/ProjectionBuilderFor.d.ts.map +1 -0
- package/dist/Projections/declarative/ProjectionBuilderFor.js +207 -0
- package/dist/Projections/declarative/ProjectionBuilderFor.js.map +1 -0
- package/dist/Projections/declarative/RemovedWithBuilder.d.ts +22 -0
- package/dist/Projections/declarative/RemovedWithBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/RemovedWithBuilder.js +28 -0
- package/dist/Projections/declarative/RemovedWithBuilder.js.map +1 -0
- package/dist/Projections/declarative/RemovedWithJoinBuilder.d.ts +22 -0
- package/dist/Projections/declarative/RemovedWithJoinBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/RemovedWithJoinBuilder.js +31 -0
- package/dist/Projections/declarative/RemovedWithJoinBuilder.js.map +1 -0
- package/dist/Projections/declarative/SetBuilder.d.ts +23 -0
- package/dist/Projections/declarative/SetBuilder.d.ts.map +1 -0
- package/dist/Projections/declarative/SetBuilder.js +43 -0
- package/dist/Projections/declarative/SetBuilder.js.map +1 -0
- package/dist/Projections/declarative/index.d.ts +24 -0
- package/dist/Projections/declarative/index.d.ts.map +1 -0
- package/dist/Projections/declarative/index.js +8 -0
- package/dist/Projections/declarative/index.js.map +1 -0
- package/dist/Projections/declarative/projection.d.ts +31 -0
- package/dist/Projections/declarative/projection.d.ts.map +1 -0
- package/dist/Projections/declarative/projection.js +39 -0
- package/dist/Projections/declarative/projection.js.map +1 -0
- package/dist/Projections/index.d.ts +6 -0
- package/dist/Projections/index.d.ts.map +1 -0
- package/dist/Projections/index.js +7 -0
- package/dist/Projections/index.js.map +1 -0
- package/dist/Projections/modelBound/FromEventMetadata.d.ts +7 -0
- package/dist/Projections/modelBound/FromEventMetadata.d.ts.map +1 -0
- package/dist/Projections/modelBound/FromEventMetadata.js +4 -0
- package/dist/Projections/modelBound/FromEventMetadata.js.map +1 -0
- package/dist/Projections/modelBound/FromEventOptions.d.ts +10 -0
- package/dist/Projections/modelBound/FromEventOptions.d.ts.map +1 -0
- package/dist/Projections/modelBound/FromEventOptions.js +4 -0
- package/dist/Projections/modelBound/FromEventOptions.js.map +1 -0
- package/dist/Projections/modelBound/addFrom.d.ts +23 -0
- package/dist/Projections/modelBound/addFrom.d.ts.map +1 -0
- package/dist/Projections/modelBound/addFrom.js +30 -0
- package/dist/Projections/modelBound/addFrom.js.map +1 -0
- package/dist/Projections/modelBound/childrenFrom.d.ts +29 -0
- package/dist/Projections/modelBound/childrenFrom.d.ts.map +1 -0
- package/dist/Projections/modelBound/childrenFrom.js +32 -0
- package/dist/Projections/modelBound/childrenFrom.js.map +1 -0
- package/dist/Projections/modelBound/clearWith.d.ts +28 -0
- package/dist/Projections/modelBound/clearWith.d.ts.map +1 -0
- package/dist/Projections/modelBound/clearWith.js +45 -0
- package/dist/Projections/modelBound/clearWith.js.map +1 -0
- package/dist/Projections/modelBound/count.d.ts +23 -0
- package/dist/Projections/modelBound/count.d.ts.map +1 -0
- package/dist/Projections/modelBound/count.js +30 -0
- package/dist/Projections/modelBound/count.js.map +1 -0
- package/dist/Projections/modelBound/decrement.d.ts +23 -0
- package/dist/Projections/modelBound/decrement.d.ts.map +1 -0
- package/dist/Projections/modelBound/decrement.js +30 -0
- package/dist/Projections/modelBound/decrement.js.map +1 -0
- package/dist/Projections/modelBound/fromEvent.d.ts +23 -0
- package/dist/Projections/modelBound/fromEvent.d.ts.map +1 -0
- package/dist/Projections/modelBound/fromEvent.js +34 -0
- package/dist/Projections/modelBound/fromEvent.js.map +1 -0
- package/dist/Projections/modelBound/fromEvery.d.ts +23 -0
- package/dist/Projections/modelBound/fromEvery.d.ts.map +1 -0
- package/dist/Projections/modelBound/fromEvery.js +28 -0
- package/dist/Projections/modelBound/fromEvery.js.map +1 -0
- package/dist/Projections/modelBound/increment.d.ts +23 -0
- package/dist/Projections/modelBound/increment.d.ts.map +1 -0
- package/dist/Projections/modelBound/increment.js +30 -0
- package/dist/Projections/modelBound/increment.js.map +1 -0
- package/dist/Projections/modelBound/index.d.ts +36 -0
- package/dist/Projections/modelBound/index.d.ts.map +1 -0
- package/dist/Projections/modelBound/index.js +21 -0
- package/dist/Projections/modelBound/index.js.map +1 -0
- package/dist/Projections/modelBound/join.d.ts +26 -0
- package/dist/Projections/modelBound/join.d.ts.map +1 -0
- package/dist/Projections/modelBound/join.js +31 -0
- package/dist/Projections/modelBound/join.js.map +1 -0
- package/dist/Projections/modelBound/modelBound.d.ts +31 -0
- package/dist/Projections/modelBound/modelBound.d.ts.map +1 -0
- package/dist/Projections/modelBound/modelBound.js +39 -0
- package/dist/Projections/modelBound/modelBound.js.map +1 -0
- package/dist/Projections/modelBound/nested.d.ts +16 -0
- package/dist/Projections/modelBound/nested.d.ts.map +1 -0
- package/dist/Projections/modelBound/nested.js +26 -0
- package/dist/Projections/modelBound/nested.js.map +1 -0
- package/dist/Projections/modelBound/notRewindable.d.ts +14 -0
- package/dist/Projections/modelBound/notRewindable.d.ts.map +1 -0
- package/dist/Projections/modelBound/notRewindable.js +21 -0
- package/dist/Projections/modelBound/notRewindable.js.map +1 -0
- package/dist/Projections/modelBound/removedWith.d.ts +34 -0
- package/dist/Projections/modelBound/removedWith.d.ts.map +1 -0
- package/dist/Projections/modelBound/removedWith.js +47 -0
- package/dist/Projections/modelBound/removedWith.js.map +1 -0
- package/dist/Projections/modelBound/removedWithJoin.d.ts +29 -0
- package/dist/Projections/modelBound/removedWithJoin.d.ts.map +1 -0
- package/dist/Projections/modelBound/removedWithJoin.js +44 -0
- package/dist/Projections/modelBound/removedWithJoin.js.map +1 -0
- package/dist/Projections/modelBound/setFrom.d.ts +23 -0
- package/dist/Projections/modelBound/setFrom.d.ts.map +1 -0
- package/dist/Projections/modelBound/setFrom.js +30 -0
- package/dist/Projections/modelBound/setFrom.js.map +1 -0
- package/dist/Projections/modelBound/setFromContext.d.ts +23 -0
- package/dist/Projections/modelBound/setFromContext.d.ts.map +1 -0
- package/dist/Projections/modelBound/setFromContext.js +30 -0
- package/dist/Projections/modelBound/setFromContext.js.map +1 -0
- package/dist/Projections/modelBound/setValue.d.ts +23 -0
- package/dist/Projections/modelBound/setValue.d.ts.map +1 -0
- package/dist/Projections/modelBound/setValue.js +30 -0
- package/dist/Projections/modelBound/setValue.js.map +1 -0
- package/dist/Projections/modelBound/subtractFrom.d.ts +23 -0
- package/dist/Projections/modelBound/subtractFrom.d.ts.map +1 -0
- package/dist/Projections/modelBound/subtractFrom.js +30 -0
- package/dist/Projections/modelBound/subtractFrom.js.map +1 -0
- package/dist/Reactors/IReactors.d.ts +16 -0
- package/dist/Reactors/IReactors.d.ts.map +1 -0
- package/dist/Reactors/IReactors.js +4 -0
- package/dist/Reactors/IReactors.js.map +1 -0
- package/dist/Reactors/ReactorId.d.ts +10 -0
- package/dist/Reactors/ReactorId.d.ts.map +1 -0
- package/dist/Reactors/ReactorId.js +16 -0
- package/dist/Reactors/ReactorId.js.map +1 -0
- package/dist/Reactors/Reactors.d.ts +38 -0
- package/dist/Reactors/Reactors.d.ts.map +1 -0
- package/dist/Reactors/Reactors.js +279 -0
- package/dist/Reactors/Reactors.js.map +1 -0
- package/dist/Reactors/index.d.ts +6 -0
- package/dist/Reactors/index.d.ts.map +1 -0
- package/dist/Reactors/index.js +6 -0
- package/dist/Reactors/index.js.map +1 -0
- package/dist/Reactors/reactor.d.ts +47 -0
- package/dist/Reactors/reactor.d.ts.map +1 -0
- package/dist/Reactors/reactor.js +55 -0
- package/dist/Reactors/reactor.js.map +1 -0
- package/dist/ReadModels/ReadModelId.d.ts +10 -0
- package/dist/ReadModels/ReadModelId.d.ts.map +1 -0
- package/dist/ReadModels/ReadModelId.js +16 -0
- package/dist/ReadModels/ReadModelId.js.map +1 -0
- package/dist/ReadModels/index.d.ts +4 -0
- package/dist/ReadModels/index.d.ts.map +1 -0
- package/dist/ReadModels/index.js +5 -0
- package/dist/ReadModels/index.js.map +1 -0
- package/dist/ReadModels/readModel.d.ts +33 -0
- package/dist/ReadModels/readModel.d.ts.map +1 -0
- package/dist/ReadModels/readModel.js +64 -0
- package/dist/ReadModels/readModel.js.map +1 -0
- package/dist/Reducers/IReducers.d.ts +16 -0
- package/dist/Reducers/IReducers.d.ts.map +1 -0
- package/dist/Reducers/IReducers.js +4 -0
- package/dist/Reducers/IReducers.js.map +1 -0
- package/dist/Reducers/ReducerId.d.ts +10 -0
- package/dist/Reducers/ReducerId.d.ts.map +1 -0
- package/dist/Reducers/ReducerId.js +16 -0
- package/dist/Reducers/ReducerId.js.map +1 -0
- package/dist/Reducers/Reducers.d.ts +38 -0
- package/dist/Reducers/Reducers.d.ts.map +1 -0
- package/dist/Reducers/Reducers.js +279 -0
- package/dist/Reducers/Reducers.js.map +1 -0
- package/dist/Reducers/index.d.ts +6 -0
- package/dist/Reducers/index.d.ts.map +1 -0
- package/dist/Reducers/index.js +6 -0
- package/dist/Reducers/index.js.map +1 -0
- package/dist/Reducers/reducer.d.ts +51 -0
- package/dist/Reducers/reducer.d.ts.map +1 -0
- package/dist/Reducers/reducer.js +59 -0
- package/dist/Reducers/reducer.js.map +1 -0
- package/dist/Schemas/JsonSchema.d.ts +16 -0
- package/dist/Schemas/JsonSchema.d.ts.map +1 -0
- package/dist/Schemas/JsonSchema.js +4 -0
- package/dist/Schemas/JsonSchema.js.map +1 -0
- package/dist/Schemas/JsonSchemaGenerator.d.ts +26 -0
- package/dist/Schemas/JsonSchemaGenerator.d.ts.map +1 -0
- package/dist/Schemas/JsonSchemaGenerator.js +90 -0
- package/dist/Schemas/JsonSchemaGenerator.js.map +1 -0
- package/dist/Schemas/index.d.ts +4 -0
- package/dist/Schemas/index.d.ts.map +1 -0
- package/dist/Schemas/index.js +5 -0
- package/dist/Schemas/index.js.map +1 -0
- package/dist/Schemas/jsonSchemaProperty.d.ts +13 -0
- package/dist/Schemas/jsonSchemaProperty.d.ts.map +1 -0
- package/dist/Schemas/jsonSchemaProperty.js +22 -0
- package/dist/Schemas/jsonSchemaProperty.js.map +1 -0
- package/dist/Tracing.d.ts +16 -0
- package/dist/Tracing.d.ts.map +1 -0
- package/dist/Tracing.js +19 -0
- package/dist/Tracing.js.map +1 -0
- package/dist/artifacts/DefaultClientArtifactsProvider.d.ts +31 -0
- package/dist/artifacts/DefaultClientArtifactsProvider.d.ts.map +1 -0
- package/dist/artifacts/DefaultClientArtifactsProvider.js +48 -0
- package/dist/artifacts/DefaultClientArtifactsProvider.js.map +1 -0
- package/dist/artifacts/IClientArtifactsProvider.d.ts +21 -0
- package/dist/artifacts/IClientArtifactsProvider.d.ts.map +1 -0
- package/dist/artifacts/IClientArtifactsProvider.js +4 -0
- package/dist/artifacts/IClientArtifactsProvider.js.map +1 -0
- package/dist/artifacts/index.d.ts +3 -0
- package/dist/artifacts/index.d.ts.map +1 -0
- package/dist/artifacts/index.js +4 -0
- package/dist/artifacts/index.js.map +1 -0
- package/dist/connection/ChronicleConnection.d.ts +117 -0
- package/dist/connection/ChronicleConnection.d.ts.map +1 -0
- package/dist/connection/ChronicleConnection.js +194 -0
- package/dist/connection/ChronicleConnection.js.map +1 -0
- package/dist/connection/ChronicleConnectionString.d.ts +2 -0
- package/dist/connection/ChronicleConnectionString.d.ts.map +1 -0
- package/dist/connection/ChronicleConnectionString.js +4 -0
- package/dist/connection/ChronicleConnectionString.js.map +1 -0
- package/dist/connection/ChronicleServices.d.ts +2 -0
- package/dist/connection/ChronicleServices.d.ts.map +1 -0
- package/dist/connection/ChronicleServices.js +4 -0
- package/dist/connection/ChronicleServices.js.map +1 -0
- package/dist/connection/ConnectionLifecycle.d.ts +41 -0
- package/dist/connection/ConnectionLifecycle.d.ts.map +1 -0
- package/dist/connection/ConnectionLifecycle.js +66 -0
- package/dist/connection/ConnectionLifecycle.js.map +1 -0
- package/dist/connection/DateTimeOffset.d.ts +2 -0
- package/dist/connection/DateTimeOffset.d.ts.map +1 -0
- package/dist/connection/DateTimeOffset.js +4 -0
- package/dist/connection/DateTimeOffset.js.map +1 -0
- package/dist/connection/Guid.d.ts +2 -0
- package/dist/connection/Guid.d.ts.map +1 -0
- package/dist/connection/Guid.js +4 -0
- package/dist/connection/Guid.js.map +1 -0
- package/dist/connection/TokenProvider.d.ts +5 -0
- package/dist/connection/TokenProvider.d.ts.map +1 -0
- package/dist/connection/TokenProvider.js +4 -0
- package/dist/connection/TokenProvider.js.map +1 -0
- package/dist/connection/index.d.ts +7 -0
- package/dist/connection/index.d.ts.map +1 -0
- package/dist/connection/index.js +7 -0
- package/dist/connection/index.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/DecoratorType.d.ts +20 -0
- package/dist/types/DecoratorType.d.ts.map +1 -0
- package/dist/types/DecoratorType.js +23 -0
- package/dist/types/DecoratorType.js.map +1 -0
- package/dist/types/TypeDiscoverer.d.ts +54 -0
- package/dist/types/TypeDiscoverer.d.ts.map +1 -0
- package/dist/types/TypeDiscoverer.js +91 -0
- package/dist/types/TypeDiscoverer.js.map +1 -0
- package/dist/types/TypeIntrospector.d.ts +30 -0
- package/dist/types/TypeIntrospector.d.ts.map +1 -0
- package/dist/types/TypeIntrospector.js +154 -0
- package/dist/types/TypeIntrospector.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/index.ts +24 -0
- package/package.json +38 -0
- package/types/DecoratorType.ts +28 -0
- package/types/TypeDiscoverer.ts +109 -0
- package/types/TypeIntrospector.ts +176 -0
- package/types/index.ts +6 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Defines a builder for configuring an add operation on a read model property.
|
|
8
|
+
* @template TEvent - The event type.
|
|
9
|
+
* @template TParentBuilder - The parent builder type for fluent return.
|
|
10
|
+
*/
|
|
11
|
+
export interface IAddBuilder<TEvent, TParentBuilder> {
|
|
12
|
+
/**
|
|
13
|
+
* Adds the value of the specified event property to the read model property.
|
|
14
|
+
* @param eventPropertyAccessor - Accessor for the source property on the event.
|
|
15
|
+
* @returns The parent builder for fluent chaining.
|
|
16
|
+
*/
|
|
17
|
+
with(eventPropertyAccessor: PropertyAccessor<TEvent>): TParentBuilder;
|
|
18
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Defines a builder for configuring how a child model is added from an event.
|
|
8
|
+
* @template TChildModel - The child model type.
|
|
9
|
+
* @template TEvent - The event type.
|
|
10
|
+
*/
|
|
11
|
+
export interface IAddChildBuilder<TChildModel, TEvent> {
|
|
12
|
+
/**
|
|
13
|
+
* Specifies the property on the child model used to identify instances in the collection.
|
|
14
|
+
* @param childPropertyAccessor - Accessor for the identifying property on the child model.
|
|
15
|
+
* @returns This builder for fluent chaining.
|
|
16
|
+
*/
|
|
17
|
+
identifiedBy(childPropertyAccessor: PropertyAccessor<TChildModel>): IAddChildBuilder<TChildModel, TEvent>;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Specifies the event property used as the key when adding a child.
|
|
21
|
+
* @param eventPropertyAccessor - Accessor for the key property on the event.
|
|
22
|
+
* @returns This builder for fluent chaining.
|
|
23
|
+
*/
|
|
24
|
+
usingKey(eventPropertyAccessor: PropertyAccessor<TEvent>): IAddChildBuilder<TChildModel, TEvent>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Defines a builder for set operations that apply to all events (fromEvery).
|
|
8
|
+
* @template TReadModel - The read model type.
|
|
9
|
+
* @template TParentBuilder - The parent builder type for fluent return.
|
|
10
|
+
*/
|
|
11
|
+
export interface IAllSetBuilder<TReadModel, TParentBuilder> {
|
|
12
|
+
/**
|
|
13
|
+
* Maps the value to the specified read model property.
|
|
14
|
+
* @param readModelPropertyAccessor - Accessor for the target property on the read model.
|
|
15
|
+
* @returns The parent builder for fluent chaining.
|
|
16
|
+
*/
|
|
17
|
+
to(readModelPropertyAccessor: PropertyAccessor<TReadModel>): TParentBuilder;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Maps the value from a named event context property.
|
|
21
|
+
* @param contextPropertyName - The name of the event context property to read from.
|
|
22
|
+
* @returns The parent builder for fluent chaining.
|
|
23
|
+
*/
|
|
24
|
+
toEventContextProperty(contextPropertyName: string): TParentBuilder;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Maps the value from the event source identifier.
|
|
28
|
+
* @returns The parent builder for fluent chaining.
|
|
29
|
+
*/
|
|
30
|
+
toEventSourceId(): TParentBuilder;
|
|
31
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
5
|
+
import { IProjectionBuilder } from './IProjectionBuilder';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Defines the builder for a children collection sub-projection.
|
|
9
|
+
* @template TParentReadModel - The parent read model type.
|
|
10
|
+
* @template TChildReadModel - The child read model type.
|
|
11
|
+
*/
|
|
12
|
+
export interface IChildrenBuilder<TParentReadModel, TChildReadModel>
|
|
13
|
+
extends IProjectionBuilder<TChildReadModel, IChildrenBuilder<TParentReadModel, TChildReadModel>> {
|
|
14
|
+
/**
|
|
15
|
+
* Sets the property on the child model that identifies instances in the collection.
|
|
16
|
+
* @param propertyAccessor - Accessor for the identifying property on the child model.
|
|
17
|
+
* @returns This builder for fluent chaining.
|
|
18
|
+
*/
|
|
19
|
+
identifiedBy(
|
|
20
|
+
propertyAccessor: PropertyAccessor<TChildReadModel>
|
|
21
|
+
): IChildrenBuilder<TParentReadModel, TChildReadModel>;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Defines the event and property from which the child is created as a value.
|
|
25
|
+
* @param propertyAccessor - Accessor for the property on the event representing the child.
|
|
26
|
+
* @returns This builder for fluent chaining.
|
|
27
|
+
*/
|
|
28
|
+
fromEventProperty<TEvent>(
|
|
29
|
+
propertyAccessor: PropertyAccessor<TEvent>
|
|
30
|
+
): IChildrenBuilder<TParentReadModel, TChildReadModel>;
|
|
31
|
+
}
|
|
@@ -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
|
+
|
|
4
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Defines a builder for constructing composite keys from multiple event properties.
|
|
8
|
+
* @template TKeyType - The composite key type.
|
|
9
|
+
* @template TEvent - The event type.
|
|
10
|
+
*/
|
|
11
|
+
export interface ICompositeKeyBuilder<TKeyType, TEvent> {
|
|
12
|
+
/**
|
|
13
|
+
* Maps a source event property to a target key property.
|
|
14
|
+
* @param targetPropertyAccessor - Accessor for the property on the key type to populate.
|
|
15
|
+
* @param sourcePropertyAccessor - Accessor for the property on the event to read from.
|
|
16
|
+
* @returns This builder for fluent chaining.
|
|
17
|
+
*/
|
|
18
|
+
set(
|
|
19
|
+
targetPropertyAccessor: PropertyAccessor<TKeyType>,
|
|
20
|
+
sourcePropertyAccessor: PropertyAccessor<TEvent>
|
|
21
|
+
): ICompositeKeyBuilder<TKeyType, TEvent>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { IReadModelPropertiesBuilder } from './IReadModelPropertiesBuilder';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Defines the builder for configuring property mappings from a specific event type.
|
|
8
|
+
* @template TReadModel - The read model type.
|
|
9
|
+
* @template TEvent - The event type.
|
|
10
|
+
*/
|
|
11
|
+
export interface IFromBuilder<TReadModel, TEvent>
|
|
12
|
+
extends IReadModelPropertiesBuilder<TReadModel, TEvent, IFromBuilder<TReadModel, TEvent>> {}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
5
|
+
import { IAllSetBuilder } from './IAllSetBuilder';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Defines the builder for configuring property mappings that apply to every projected event.
|
|
9
|
+
* @template TReadModel - The read model type.
|
|
10
|
+
*/
|
|
11
|
+
export interface IFromEveryBuilder<TReadModel> {
|
|
12
|
+
/**
|
|
13
|
+
* Begins a set operation on the specified read model property.
|
|
14
|
+
* @param readModelPropertyAccessor - Accessor for the read model property to set.
|
|
15
|
+
* @returns An all-set builder for specifying the value source.
|
|
16
|
+
*/
|
|
17
|
+
set(readModelPropertyAccessor: PropertyAccessor<TReadModel>): IAllSetBuilder<TReadModel, IFromEveryBuilder<TReadModel>>;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Excludes child projections from the fromEvery definition.
|
|
21
|
+
* @returns This builder for fluent chaining.
|
|
22
|
+
*/
|
|
23
|
+
excludeChildProjections(): IFromEveryBuilder<TReadModel>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
5
|
+
import { IReadModelPropertiesBuilder } from './IReadModelPropertiesBuilder';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Defines the builder for configuring a join projection from a specific event type.
|
|
9
|
+
* @template TReadModel - The read model type.
|
|
10
|
+
* @template TEvent - The event type.
|
|
11
|
+
*/
|
|
12
|
+
export interface IJoinBuilder<TReadModel, TEvent>
|
|
13
|
+
extends IReadModelPropertiesBuilder<TReadModel, TEvent, IJoinBuilder<TReadModel, TEvent>> {
|
|
14
|
+
/**
|
|
15
|
+
* Sets the property on the read model that forms the relationship for the join.
|
|
16
|
+
* @param readModelPropertyAccessor - Accessor for the read model property to join on.
|
|
17
|
+
* @returns This builder for fluent chaining.
|
|
18
|
+
*/
|
|
19
|
+
on(readModelPropertyAccessor: PropertyAccessor<TReadModel>): IJoinBuilder<TReadModel, TEvent>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { IProjectionBuilder } from './IProjectionBuilder';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Defines the builder for a nested single-object sub-projection.
|
|
8
|
+
* @template TParentReadModel - The parent read model type.
|
|
9
|
+
* @template TNestedReadModel - The nested object read model type.
|
|
10
|
+
*/
|
|
11
|
+
export interface INestedBuilder<TParentReadModel, TNestedReadModel>
|
|
12
|
+
extends IProjectionBuilder<TNestedReadModel, INestedBuilder<TParentReadModel, TNestedReadModel>> {
|
|
13
|
+
/**
|
|
14
|
+
* Specifies the event type that clears (sets to null) this nested object.
|
|
15
|
+
* @param eventType - The event constructor that triggers clearing this nested object.
|
|
16
|
+
* @returns This builder for fluent chaining.
|
|
17
|
+
*/
|
|
18
|
+
clearWith(eventType: Function): INestedBuilder<TParentReadModel, TNestedReadModel>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
5
|
+
import { IChildrenBuilder } from './IChildrenBuilder';
|
|
6
|
+
import { IFromBuilder } from './IFromBuilder';
|
|
7
|
+
import { IFromEveryBuilder } from './IFromEveryBuilder';
|
|
8
|
+
import { IJoinBuilder } from './IJoinBuilder';
|
|
9
|
+
import { INestedBuilder } from './INestedBuilder';
|
|
10
|
+
import { IRemovedWithBuilder } from './IRemovedWithBuilder';
|
|
11
|
+
import { IRemovedWithJoinBuilder } from './IRemovedWithJoinBuilder';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Defines the core builder interface for configuring a projection.
|
|
15
|
+
* @template TReadModel - The read model type this projection produces.
|
|
16
|
+
* @template TBuilder - The concrete builder type for fluent return.
|
|
17
|
+
*/
|
|
18
|
+
export interface IProjectionBuilder<TReadModel, TBuilder> {
|
|
19
|
+
/**
|
|
20
|
+
* Enables automatic property mapping by naming convention.
|
|
21
|
+
* @returns This builder for fluent chaining.
|
|
22
|
+
*/
|
|
23
|
+
autoMap(): TBuilder;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Disables automatic property mapping by naming convention.
|
|
27
|
+
* @returns This builder for fluent chaining.
|
|
28
|
+
*/
|
|
29
|
+
noAutoMap(): TBuilder;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Provides initial property values for newly created read model instances.
|
|
33
|
+
* @param initialValueProvider - A factory function that returns the initial values.
|
|
34
|
+
* @returns This builder for fluent chaining.
|
|
35
|
+
*/
|
|
36
|
+
withInitialValues(initialValueProvider: () => TReadModel): TBuilder;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Configures a projection from a specific event type.
|
|
40
|
+
* @param eventType - The event class constructor.
|
|
41
|
+
* @param builderCallback - Optional callback for configuring property mappings.
|
|
42
|
+
* @returns This builder for fluent chaining.
|
|
43
|
+
*/
|
|
44
|
+
from<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IFromBuilder<TReadModel, TEvent>) => void): TBuilder;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Configures a join projection from a specific event type.
|
|
48
|
+
* @param eventType - The event class constructor.
|
|
49
|
+
* @param builderCallback - Optional callback for configuring the join mappings.
|
|
50
|
+
* @returns This builder for fluent chaining.
|
|
51
|
+
*/
|
|
52
|
+
join<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IJoinBuilder<TReadModel, TEvent>) => void): TBuilder;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Configures property mappings that apply to every projected event type.
|
|
56
|
+
* @param builderCallback - Callback for configuring the fromEvery mappings.
|
|
57
|
+
* @returns This builder for fluent chaining.
|
|
58
|
+
*/
|
|
59
|
+
fromEvery(builderCallback: (builder: IFromEveryBuilder<TReadModel>) => void): TBuilder;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Specifies the event type that causes this read model instance to be removed.
|
|
63
|
+
* @param eventType - The event class constructor.
|
|
64
|
+
* @param builderCallback - Optional callback for configuring the removal behavior.
|
|
65
|
+
* @returns This builder for fluent chaining.
|
|
66
|
+
*/
|
|
67
|
+
removedWith<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IRemovedWithBuilder<TReadModel, TEvent>) => void): TBuilder;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Specifies the joined event type that causes this read model instance to be removed.
|
|
71
|
+
* @param eventType - The event class constructor.
|
|
72
|
+
* @param builderCallback - Optional callback for configuring the removal behavior.
|
|
73
|
+
* @returns This builder for fluent chaining.
|
|
74
|
+
*/
|
|
75
|
+
removedWithJoin<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IRemovedWithJoinBuilder<TReadModel, TEvent>) => void): TBuilder;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Configures a child collection projection on the specified read model property.
|
|
79
|
+
* @param targetPropertyAccessor - Accessor for the collection property on the read model.
|
|
80
|
+
* @param builderCallback - Callback for configuring the children projection.
|
|
81
|
+
* @returns This builder for fluent chaining.
|
|
82
|
+
*/
|
|
83
|
+
children<TChildModel>(
|
|
84
|
+
targetPropertyAccessor: PropertyAccessor<TReadModel>,
|
|
85
|
+
builderCallback: (builder: IChildrenBuilder<TReadModel, TChildModel>) => void
|
|
86
|
+
): TBuilder;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Configures a nested single-object projection on the specified read model property.
|
|
90
|
+
* @param targetPropertyAccessor - Accessor for the nested property on the read model.
|
|
91
|
+
* @param builderCallback - Callback for configuring the nested projection.
|
|
92
|
+
* @returns This builder for fluent chaining.
|
|
93
|
+
*/
|
|
94
|
+
nested<TNestedModel>(
|
|
95
|
+
targetPropertyAccessor: PropertyAccessor<TReadModel>,
|
|
96
|
+
builderCallback: (builder: INestedBuilder<TReadModel, TNestedModel>) => void
|
|
97
|
+
): TBuilder;
|
|
98
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { IProjectionBuilder } from './IProjectionBuilder';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Defines the top-level projection builder for a specific read model type.
|
|
8
|
+
* Extends the core builder with projection-wide configuration options.
|
|
9
|
+
* @template TReadModel - The read model type this projection produces.
|
|
10
|
+
*/
|
|
11
|
+
export interface IProjectionBuilderFor<TReadModel>
|
|
12
|
+
extends IProjectionBuilder<TReadModel, IProjectionBuilderFor<TReadModel>> {
|
|
13
|
+
/**
|
|
14
|
+
* Specifies the event sequence this projection should read from.
|
|
15
|
+
* @param eventSequenceId - The identifier of the event sequence.
|
|
16
|
+
* @returns This builder for fluent chaining.
|
|
17
|
+
*/
|
|
18
|
+
fromEventSequence(eventSequenceId: string): IProjectionBuilderFor<TReadModel>;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Sets the container name used to store read model instances (e.g., collection or table name).
|
|
22
|
+
* @param name - The container name.
|
|
23
|
+
* @returns This builder for fluent chaining.
|
|
24
|
+
*/
|
|
25
|
+
containerName(name: string): IProjectionBuilderFor<TReadModel>;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Marks this projection as not rewindable, preventing historical event replay.
|
|
29
|
+
* @returns This builder for fluent chaining.
|
|
30
|
+
*/
|
|
31
|
+
notRewindable(): IProjectionBuilderFor<TReadModel>;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Marks this projection as passive, meaning it will not actively observe events.
|
|
35
|
+
* @returns This builder for fluent chaining.
|
|
36
|
+
*/
|
|
37
|
+
passive(): IProjectionBuilderFor<TReadModel>;
|
|
38
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { IProjectionBuilderFor } from './IProjectionBuilderFor';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Defines the contract for a declarative projection class bound to a specific read model type.
|
|
8
|
+
* Implement this interface on any class decorated with {@link projection} to provide a type-safe
|
|
9
|
+
* builder-based configuration for the projection.
|
|
10
|
+
* @template TReadModel - The read model type this projection produces.
|
|
11
|
+
*/
|
|
12
|
+
export interface IProjectionFor<TReadModel> {
|
|
13
|
+
/**
|
|
14
|
+
* Configures the projection using the provided builder.
|
|
15
|
+
* @param builder - The projection builder to configure.
|
|
16
|
+
*/
|
|
17
|
+
define(builder: IProjectionBuilderFor<TReadModel>): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
5
|
+
import { ICompositeKeyBuilder } from './ICompositeKeyBuilder';
|
|
6
|
+
import { IAddBuilder } from './IAddBuilder';
|
|
7
|
+
import { IAddChildBuilder } from './IAddChildBuilder';
|
|
8
|
+
import { ISetBuilder } from './ISetBuilder';
|
|
9
|
+
import { ISubtractBuilder } from './ISubtractBuilder';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Defines the common read model property mapping operations shared by from and join builders.
|
|
13
|
+
* @template TReadModel - The read model type.
|
|
14
|
+
* @template TEvent - The event type.
|
|
15
|
+
* @template TBuilder - The concrete builder type for fluent return.
|
|
16
|
+
*/
|
|
17
|
+
export interface IReadModelPropertiesBuilder<TReadModel, TEvent, TBuilder> {
|
|
18
|
+
/**
|
|
19
|
+
* Uses an event property as the key for this projection.
|
|
20
|
+
* @param keyAccessor - Accessor for the event property used as key.
|
|
21
|
+
* @returns This builder for fluent chaining.
|
|
22
|
+
*/
|
|
23
|
+
usingKey(keyAccessor: PropertyAccessor<TEvent>): TBuilder;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Uses a named event context property as the key for this projection.
|
|
27
|
+
* @param contextPropertyName - The name of the context property.
|
|
28
|
+
* @returns This builder for fluent chaining.
|
|
29
|
+
*/
|
|
30
|
+
usingKeyFromContext(contextPropertyName: string): TBuilder;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Uses an event property as the parent key for child projections.
|
|
34
|
+
* @param keyAccessor - Accessor for the event property used as parent key.
|
|
35
|
+
* @returns This builder for fluent chaining.
|
|
36
|
+
*/
|
|
37
|
+
usingParentKey(keyAccessor: PropertyAccessor<TEvent>): TBuilder;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Uses a named event context property as the parent key for child projections.
|
|
41
|
+
* @param contextPropertyName - The name of the context property.
|
|
42
|
+
* @returns This builder for fluent chaining.
|
|
43
|
+
*/
|
|
44
|
+
usingParentKeyFromContext(contextPropertyName: string): TBuilder;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Uses a composite key built from multiple event properties.
|
|
48
|
+
* @param builderCallback - Callback for configuring the composite key builder.
|
|
49
|
+
* @returns This builder for fluent chaining.
|
|
50
|
+
*/
|
|
51
|
+
usingCompositeKey<TKeyType>(builderCallback: (builder: ICompositeKeyBuilder<TKeyType, TEvent>) => void): TBuilder;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Uses a composite parent key built from multiple event properties.
|
|
55
|
+
* @param builderCallback - Callback for configuring the composite key builder.
|
|
56
|
+
* @returns This builder for fluent chaining.
|
|
57
|
+
*/
|
|
58
|
+
usingParentCompositeKey<TKeyType>(builderCallback: (builder: ICompositeKeyBuilder<TKeyType, TEvent>) => void): TBuilder;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Uses a constant string value as the key for this projection.
|
|
62
|
+
* @param value - The constant key value.
|
|
63
|
+
* @returns This builder for fluent chaining.
|
|
64
|
+
*/
|
|
65
|
+
usingConstantKey(value: string): TBuilder;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Uses a constant string value as the parent key for this projection.
|
|
69
|
+
* @param value - The constant parent key value.
|
|
70
|
+
* @returns This builder for fluent chaining.
|
|
71
|
+
*/
|
|
72
|
+
usingConstantParentKey(value: string): TBuilder;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Increments the specified read model property by one when this event occurs.
|
|
76
|
+
* @param readModelPropertyAccessor - Accessor for the read model property to increment.
|
|
77
|
+
* @returns This builder for fluent chaining.
|
|
78
|
+
*/
|
|
79
|
+
increment(readModelPropertyAccessor: PropertyAccessor<TReadModel>): TBuilder;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Decrements the specified read model property by one when this event occurs.
|
|
83
|
+
* @param readModelPropertyAccessor - Accessor for the read model property to decrement.
|
|
84
|
+
* @returns This builder for fluent chaining.
|
|
85
|
+
*/
|
|
86
|
+
decrement(readModelPropertyAccessor: PropertyAccessor<TReadModel>): TBuilder;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Begins an add operation on the specified read model property.
|
|
90
|
+
* @param readModelPropertyAccessor - Accessor for the read model property to add to.
|
|
91
|
+
* @returns An add builder for specifying the event property value.
|
|
92
|
+
*/
|
|
93
|
+
add(readModelPropertyAccessor: PropertyAccessor<TReadModel>): IAddBuilder<TEvent, TBuilder>;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Begins a subtract operation on the specified read model property.
|
|
97
|
+
* @param readModelPropertyAccessor - Accessor for the read model property to subtract from.
|
|
98
|
+
* @returns A subtract builder for specifying the event property value.
|
|
99
|
+
*/
|
|
100
|
+
subtract(readModelPropertyAccessor: PropertyAccessor<TReadModel>): ISubtractBuilder<TEvent, TBuilder>;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Counts the number of matching events into the specified read model property.
|
|
104
|
+
* @param readModelPropertyAccessor - Accessor for the read model property to store the count in.
|
|
105
|
+
* @returns This builder for fluent chaining.
|
|
106
|
+
*/
|
|
107
|
+
count(readModelPropertyAccessor: PropertyAccessor<TReadModel>): TBuilder;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Adds a child model from the event to a collection property on the read model.
|
|
111
|
+
* @param targetPropertyAccessor - Accessor for the collection property on the read model.
|
|
112
|
+
* @param eventPropertyAccessorOrBuilderCallback - Either a direct event property accessor or a builder callback.
|
|
113
|
+
* @returns This builder for fluent chaining.
|
|
114
|
+
*/
|
|
115
|
+
addChild<TChildModel>(
|
|
116
|
+
targetPropertyAccessor: PropertyAccessor<TReadModel>,
|
|
117
|
+
eventPropertyAccessorOrBuilderCallback: PropertyAccessor<TEvent> | ((builder: IAddChildBuilder<TChildModel, TEvent>) => void)
|
|
118
|
+
): TBuilder;
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Begins a set operation to map an event property to the specified read model property.
|
|
122
|
+
* @param readModelPropertyAccessor - Accessor for the read model property to set.
|
|
123
|
+
* @returns A set builder for specifying the event property value.
|
|
124
|
+
*/
|
|
125
|
+
set(readModelPropertyAccessor: PropertyAccessor<TReadModel>): ISetBuilder<TEvent, TBuilder>;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Begins a set operation that maps the entire event value to a read model property.
|
|
129
|
+
* @returns A set builder for specifying the target read model property.
|
|
130
|
+
*/
|
|
131
|
+
setThisValue(): ISetBuilder<TEvent, TBuilder>;
|
|
132
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Defines the builder for configuring the removal of a read model instance via an event.
|
|
8
|
+
* @template TReadModel - The read model type.
|
|
9
|
+
* @template TEvent - The event type that triggers removal.
|
|
10
|
+
*/
|
|
11
|
+
export interface IRemovedWithBuilder<TReadModel, TEvent> {
|
|
12
|
+
/**
|
|
13
|
+
* Uses an event property as the key to identify the instance to remove.
|
|
14
|
+
* @param keyAccessor - Accessor for the event property used as key.
|
|
15
|
+
* @returns This builder for fluent chaining.
|
|
16
|
+
*/
|
|
17
|
+
usingKey(keyAccessor: PropertyAccessor<TEvent>): IRemovedWithBuilder<TReadModel, TEvent>;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Uses a named event context property as the key to identify the instance to remove.
|
|
21
|
+
* @param contextPropertyName - The name of the event context property.
|
|
22
|
+
* @returns This builder for fluent chaining.
|
|
23
|
+
*/
|
|
24
|
+
usingKeyFromContext(contextPropertyName: string): IRemovedWithBuilder<TReadModel, TEvent>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Defines the builder for configuring the removal of a read model instance via a join event.
|
|
8
|
+
* @template TReadModel - The read model type.
|
|
9
|
+
* @template TEvent - The event type that triggers removal.
|
|
10
|
+
*/
|
|
11
|
+
export interface IRemovedWithJoinBuilder<TReadModel, TEvent> {
|
|
12
|
+
/**
|
|
13
|
+
* Sets the read model property that forms the relationship for the join removal.
|
|
14
|
+
* @param readModelPropertyAccessor - Accessor for the read model property to join on.
|
|
15
|
+
* @returns This builder for fluent chaining.
|
|
16
|
+
*/
|
|
17
|
+
on(readModelPropertyAccessor: PropertyAccessor<TReadModel>): IRemovedWithJoinBuilder<TReadModel, TEvent>;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Uses an event property as the key to identify the instance to remove.
|
|
21
|
+
* @param keyAccessor - Accessor for the event property used as key.
|
|
22
|
+
* @returns This builder for fluent chaining.
|
|
23
|
+
*/
|
|
24
|
+
usingKey(keyAccessor: PropertyAccessor<TEvent>): IRemovedWithJoinBuilder<TReadModel, TEvent>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Defines a builder for configuring a set operation on a read model property.
|
|
8
|
+
* @template TEvent - The event type.
|
|
9
|
+
* @template TParentBuilder - The parent builder type for fluent return.
|
|
10
|
+
*/
|
|
11
|
+
export interface ISetBuilder<TEvent, TParentBuilder> {
|
|
12
|
+
/**
|
|
13
|
+
* Maps the read model property from the specified event property.
|
|
14
|
+
* @param eventPropertyAccessor - Accessor for the source property on the event.
|
|
15
|
+
* @returns The parent builder for fluent chaining.
|
|
16
|
+
*/
|
|
17
|
+
to(eventPropertyAccessor: PropertyAccessor<TEvent>): TParentBuilder;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Sets the read model property to a constant value.
|
|
21
|
+
* @param value - The constant value to assign.
|
|
22
|
+
* @returns The parent builder for fluent chaining.
|
|
23
|
+
*/
|
|
24
|
+
toValue<TProperty>(value: TProperty): TParentBuilder;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Maps the read model property from a named event context property.
|
|
28
|
+
* @param contextPropertyName - The name of the event context property to read from.
|
|
29
|
+
* @returns The parent builder for fluent chaining.
|
|
30
|
+
*/
|
|
31
|
+
toEventContextProperty(contextPropertyName: string): TParentBuilder;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Maps the read model property from the event source identifier.
|
|
35
|
+
* @returns The parent builder for fluent chaining.
|
|
36
|
+
*/
|
|
37
|
+
toEventSourceId(): TParentBuilder;
|
|
38
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Defines a builder for configuring a subtract operation on a read model property.
|
|
8
|
+
* @template TEvent - The event type.
|
|
9
|
+
* @template TParentBuilder - The parent builder type for fluent return.
|
|
10
|
+
*/
|
|
11
|
+
export interface ISubtractBuilder<TEvent, TParentBuilder> {
|
|
12
|
+
/**
|
|
13
|
+
* Subtracts the value of the specified event property from the read model property.
|
|
14
|
+
* @param eventPropertyAccessor - Accessor for the source property on the event.
|
|
15
|
+
* @returns The parent builder for fluent chaining.
|
|
16
|
+
*/
|
|
17
|
+
with(eventPropertyAccessor: PropertyAccessor<TEvent>): TParentBuilder;
|
|
18
|
+
}
|