node-cqrs 1.0.0-rc.9 → 1.0.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/CHANGELOG.md +245 -123
- package/LICENSE +202 -21
- package/NOTICE +15 -0
- package/README.md +429 -113
- package/dist/cjs/AbstractAggregate.js +193 -0
- package/dist/cjs/AbstractAggregate.js.map +1 -0
- package/dist/cjs/AbstractProjection.js +165 -0
- package/dist/cjs/AbstractProjection.js.map +1 -0
- package/dist/cjs/AbstractSaga.js +109 -0
- package/dist/cjs/AbstractSaga.js.map +1 -0
- package/dist/cjs/AggregateCommandHandler.js +182 -0
- package/dist/cjs/AggregateCommandHandler.js.map +1 -0
- package/dist/cjs/CommandBus.js +9 -0
- package/dist/cjs/CommandBus.js.map +1 -0
- package/dist/cjs/CqrsContainerBuilder.js +97 -0
- package/dist/cjs/CqrsContainerBuilder.js.map +1 -0
- package/dist/cjs/Event.js +19 -0
- package/dist/cjs/Event.js.map +1 -0
- package/dist/cjs/EventDispatchPipeline.js +83 -0
- package/dist/cjs/EventDispatchPipeline.js.map +1 -0
- package/dist/cjs/EventDispatcher.js +93 -0
- package/dist/cjs/EventDispatcher.js.map +1 -0
- package/dist/cjs/EventIdAugmentor.js +30 -0
- package/dist/cjs/EventIdAugmentor.js.map +1 -0
- package/dist/cjs/EventStore.js +106 -0
- package/dist/cjs/EventStore.js.map +1 -0
- package/dist/cjs/SagaEventHandler.js +153 -0
- package/dist/cjs/SagaEventHandler.js.map +1 -0
- package/dist/cjs/errors/ConcurrencyError.js +21 -0
- package/dist/cjs/errors/ConcurrencyError.js.map +1 -0
- package/dist/cjs/errors/index.js +18 -0
- package/dist/cjs/errors/index.js.map +1 -0
- package/dist/cjs/in-memory/InMemoryEventStorage.js +106 -0
- package/dist/cjs/in-memory/InMemoryEventStorage.js.map +1 -0
- package/dist/cjs/in-memory/InMemoryLock.js +44 -0
- package/dist/cjs/in-memory/InMemoryLock.js.map +1 -0
- package/dist/cjs/in-memory/InMemoryMessageBus.js +93 -0
- package/dist/cjs/in-memory/InMemoryMessageBus.js.map +1 -0
- package/dist/cjs/in-memory/InMemorySnapshotStorage.js +101 -0
- package/dist/cjs/in-memory/InMemorySnapshotStorage.js.map +1 -0
- package/dist/cjs/in-memory/InMemoryView.js +154 -0
- package/dist/cjs/in-memory/InMemoryView.js.map +1 -0
- package/dist/cjs/in-memory/index.js +22 -0
- package/dist/cjs/in-memory/index.js.map +1 -0
- package/dist/cjs/in-memory/utils/index.js +18 -0
- package/dist/cjs/in-memory/utils/index.js.map +1 -0
- package/dist/cjs/in-memory/utils/nextCycle.js +9 -0
- package/dist/cjs/in-memory/utils/nextCycle.js.map +1 -0
- package/dist/cjs/index.js +58 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/interfaces/IAggregate.js.map +1 -0
- package/dist/cjs/interfaces/IAggregateSnapshotStorage.js +13 -0
- package/dist/cjs/interfaces/IAggregateSnapshotStorage.js.map +1 -0
- package/dist/cjs/interfaces/ICommand.js.map +1 -0
- package/dist/cjs/interfaces/ICommandBus.js.map +1 -0
- package/dist/cjs/interfaces/IContainer.js.map +1 -0
- package/dist/cjs/interfaces/IDispatchPipelineProcessor.js +9 -0
- package/dist/cjs/interfaces/IDispatchPipelineProcessor.js.map +1 -0
- package/dist/cjs/interfaces/IEvent.js +10 -0
- package/dist/cjs/interfaces/IEvent.js.map +1 -0
- package/dist/cjs/interfaces/IEventBus.js +9 -0
- package/dist/cjs/interfaces/IEventBus.js.map +1 -0
- package/dist/cjs/interfaces/IEventDispatcher.js.map +1 -0
- package/dist/cjs/interfaces/IEventLocker.js +15 -0
- package/dist/cjs/interfaces/IEventLocker.js.map +1 -0
- package/dist/cjs/interfaces/IEventReceptor.js.map +1 -0
- package/dist/cjs/interfaces/IEventSet.js +8 -0
- package/dist/cjs/interfaces/IEventSet.js.map +1 -0
- package/dist/cjs/interfaces/IEventStorageReader.js +13 -0
- package/dist/cjs/interfaces/IEventStorageReader.js.map +1 -0
- package/dist/cjs/interfaces/IEventStore.js.map +1 -0
- package/dist/cjs/interfaces/IEventStream.js.map +1 -0
- package/dist/cjs/interfaces/IIdentifierProvider.js +9 -0
- package/dist/cjs/interfaces/IIdentifierProvider.js.map +1 -0
- package/dist/cjs/interfaces/ILocker.js +9 -0
- package/dist/cjs/interfaces/ILocker.js.map +1 -0
- package/dist/cjs/interfaces/ILogger.js.map +1 -0
- package/dist/cjs/interfaces/IMessage.js +10 -0
- package/dist/cjs/interfaces/IMessage.js.map +1 -0
- package/dist/cjs/interfaces/IMutableState.js +3 -0
- package/dist/cjs/interfaces/IMutableState.js.map +1 -0
- package/dist/cjs/interfaces/IObjectStorage.js.map +1 -0
- package/dist/cjs/interfaces/IObservable.js +11 -0
- package/dist/cjs/interfaces/IObservable.js.map +1 -0
- package/dist/cjs/interfaces/IObservableQueueProvider.js +9 -0
- package/dist/cjs/interfaces/IObservableQueueProvider.js.map +1 -0
- package/dist/cjs/interfaces/IObserver.js.map +1 -0
- package/dist/cjs/interfaces/IProjection.js.map +1 -0
- package/dist/cjs/interfaces/ISaga.js.map +1 -0
- package/dist/cjs/interfaces/ISnapshotEvent.js +10 -0
- package/dist/cjs/interfaces/ISnapshotEvent.js.map +1 -0
- package/dist/cjs/interfaces/IViewLocker.js +21 -0
- package/dist/cjs/interfaces/IViewLocker.js.map +1 -0
- package/dist/cjs/interfaces/Identifier.js.map +1 -0
- package/dist/cjs/interfaces/index.js +46 -0
- package/dist/cjs/interfaces/index.js.map +1 -0
- package/dist/cjs/interfaces/isObject.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/rabbitmq/IContainer.js.map +1 -0
- package/dist/cjs/rabbitmq/RabbitMqCommandBus.js +84 -0
- package/dist/cjs/rabbitmq/RabbitMqCommandBus.js.map +1 -0
- package/dist/cjs/rabbitmq/RabbitMqEventBus.js +121 -0
- package/dist/cjs/rabbitmq/RabbitMqEventBus.js.map +1 -0
- package/dist/cjs/rabbitmq/RabbitMqGateway.js +578 -0
- package/dist/cjs/rabbitmq/RabbitMqGateway.js.map +1 -0
- package/dist/cjs/rabbitmq/index.js +21 -0
- package/dist/cjs/rabbitmq/index.js.map +1 -0
- package/dist/cjs/rabbitmq/utils/index.js +19 -0
- package/dist/cjs/rabbitmq/utils/index.js.map +1 -0
- package/dist/cjs/rabbitmq/utils/registerExitCleanup.js +28 -0
- package/dist/cjs/rabbitmq/utils/registerExitCleanup.js.map +1 -0
- package/dist/cjs/rabbitmq/utils/resolveProvider.js +9 -0
- package/dist/cjs/rabbitmq/utils/resolveProvider.js.map +1 -0
- package/dist/cjs/sqlite/AbstractSqliteAccessor.js +50 -0
- package/dist/cjs/sqlite/AbstractSqliteAccessor.js.map +1 -0
- package/dist/cjs/sqlite/AbstractSqliteObjectProjection.js +26 -0
- package/dist/cjs/sqlite/AbstractSqliteObjectProjection.js.map +1 -0
- package/dist/cjs/sqlite/AbstractSqliteView.js +50 -0
- package/dist/cjs/sqlite/AbstractSqliteView.js.map +1 -0
- package/dist/cjs/sqlite/IContainer.js.map +1 -0
- package/dist/cjs/sqlite/SqliteEventLocker.js +93 -0
- package/dist/cjs/sqlite/SqliteEventLocker.js.map +1 -0
- package/dist/cjs/sqlite/SqliteObjectStorage.js +114 -0
- package/dist/cjs/sqlite/SqliteObjectStorage.js.map +1 -0
- package/dist/cjs/sqlite/SqliteObjectView.js +48 -0
- package/dist/cjs/sqlite/SqliteObjectView.js.map +1 -0
- package/dist/cjs/sqlite/SqliteProjectionDataParams.js.map +1 -0
- package/dist/cjs/sqlite/SqliteViewLocker.js +119 -0
- package/dist/cjs/sqlite/SqliteViewLocker.js.map +1 -0
- package/dist/cjs/sqlite/index.js +26 -0
- package/dist/cjs/sqlite/index.js.map +1 -0
- package/dist/cjs/sqlite/queries/eventLockTableInit.js +15 -0
- package/dist/cjs/sqlite/queries/eventLockTableInit.js.map +1 -0
- package/dist/cjs/sqlite/queries/index.js +19 -0
- package/dist/cjs/sqlite/queries/index.js.map +1 -0
- package/dist/cjs/sqlite/queries/viewLockTableInit.js.map +1 -0
- package/dist/cjs/sqlite/utils/getEventId.js +14 -0
- package/dist/cjs/sqlite/utils/getEventId.js.map +1 -0
- package/dist/cjs/sqlite/utils/guid.js.map +1 -0
- package/dist/cjs/sqlite/utils/index.js +19 -0
- package/dist/cjs/sqlite/utils/index.js.map +1 -0
- package/dist/cjs/utils/Deferred.js.map +1 -0
- package/dist/cjs/utils/Lock.js +102 -0
- package/dist/cjs/utils/Lock.js.map +1 -0
- package/dist/cjs/utils/MapAssertable.js +30 -0
- package/dist/cjs/utils/MapAssertable.js.map +1 -0
- package/dist/cjs/utils/assert.js +88 -0
- package/dist/cjs/utils/assert.js.map +1 -0
- package/dist/cjs/utils/clone.js +13 -0
- package/dist/cjs/utils/clone.js.map +1 -0
- package/dist/cjs/utils/extractErrorDetails.js +37 -0
- package/dist/cjs/utils/extractErrorDetails.js.map +1 -0
- package/dist/cjs/utils/getClassName.js.map +1 -0
- package/dist/cjs/utils/getHandler.js +18 -0
- package/dist/cjs/utils/getHandler.js.map +1 -0
- package/dist/cjs/utils/getMessageHandlerNames.js +30 -0
- package/dist/cjs/utils/getMessageHandlerNames.js.map +1 -0
- package/dist/cjs/utils/index.js +31 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/isClass.js.map +1 -0
- package/dist/cjs/utils/sagaId.js +23 -0
- package/dist/cjs/utils/sagaId.js.map +1 -0
- package/dist/cjs/utils/setupOneTimeEmitterSubscription.js +45 -0
- package/dist/cjs/utils/setupOneTimeEmitterSubscription.js.map +1 -0
- package/dist/cjs/utils/subscribe.js +43 -0
- package/dist/cjs/utils/subscribe.js.map +1 -0
- package/dist/cjs/utils/validateHandlers.js +21 -0
- package/dist/cjs/utils/validateHandlers.js.map +1 -0
- package/dist/cjs/workers/AbstractWorkerProjection.js +56 -0
- package/dist/cjs/workers/AbstractWorkerProjection.js.map +1 -0
- package/dist/cjs/workers/WorkerProxyProjection.js +142 -0
- package/dist/cjs/workers/WorkerProxyProjection.js.map +1 -0
- package/dist/cjs/workers/index.js +20 -0
- package/dist/cjs/workers/index.js.map +1 -0
- package/dist/cjs/workers/interfaces/IProxyProjection.js +3 -0
- package/dist/cjs/workers/interfaces/IProxyProjection.js.map +1 -0
- package/dist/cjs/workers/interfaces/IWorkerProjection.js +3 -0
- package/dist/cjs/workers/interfaces/IWorkerProjection.js.map +1 -0
- package/dist/cjs/workers/interfaces/index.js +3 -0
- package/dist/cjs/workers/interfaces/index.js.map +1 -0
- package/dist/cjs/workers/protocol.js +16 -0
- package/dist/cjs/workers/protocol.js.map +1 -0
- package/dist/cjs/workers/utils/ProjectionView.js +3 -0
- package/dist/cjs/workers/utils/ProjectionView.js.map +1 -0
- package/dist/cjs/workers/utils/createWorker.js +87 -0
- package/dist/cjs/workers/utils/createWorker.js.map +1 -0
- package/dist/cjs/workers/utils/createWorkerInstance.js +59 -0
- package/dist/cjs/workers/utils/createWorkerInstance.js.map +1 -0
- package/dist/cjs/workers/utils/index.js +21 -0
- package/dist/cjs/workers/utils/index.js.map +1 -0
- package/dist/cjs/workers/utils/nodeEndpoint.js +8 -0
- package/dist/cjs/workers/utils/nodeEndpoint.js.map +1 -0
- package/dist/cjs/workers/utils/workerProxyFactory.js +21 -0
- package/dist/cjs/workers/utils/workerProxyFactory.js.map +1 -0
- package/dist/esm/AbstractAggregate.js +189 -0
- package/dist/esm/AbstractAggregate.js.map +1 -0
- package/dist/esm/AbstractProjection.js +161 -0
- package/dist/esm/AbstractProjection.js.map +1 -0
- package/dist/esm/AbstractSaga.js +105 -0
- package/dist/esm/AbstractSaga.js.map +1 -0
- package/dist/esm/AggregateCommandHandler.js +178 -0
- package/dist/esm/AggregateCommandHandler.js.map +1 -0
- package/dist/esm/CommandBus.js +5 -0
- package/dist/esm/CommandBus.js.map +1 -0
- package/dist/esm/CqrsContainerBuilder.js +93 -0
- package/dist/esm/CqrsContainerBuilder.js.map +1 -0
- package/dist/esm/Event.js +15 -0
- package/dist/esm/Event.js.map +1 -0
- package/dist/esm/EventDispatchPipeline.js +79 -0
- package/dist/esm/EventDispatchPipeline.js.map +1 -0
- package/dist/esm/EventDispatcher.js +89 -0
- package/dist/esm/EventDispatcher.js.map +1 -0
- package/dist/esm/EventIdAugmentor.js +26 -0
- package/dist/esm/EventIdAugmentor.js.map +1 -0
- package/dist/esm/EventStore.js +102 -0
- package/dist/esm/EventStore.js.map +1 -0
- package/dist/esm/SagaEventHandler.js +116 -0
- package/dist/esm/SagaEventHandler.js.map +1 -0
- package/dist/esm/errors/ConcurrencyError.js +17 -0
- package/dist/esm/errors/ConcurrencyError.js.map +1 -0
- package/dist/esm/errors/index.js +2 -0
- package/dist/esm/errors/index.js.map +1 -0
- package/dist/esm/in-memory/InMemoryEventStorage.js +102 -0
- package/dist/esm/in-memory/InMemoryEventStorage.js.map +1 -0
- package/dist/esm/in-memory/InMemoryLock.js +40 -0
- package/dist/esm/in-memory/InMemoryLock.js.map +1 -0
- package/dist/esm/in-memory/InMemoryMessageBus.js +89 -0
- package/dist/esm/in-memory/InMemoryMessageBus.js.map +1 -0
- package/dist/esm/in-memory/InMemorySnapshotStorage.js +64 -0
- package/dist/esm/in-memory/InMemorySnapshotStorage.js.map +1 -0
- package/dist/esm/in-memory/InMemoryView.js +150 -0
- package/dist/esm/in-memory/InMemoryView.js.map +1 -0
- package/dist/esm/in-memory/index.js +6 -0
- package/dist/esm/in-memory/index.js.map +1 -0
- package/dist/esm/in-memory/utils/index.js +2 -0
- package/dist/esm/in-memory/utils/index.js.map +1 -0
- package/dist/esm/in-memory/utils/nextCycle.js +5 -0
- package/dist/esm/in-memory/utils/nextCycle.js.map +1 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/interfaces/IAggregate.js +2 -0
- package/dist/esm/interfaces/IAggregate.js.map +1 -0
- package/dist/esm/interfaces/IAggregateSnapshotStorage.js +9 -0
- package/dist/esm/interfaces/IAggregateSnapshotStorage.js.map +1 -0
- package/dist/esm/interfaces/ICommand.js +2 -0
- package/dist/esm/interfaces/ICommand.js.map +1 -0
- package/dist/esm/interfaces/ICommandBus.js +2 -0
- package/dist/esm/interfaces/ICommandBus.js.map +1 -0
- package/dist/esm/interfaces/IContainer.js +2 -0
- package/dist/esm/interfaces/IContainer.js.map +1 -0
- package/dist/esm/interfaces/IDispatchPipelineProcessor.js +5 -0
- package/dist/esm/interfaces/IDispatchPipelineProcessor.js.map +1 -0
- package/dist/esm/interfaces/IEvent.js +6 -0
- package/dist/esm/interfaces/IEvent.js.map +1 -0
- package/dist/esm/interfaces/IEventBus.js +5 -0
- package/dist/esm/interfaces/IEventBus.js.map +1 -0
- package/dist/esm/interfaces/IEventDispatcher.js +2 -0
- package/dist/esm/interfaces/IEventDispatcher.js.map +1 -0
- package/dist/esm/interfaces/IEventLocker.js +11 -0
- package/dist/esm/interfaces/IEventLocker.js.map +1 -0
- package/dist/esm/interfaces/IEventReceptor.js +2 -0
- package/dist/esm/interfaces/IEventReceptor.js.map +1 -0
- package/dist/esm/interfaces/IEventSet.js +4 -0
- package/dist/esm/interfaces/IEventSet.js.map +1 -0
- package/dist/esm/interfaces/IEventStorageReader.js +9 -0
- package/dist/esm/interfaces/IEventStorageReader.js.map +1 -0
- package/dist/esm/interfaces/IEventStore.js +2 -0
- package/dist/esm/interfaces/IEventStore.js.map +1 -0
- package/dist/esm/interfaces/IEventStream.js +2 -0
- package/dist/esm/interfaces/IEventStream.js.map +1 -0
- package/dist/esm/interfaces/IIdentifierProvider.js +5 -0
- package/dist/esm/interfaces/IIdentifierProvider.js.map +1 -0
- package/dist/esm/interfaces/ILocker.js +5 -0
- package/dist/esm/interfaces/ILocker.js.map +1 -0
- package/dist/esm/interfaces/ILogger.js +2 -0
- package/dist/esm/interfaces/ILogger.js.map +1 -0
- package/dist/esm/interfaces/IMessage.js +6 -0
- package/dist/esm/interfaces/IMessage.js.map +1 -0
- package/dist/esm/interfaces/IMutableState.js +2 -0
- package/dist/esm/interfaces/IMutableState.js.map +1 -0
- package/dist/esm/interfaces/IObjectStorage.js +2 -0
- package/dist/esm/interfaces/IObjectStorage.js.map +1 -0
- package/dist/esm/interfaces/IObservable.js +7 -0
- package/dist/esm/interfaces/IObservable.js.map +1 -0
- package/dist/esm/interfaces/IObservableQueueProvider.js +5 -0
- package/dist/esm/interfaces/IObservableQueueProvider.js.map +1 -0
- package/dist/esm/interfaces/IObserver.js +2 -0
- package/dist/esm/interfaces/IObserver.js.map +1 -0
- package/dist/esm/interfaces/IProjection.js +2 -0
- package/dist/esm/interfaces/IProjection.js.map +1 -0
- package/dist/esm/interfaces/ISaga.js +2 -0
- package/dist/esm/interfaces/ISaga.js.map +1 -0
- package/dist/esm/interfaces/ISnapshotEvent.js +6 -0
- package/dist/esm/interfaces/ISnapshotEvent.js.map +1 -0
- package/dist/esm/interfaces/IViewLocker.js +17 -0
- package/dist/esm/interfaces/IViewLocker.js.map +1 -0
- package/dist/esm/interfaces/Identifier.js +2 -0
- package/dist/esm/interfaces/Identifier.js.map +1 -0
- package/dist/esm/interfaces/index.js +30 -0
- package/dist/esm/interfaces/index.js.map +1 -0
- package/dist/esm/interfaces/isObject.js +5 -0
- package/dist/esm/interfaces/isObject.js.map +1 -0
- package/dist/esm/rabbitmq/IContainer.js +2 -0
- package/dist/esm/rabbitmq/IContainer.js.map +1 -0
- package/dist/esm/rabbitmq/RabbitMqCommandBus.js +80 -0
- package/dist/esm/rabbitmq/RabbitMqCommandBus.js.map +1 -0
- package/dist/esm/rabbitmq/RabbitMqEventBus.js +117 -0
- package/dist/esm/rabbitmq/RabbitMqEventBus.js.map +1 -0
- package/dist/esm/rabbitmq/RabbitMqGateway.js +541 -0
- package/dist/esm/rabbitmq/RabbitMqGateway.js.map +1 -0
- package/dist/esm/rabbitmq/index.js +5 -0
- package/dist/esm/rabbitmq/index.js.map +1 -0
- package/dist/esm/rabbitmq/utils/index.js +3 -0
- package/dist/esm/rabbitmq/utils/index.js.map +1 -0
- package/dist/esm/rabbitmq/utils/registerExitCleanup.js +24 -0
- package/dist/esm/rabbitmq/utils/registerExitCleanup.js.map +1 -0
- package/dist/esm/rabbitmq/utils/resolveProvider.js +6 -0
- package/dist/esm/rabbitmq/utils/resolveProvider.js.map +1 -0
- package/dist/esm/sqlite/AbstractSqliteAccessor.js +46 -0
- package/dist/esm/sqlite/AbstractSqliteAccessor.js.map +1 -0
- package/dist/esm/sqlite/AbstractSqliteObjectProjection.js +22 -0
- package/dist/esm/sqlite/AbstractSqliteObjectProjection.js.map +1 -0
- package/dist/esm/sqlite/AbstractSqliteView.js +46 -0
- package/dist/esm/sqlite/AbstractSqliteView.js.map +1 -0
- package/dist/esm/sqlite/IContainer.js +2 -0
- package/dist/esm/sqlite/IContainer.js.map +1 -0
- package/dist/esm/sqlite/SqliteEventLocker.js +89 -0
- package/dist/esm/sqlite/SqliteEventLocker.js.map +1 -0
- package/dist/esm/sqlite/SqliteObjectStorage.js +110 -0
- package/dist/esm/sqlite/SqliteObjectStorage.js.map +1 -0
- package/dist/esm/sqlite/SqliteObjectView.js +44 -0
- package/dist/esm/sqlite/SqliteObjectView.js.map +1 -0
- package/dist/esm/sqlite/SqliteProjectionDataParams.js +2 -0
- package/dist/esm/sqlite/SqliteProjectionDataParams.js.map +1 -0
- package/dist/esm/sqlite/SqliteViewLocker.js +115 -0
- package/dist/esm/sqlite/SqliteViewLocker.js.map +1 -0
- package/dist/esm/sqlite/index.js +10 -0
- package/dist/esm/sqlite/index.js.map +1 -0
- package/dist/esm/sqlite/queries/eventLockTableInit.js +11 -0
- package/dist/esm/sqlite/queries/eventLockTableInit.js.map +1 -0
- package/dist/esm/sqlite/queries/index.js +3 -0
- package/dist/esm/sqlite/queries/index.js.map +1 -0
- package/dist/esm/sqlite/queries/viewLockTableInit.js +10 -0
- package/dist/esm/sqlite/queries/viewLockTableInit.js.map +1 -0
- package/dist/esm/sqlite/utils/getEventId.js +7 -0
- package/dist/esm/sqlite/utils/getEventId.js.map +1 -0
- package/dist/esm/sqlite/utils/guid.js +5 -0
- package/dist/esm/sqlite/utils/guid.js.map +1 -0
- package/dist/esm/sqlite/utils/index.js +3 -0
- package/dist/esm/sqlite/utils/index.js.map +1 -0
- package/dist/esm/utils/Deferred.js +34 -0
- package/dist/esm/utils/Deferred.js.map +1 -0
- package/dist/esm/utils/Lock.js +97 -0
- package/dist/esm/utils/Lock.js.map +1 -0
- package/dist/esm/utils/MapAssertable.js +26 -0
- package/dist/esm/utils/MapAssertable.js.map +1 -0
- package/dist/esm/utils/assert.js +70 -0
- package/dist/esm/utils/assert.js.map +1 -0
- package/dist/esm/utils/clone.js +10 -0
- package/dist/esm/utils/clone.js.map +1 -0
- package/dist/esm/utils/extractErrorDetails.js +33 -0
- package/dist/esm/utils/extractErrorDetails.js.map +1 -0
- package/dist/esm/utils/getClassName.js +7 -0
- package/dist/esm/utils/getClassName.js.map +1 -0
- package/dist/esm/utils/getHandler.js +15 -0
- package/dist/esm/utils/getHandler.js.map +1 -0
- package/dist/esm/utils/getMessageHandlerNames.js +27 -0
- package/dist/esm/utils/getMessageHandlerNames.js.map +1 -0
- package/dist/esm/utils/index.js +15 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/isClass.js +5 -0
- package/dist/esm/utils/isClass.js.map +1 -0
- package/dist/esm/utils/sagaId.js +18 -0
- package/dist/esm/utils/sagaId.js.map +1 -0
- package/dist/esm/utils/setupOneTimeEmitterSubscription.js +42 -0
- package/dist/esm/utils/setupOneTimeEmitterSubscription.js.map +1 -0
- package/dist/esm/utils/subscribe.js +40 -0
- package/dist/esm/utils/subscribe.js.map +1 -0
- package/dist/esm/utils/validateHandlers.js +18 -0
- package/dist/esm/utils/validateHandlers.js.map +1 -0
- package/dist/esm/workers/AbstractWorkerProjection.js +52 -0
- package/dist/esm/workers/AbstractWorkerProjection.js.map +1 -0
- package/dist/esm/workers/WorkerProxyProjection.js +105 -0
- package/dist/esm/workers/WorkerProxyProjection.js.map +1 -0
- package/dist/esm/workers/index.js +4 -0
- package/dist/esm/workers/index.js.map +1 -0
- package/dist/esm/workers/interfaces/IProxyProjection.js +2 -0
- package/dist/esm/workers/interfaces/IProxyProjection.js.map +1 -0
- package/dist/esm/workers/interfaces/IWorkerProjection.js +2 -0
- package/dist/esm/workers/interfaces/IWorkerProjection.js.map +1 -0
- package/dist/esm/workers/interfaces/index.js +2 -0
- package/dist/esm/workers/interfaces/index.js.map +1 -0
- package/dist/esm/workers/protocol.js +11 -0
- package/dist/esm/workers/protocol.js.map +1 -0
- package/dist/esm/workers/utils/ProjectionView.js +2 -0
- package/dist/esm/workers/utils/ProjectionView.js.map +1 -0
- package/dist/esm/workers/utils/createWorker.js +51 -0
- package/dist/esm/workers/utils/createWorker.js.map +1 -0
- package/dist/esm/workers/utils/createWorkerInstance.js +23 -0
- package/dist/esm/workers/utils/createWorkerInstance.js.map +1 -0
- package/dist/esm/workers/utils/index.js +5 -0
- package/dist/esm/workers/utils/index.js.map +1 -0
- package/dist/esm/workers/utils/nodeEndpoint.js +5 -0
- package/dist/esm/workers/utils/nodeEndpoint.js.map +1 -0
- package/dist/esm/workers/utils/workerProxyFactory.js +18 -0
- package/dist/esm/workers/utils/workerProxyFactory.js.map +1 -0
- package/dist/types/AbstractAggregate.d.ts +80 -0
- package/dist/types/AbstractProjection.d.ts +77 -0
- package/dist/types/AbstractSaga.d.ts +42 -0
- package/dist/types/AggregateCommandHandler.d.ts +22 -0
- package/dist/types/CommandBus.d.ts +4 -0
- package/dist/types/CqrsContainerBuilder.d.ts +21 -0
- package/dist/types/Event.d.ts +9 -0
- package/dist/types/EventDispatchPipeline.d.ts +16 -0
- package/dist/types/EventDispatcher.d.ts +39 -0
- package/dist/types/EventIdAugmentor.d.ts +12 -0
- package/dist/types/EventStore.d.ts +29 -0
- package/dist/types/SagaEventHandler.d.ts +22 -0
- package/dist/types/errors/ConcurrencyError.d.ts +9 -0
- package/dist/types/errors/index.d.ts +1 -0
- package/dist/types/in-memory/InMemoryEventStorage.d.ts +24 -0
- package/dist/types/in-memory/InMemoryLock.d.ts +23 -0
- package/dist/types/in-memory/InMemoryMessageBus.d.ts +45 -0
- package/dist/types/in-memory/InMemorySnapshotStorage.d.ts +37 -0
- package/dist/types/in-memory/InMemoryView.d.ts +53 -0
- package/dist/types/in-memory/index.d.ts +5 -0
- package/dist/types/in-memory/utils/index.d.ts +1 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/interfaces/IAggregate.d.ts +78 -0
- package/dist/types/interfaces/IAggregateSnapshotStorage.d.ts +8 -0
- package/dist/types/interfaces/ICommand.d.ts +2 -0
- package/dist/types/interfaces/ICommandBus.d.ts +15 -0
- package/dist/types/interfaces/IContainer.d.ts +37 -0
- package/dist/types/interfaces/IDispatchPipelineProcessor.d.ts +29 -0
- package/dist/types/interfaces/IEvent.d.ts +7 -0
- package/dist/types/interfaces/IEventBus.d.ts +6 -0
- package/dist/types/interfaces/IEventDispatcher.d.ts +6 -0
- package/dist/types/interfaces/IEventLocker.d.ts +28 -0
- package/dist/types/interfaces/IEventReceptor.d.ts +5 -0
- package/dist/types/interfaces/IEventSet.d.ts +3 -0
- package/dist/types/interfaces/IEventStorageReader.d.ts +48 -0
- package/dist/types/interfaces/IEventStore.d.ts +9 -0
- package/dist/types/interfaces/IEventStream.d.ts +2 -0
- package/dist/types/interfaces/IIdentifierProvider.d.ts +10 -0
- package/dist/types/interfaces/ILocker.d.ts +8 -0
- package/dist/types/interfaces/IMessage.d.ts +23 -0
- package/dist/types/interfaces/IMutableState.d.ts +14 -0
- package/dist/types/interfaces/IObjectStorage.d.ts +8 -0
- package/dist/types/interfaces/IObservable.d.ts +15 -0
- package/dist/types/interfaces/IObservableQueueProvider.d.ts +8 -0
- package/dist/types/interfaces/IObserver.d.ts +4 -0
- package/dist/types/interfaces/IProjection.d.ts +17 -0
- package/dist/types/interfaces/ISaga.d.ts +38 -0
- package/dist/types/interfaces/ISnapshotEvent.d.ts +7 -0
- package/dist/types/interfaces/Identifier.d.ts +1 -0
- package/dist/types/interfaces/index.d.ts +29 -0
- package/dist/types/interfaces/isObject.d.ts +1 -0
- package/dist/types/rabbitmq/IContainer.d.ts +19 -0
- package/dist/types/rabbitmq/RabbitMqCommandBus.d.ts +38 -0
- package/dist/types/rabbitmq/RabbitMqEventBus.d.ts +44 -0
- package/dist/types/rabbitmq/RabbitMqGateway.d.ts +133 -0
- package/dist/types/rabbitmq/index.d.ts +4 -0
- package/dist/types/rabbitmq/utils/index.d.ts +2 -0
- package/dist/types/rabbitmq/utils/registerExitCleanup.d.ts +10 -0
- package/dist/types/rabbitmq/utils/resolveProvider.d.ts +3 -0
- package/dist/types/sqlite/AbstractSqliteAccessor.d.ts +25 -0
- package/dist/types/sqlite/AbstractSqliteObjectProjection.d.ts +8 -0
- package/dist/types/sqlite/AbstractSqliteView.d.ts +23 -0
- package/dist/types/sqlite/IContainer.d.ts +7 -0
- package/dist/types/sqlite/SqliteEventLocker.d.ts +30 -0
- package/dist/types/sqlite/SqliteObjectStorage.d.ts +17 -0
- package/dist/types/sqlite/SqliteObjectView.d.ts +19 -0
- package/dist/types/sqlite/SqliteViewLocker.d.ts +31 -0
- package/dist/types/sqlite/index.d.ts +9 -0
- package/dist/types/sqlite/queries/index.d.ts +2 -0
- package/dist/types/sqlite/utils/getEventId.d.ts +5 -0
- package/dist/types/sqlite/utils/index.d.ts +2 -0
- package/dist/types/utils/Lock.d.ts +30 -0
- package/dist/types/utils/MapAssertable.d.ts +11 -0
- package/dist/types/utils/assert.d.ts +20 -0
- package/dist/types/utils/clone.d.ts +1 -0
- package/dist/types/utils/extractErrorDetails.d.ts +8 -0
- package/dist/types/utils/getHandler.d.ts +7 -0
- package/dist/types/utils/getMessageHandlerNames.d.ts +12 -0
- package/dist/types/utils/index.d.ts +14 -0
- package/dist/types/utils/isClass.d.ts +1 -0
- package/dist/types/utils/sagaId.d.ts +6 -0
- package/dist/types/utils/setupOneTimeEmitterSubscription.d.ts +12 -0
- package/dist/types/utils/subscribe.d.ts +9 -0
- package/dist/types/workers/AbstractWorkerProjection.d.ts +25 -0
- package/dist/types/workers/WorkerProxyProjection.d.ts +25 -0
- package/dist/types/workers/index.d.ts +3 -0
- package/dist/types/workers/interfaces/IProxyProjection.d.ts +15 -0
- package/dist/types/workers/interfaces/IWorkerProjection.d.ts +19 -0
- package/dist/types/workers/interfaces/index.d.ts +2 -0
- package/dist/types/workers/protocol.d.ts +10 -0
- package/dist/types/workers/utils/ProjectionView.d.ts +2 -0
- package/dist/types/workers/utils/createWorker.d.ts +10 -0
- package/dist/types/workers/utils/createWorkerInstance.d.ts +11 -0
- package/dist/types/workers/utils/index.d.ts +5 -0
- package/dist/types/workers/utils/nodeEndpoint.d.ts +2 -0
- package/dist/types/workers/utils/workerProxyFactory.d.ts +14 -0
- package/package.json +106 -54
- package/dist/AbstractAggregate.js +0 -178
- package/dist/AbstractAggregate.js.map +0 -1
- package/dist/AbstractProjection.js +0 -138
- package/dist/AbstractProjection.js.map +0 -1
- package/dist/AbstractSaga.js +0 -99
- package/dist/AbstractSaga.js.map +0 -1
- package/dist/AggregateCommandHandler.js +0 -86
- package/dist/AggregateCommandHandler.js.map +0 -1
- package/dist/CommandBus.js +0 -74
- package/dist/CommandBus.js.map +0 -1
- package/dist/CqrsContainerBuilder.js +0 -92
- package/dist/CqrsContainerBuilder.js.map +0 -1
- package/dist/Event.js +0 -33
- package/dist/Event.js.map +0 -1
- package/dist/EventDispatcher.js +0 -131
- package/dist/EventDispatcher.js.map +0 -1
- package/dist/EventStore.js +0 -137
- package/dist/EventStore.js.map +0 -1
- package/dist/EventValidationProcessor.js +0 -29
- package/dist/EventValidationProcessor.js.map +0 -1
- package/dist/SagaEventHandler.js +0 -118
- package/dist/SagaEventHandler.js.map +0 -1
- package/dist/in-memory/InMemoryEventStorage.js +0 -73
- package/dist/in-memory/InMemoryEventStorage.js.map +0 -1
- package/dist/in-memory/InMemoryLock.js +0 -40
- package/dist/in-memory/InMemoryLock.js.map +0 -1
- package/dist/in-memory/InMemoryMessageBus.js +0 -111
- package/dist/in-memory/InMemoryMessageBus.js.map +0 -1
- package/dist/in-memory/InMemorySnapshotStorage.js +0 -70
- package/dist/in-memory/InMemorySnapshotStorage.js.map +0 -1
- package/dist/in-memory/InMemoryView.js +0 -167
- package/dist/in-memory/InMemoryView.js.map +0 -1
- package/dist/in-memory/index.js +0 -22
- package/dist/in-memory/index.js.map +0 -1
- package/dist/in-memory/utils/index.js +0 -18
- package/dist/in-memory/utils/index.js.map +0 -1
- package/dist/in-memory/utils/nextCycle.js +0 -9
- package/dist/in-memory/utils/nextCycle.js.map +0 -1
- package/dist/index.js +0 -35
- package/dist/index.js.map +0 -1
- package/dist/interfaces/IAggregate.js.map +0 -1
- package/dist/interfaces/IAggregateSnapshotStorage.js +0 -3
- package/dist/interfaces/IAggregateSnapshotStorage.js.map +0 -1
- package/dist/interfaces/ICommand.js.map +0 -1
- package/dist/interfaces/ICommandBus.js.map +0 -1
- package/dist/interfaces/IContainer.js.map +0 -1
- package/dist/interfaces/IDispatchPipelineProcessor.js +0 -9
- package/dist/interfaces/IDispatchPipelineProcessor.js.map +0 -1
- package/dist/interfaces/IEvent.js +0 -9
- package/dist/interfaces/IEvent.js.map +0 -1
- package/dist/interfaces/IEventBus.js +0 -9
- package/dist/interfaces/IEventBus.js.map +0 -1
- package/dist/interfaces/IEventDispatcher.js.map +0 -1
- package/dist/interfaces/IEventLocker.js +0 -10
- package/dist/interfaces/IEventLocker.js.map +0 -1
- package/dist/interfaces/IEventReceptor.js.map +0 -1
- package/dist/interfaces/IEventSet.js +0 -8
- package/dist/interfaces/IEventSet.js.map +0 -1
- package/dist/interfaces/IEventStorage.js +0 -13
- package/dist/interfaces/IEventStorage.js.map +0 -1
- package/dist/interfaces/IEventStore.js.map +0 -1
- package/dist/interfaces/IEventStream.js.map +0 -1
- package/dist/interfaces/IIdentifierProvider.js +0 -9
- package/dist/interfaces/IIdentifierProvider.js.map +0 -1
- package/dist/interfaces/ILogger.js.map +0 -1
- package/dist/interfaces/IMessage.js +0 -9
- package/dist/interfaces/IMessage.js.map +0 -1
- package/dist/interfaces/IMessageBus.js +0 -3
- package/dist/interfaces/IMessageBus.js.map +0 -1
- package/dist/interfaces/IObjectStorage.js.map +0 -1
- package/dist/interfaces/IObservable.js +0 -11
- package/dist/interfaces/IObservable.js.map +0 -1
- package/dist/interfaces/IObserver.js.map +0 -1
- package/dist/interfaces/IProjection.js.map +0 -1
- package/dist/interfaces/ISaga.js.map +0 -1
- package/dist/interfaces/IViewLocker.js +0 -17
- package/dist/interfaces/IViewLocker.js.map +0 -1
- package/dist/interfaces/Identifier.js.map +0 -1
- package/dist/interfaces/index.js +0 -43
- package/dist/interfaces/index.js.map +0 -1
- package/dist/interfaces/isObject.js.map +0 -1
- package/dist/rabbitmq/IContainer.js.map +0 -1
- package/dist/rabbitmq/RabbitMqEventBus.js +0 -89
- package/dist/rabbitmq/RabbitMqEventBus.js.map +0 -1
- package/dist/rabbitmq/RabbitMqEventInjector.js +0 -55
- package/dist/rabbitmq/RabbitMqEventInjector.js.map +0 -1
- package/dist/rabbitmq/RabbitMqGateway.js +0 -347
- package/dist/rabbitmq/RabbitMqGateway.js.map +0 -1
- package/dist/rabbitmq/TerminationHandler.js +0 -31
- package/dist/rabbitmq/TerminationHandler.js.map +0 -1
- package/dist/rabbitmq/constants.js +0 -6
- package/dist/rabbitmq/constants.js.map +0 -1
- package/dist/rabbitmq/index.js +0 -20
- package/dist/rabbitmq/index.js.map +0 -1
- package/dist/sqlite/AbstractSqliteAccessor.js +0 -50
- package/dist/sqlite/AbstractSqliteAccessor.js.map +0 -1
- package/dist/sqlite/AbstractSqliteObjectProjection.js +0 -26
- package/dist/sqlite/AbstractSqliteObjectProjection.js.map +0 -1
- package/dist/sqlite/AbstractSqliteView.js +0 -44
- package/dist/sqlite/AbstractSqliteView.js.map +0 -1
- package/dist/sqlite/IContainer.js.map +0 -1
- package/dist/sqlite/SqliteEventLocker.js +0 -94
- package/dist/sqlite/SqliteEventLocker.js.map +0 -1
- package/dist/sqlite/SqliteObjectStorage.js +0 -113
- package/dist/sqlite/SqliteObjectStorage.js.map +0 -1
- package/dist/sqlite/SqliteObjectView.js +0 -46
- package/dist/sqlite/SqliteObjectView.js.map +0 -1
- package/dist/sqlite/SqliteProjectionDataParams.js.map +0 -1
- package/dist/sqlite/SqliteViewLocker.js +0 -119
- package/dist/sqlite/SqliteViewLocker.js.map +0 -1
- package/dist/sqlite/index.js +0 -25
- package/dist/sqlite/index.js.map +0 -1
- package/dist/sqlite/queries/eventLockTableInit.js +0 -15
- package/dist/sqlite/queries/eventLockTableInit.js.map +0 -1
- package/dist/sqlite/queries/index.js +0 -19
- package/dist/sqlite/queries/index.js.map +0 -1
- package/dist/sqlite/queries/viewLockTableInit.js.map +0 -1
- package/dist/sqlite/utils/getEventId.js +0 -11
- package/dist/sqlite/utils/getEventId.js.map +0 -1
- package/dist/sqlite/utils/guid.js.map +0 -1
- package/dist/sqlite/utils/index.js +0 -19
- package/dist/sqlite/utils/index.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/utils/Deferred.js.map +0 -1
- package/dist/utils/Lock.js +0 -50
- package/dist/utils/Lock.js.map +0 -1
- package/dist/utils/delay.js +0 -13
- package/dist/utils/delay.js.map +0 -1
- package/dist/utils/getClassName.js.map +0 -1
- package/dist/utils/getHandler.js +0 -19
- package/dist/utils/getHandler.js.map +0 -1
- package/dist/utils/getMessageHandlerNames.js +0 -34
- package/dist/utils/getMessageHandlerNames.js.map +0 -1
- package/dist/utils/index.js +0 -29
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/isClass.js.map +0 -1
- package/dist/utils/iteratorToArray.js +0 -10
- package/dist/utils/iteratorToArray.js.map +0 -1
- package/dist/utils/notEmpty.js +0 -6
- package/dist/utils/notEmpty.js.map +0 -1
- package/dist/utils/setupOneTimeEmitterSubscription.js +0 -46
- package/dist/utils/setupOneTimeEmitterSubscription.js.map +0 -1
- package/dist/utils/subscribe.js +0 -51
- package/dist/utils/subscribe.js.map +0 -1
- package/dist/utils/validateHandlers.js +0 -21
- package/dist/utils/validateHandlers.js.map +0 -1
- package/eslint.config.mjs +0 -838
- package/src/AbstractAggregate.ts +0 -223
- package/src/AbstractProjection.ts +0 -209
- package/src/AbstractSaga.ts +0 -118
- package/src/AggregateCommandHandler.ts +0 -131
- package/src/CommandBus.ts +0 -100
- package/src/CqrsContainerBuilder.ts +0 -124
- package/src/Event.ts +0 -32
- package/src/EventDispatcher.ts +0 -173
- package/src/EventStore.ts +0 -205
- package/src/EventValidationProcessor.ts +0 -33
- package/src/SagaEventHandler.ts +0 -160
- package/src/in-memory/InMemoryEventStorage.ts +0 -108
- package/src/in-memory/InMemoryLock.ts +0 -43
- package/src/in-memory/InMemoryMessageBus.ts +0 -140
- package/src/in-memory/InMemorySnapshotStorage.ts +0 -89
- package/src/in-memory/InMemoryView.ts +0 -208
- package/src/in-memory/index.ts +0 -5
- package/src/in-memory/utils/index.ts +0 -1
- package/src/in-memory/utils/nextCycle.ts +0 -4
- package/src/index.ts +0 -22
- package/src/interfaces/IAggregate.ts +0 -58
- package/src/interfaces/IAggregateSnapshotStorage.ts +0 -11
- package/src/interfaces/ICommand.ts +0 -3
- package/src/interfaces/ICommandBus.ts +0 -16
- package/src/interfaces/IContainer.ts +0 -27
- package/src/interfaces/IDispatchPipelineProcessor.ts +0 -35
- package/src/interfaces/IEvent.ts +0 -13
- package/src/interfaces/IEventBus.ts +0 -11
- package/src/interfaces/IEventDispatcher.ts +0 -7
- package/src/interfaces/IEventLocker.ts +0 -34
- package/src/interfaces/IEventReceptor.ts +0 -6
- package/src/interfaces/IEventSet.ts +0 -7
- package/src/interfaces/IEventStorage.ts +0 -53
- package/src/interfaces/IEventStore.ts +0 -13
- package/src/interfaces/IEventStream.ts +0 -3
- package/src/interfaces/IIdentifierProvider.ts +0 -17
- package/src/interfaces/ILogger.ts +0 -11
- package/src/interfaces/IMessage.ts +0 -22
- package/src/interfaces/IMessageBus.ts +0 -8
- package/src/interfaces/IObjectStorage.ts +0 -13
- package/src/interfaces/IObservable.ts +0 -31
- package/src/interfaces/IObserver.ts +0 -5
- package/src/interfaces/IProjection.ts +0 -20
- package/src/interfaces/ISaga.ts +0 -38
- package/src/interfaces/IViewLocker.ts +0 -46
- package/src/interfaces/Identifier.ts +0 -1
- package/src/interfaces/index.ts +0 -26
- package/src/interfaces/isObject.ts +0 -5
- package/src/rabbitmq/IContainer.ts +0 -16
- package/src/rabbitmq/RabbitMqEventBus.ts +0 -104
- package/src/rabbitmq/RabbitMqEventInjector.ts +0 -66
- package/src/rabbitmq/RabbitMqGateway.ts +0 -473
- package/src/rabbitmq/TerminationHandler.ts +0 -31
- package/src/rabbitmq/constants.ts +0 -2
- package/src/rabbitmq/index.ts +0 -3
- package/src/sqlite/AbstractSqliteAccessor.ts +0 -58
- package/src/sqlite/AbstractSqliteObjectProjection.ts +0 -31
- package/src/sqlite/AbstractSqliteView.ts +0 -53
- package/src/sqlite/IContainer.ts +0 -8
- package/src/sqlite/SqliteEventLocker.ts +0 -137
- package/src/sqlite/SqliteObjectStorage.ts +0 -142
- package/src/sqlite/SqliteObjectView.ts +0 -58
- package/src/sqlite/SqliteProjectionDataParams.ts +0 -16
- package/src/sqlite/SqliteViewLocker.ts +0 -167
- package/src/sqlite/index.ts +0 -8
- package/src/sqlite/queries/eventLockTableInit.ts +0 -10
- package/src/sqlite/queries/index.ts +0 -2
- package/src/sqlite/queries/viewLockTableInit.ts +0 -9
- package/src/sqlite/utils/getEventId.ts +0 -8
- package/src/sqlite/utils/guid.ts +0 -4
- package/src/sqlite/utils/index.ts +0 -2
- package/src/utils/Deferred.ts +0 -41
- package/src/utils/Lock.ts +0 -53
- package/src/utils/delay.ts +0 -8
- package/src/utils/getClassName.ts +0 -6
- package/src/utils/getHandler.ts +0 -20
- package/src/utils/getMessageHandlerNames.ts +0 -38
- package/src/utils/index.ts +0 -12
- package/src/utils/isClass.ts +0 -4
- package/src/utils/iteratorToArray.ts +0 -6
- package/src/utils/notEmpty.ts +0 -1
- package/src/utils/setupOneTimeEmitterSubscription.ts +0 -59
- package/src/utils/subscribe.ts +0 -65
- package/src/utils/validateHandlers.ts +0 -20
- package/types/AbstractAggregate.d.ts +0 -57
- package/types/AbstractProjection.d.ts +0 -60
- package/types/AbstractSaga.d.ts +0 -31
- package/types/AggregateCommandHandler.d.ts +0 -20
- package/types/CommandBus.d.ts +0 -27
- package/types/CqrsContainerBuilder.d.ts +0 -21
- package/types/Event.d.ts +0 -13
- package/types/EventDispatcher.d.ts +0 -32
- package/types/EventStore.d.ts +0 -34
- package/types/EventValidationProcessor.d.ts +0 -19
- package/types/SagaEventHandler.d.ts +0 -21
- package/types/in-memory/InMemoryEventStorage.d.ts +0 -24
- package/types/in-memory/InMemoryLock.d.ts +0 -21
- package/types/in-memory/InMemoryMessageBus.d.ts +0 -42
- package/types/in-memory/InMemorySnapshotStorage.d.ts +0 -37
- package/types/in-memory/InMemoryView.d.ts +0 -53
- package/types/in-memory/index.d.ts +0 -5
- package/types/in-memory/utils/index.d.ts +0 -1
- package/types/index.d.ts +0 -14
- package/types/interfaces/IAggregate.d.ts +0 -35
- package/types/interfaces/IAggregateSnapshotStorage.d.ts +0 -7
- package/types/interfaces/ICommand.d.ts +0 -2
- package/types/interfaces/ICommandBus.d.ts +0 -14
- package/types/interfaces/IContainer.d.ts +0 -23
- package/types/interfaces/IDispatchPipelineProcessor.d.ts +0 -25
- package/types/interfaces/IEvent.d.ts +0 -6
- package/types/interfaces/IEventBus.d.ts +0 -6
- package/types/interfaces/IEventDispatcher.d.ts +0 -6
- package/types/interfaces/IEventLocker.d.ts +0 -24
- package/types/interfaces/IEventReceptor.d.ts +0 -5
- package/types/interfaces/IEventSet.d.ts +0 -3
- package/types/interfaces/IEventStorage.d.ts +0 -36
- package/types/interfaces/IEventStore.d.ts +0 -9
- package/types/interfaces/IEventStream.d.ts +0 -2
- package/types/interfaces/IIdentifierProvider.d.ts +0 -10
- package/types/interfaces/IMessage.d.ts +0 -12
- package/types/interfaces/IMessageBus.d.ts +0 -7
- package/types/interfaces/IObjectStorage.d.ts +0 -8
- package/types/interfaces/IObservable.d.ts +0 -19
- package/types/interfaces/IObserver.d.ts +0 -4
- package/types/interfaces/IProjection.d.ts +0 -17
- package/types/interfaces/ISaga.d.ts +0 -30
- package/types/interfaces/Identifier.d.ts +0 -1
- package/types/interfaces/index.d.ts +0 -26
- package/types/interfaces/isObject.d.ts +0 -1
- package/types/rabbitmq/IContainer.d.ts +0 -14
- package/types/rabbitmq/RabbitMqEventBus.d.ts +0 -41
- package/types/rabbitmq/RabbitMqEventInjector.d.ts +0 -13
- package/types/rabbitmq/RabbitMqGateway.d.ts +0 -78
- package/types/rabbitmq/TerminationHandler.d.ts +0 -10
- package/types/rabbitmq/constants.d.ts +0 -2
- package/types/rabbitmq/index.d.ts +0 -3
- package/types/sqlite/AbstractSqliteAccessor.d.ts +0 -25
- package/types/sqlite/AbstractSqliteObjectProjection.d.ts +0 -8
- package/types/sqlite/AbstractSqliteView.d.ts +0 -18
- package/types/sqlite/IContainer.d.ts +0 -7
- package/types/sqlite/SqliteEventLocker.d.ts +0 -28
- package/types/sqlite/SqliteObjectStorage.d.ts +0 -16
- package/types/sqlite/SqliteObjectView.d.ts +0 -16
- package/types/sqlite/SqliteViewLocker.d.ts +0 -30
- package/types/sqlite/index.d.ts +0 -8
- package/types/sqlite/queries/index.d.ts +0 -2
- package/types/sqlite/utils/getEventId.d.ts +0 -5
- package/types/sqlite/utils/index.d.ts +0 -2
- package/types/utils/Lock.d.ts +0 -22
- package/types/utils/delay.d.ts +0 -5
- package/types/utils/getHandler.d.ts +0 -7
- package/types/utils/getMessageHandlerNames.d.ts +0 -5
- package/types/utils/index.d.ts +0 -12
- package/types/utils/isClass.d.ts +0 -1
- package/types/utils/iteratorToArray.d.ts +0 -1
- package/types/utils/notEmpty.d.ts +0 -1
- package/types/utils/setupOneTimeEmitterSubscription.d.ts +0 -12
- package/types/utils/subscribe.d.ts +0 -13
- /package/dist/{interfaces → cjs/interfaces}/IAggregate.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/ICommand.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/ICommandBus.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/IContainer.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/IEventDispatcher.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/IEventReceptor.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/IEventStore.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/IEventStream.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/ILogger.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/IObjectStorage.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/IObserver.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/IProjection.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/ISaga.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/Identifier.js +0 -0
- /package/dist/{interfaces → cjs/interfaces}/isObject.js +0 -0
- /package/dist/{rabbitmq → cjs/rabbitmq}/IContainer.js +0 -0
- /package/dist/{sqlite → cjs/sqlite}/IContainer.js +0 -0
- /package/dist/{sqlite → cjs/sqlite}/SqliteProjectionDataParams.js +0 -0
- /package/dist/{sqlite → cjs/sqlite}/queries/viewLockTableInit.js +0 -0
- /package/dist/{sqlite → cjs/sqlite}/utils/guid.js +0 -0
- /package/dist/{utils → cjs/utils}/Deferred.js +0 -0
- /package/dist/{utils → cjs/utils}/getClassName.js +0 -0
- /package/dist/{utils → cjs/utils}/isClass.js +0 -0
- /package/{types → dist/types}/in-memory/utils/nextCycle.d.ts +0 -0
- /package/{types → dist/types}/interfaces/ILogger.d.ts +0 -0
- /package/{types → dist/types}/interfaces/IViewLocker.d.ts +0 -0
- /package/{types → dist/types}/sqlite/SqliteProjectionDataParams.d.ts +0 -0
- /package/{types → dist/types}/sqlite/queries/eventLockTableInit.d.ts +0 -0
- /package/{types → dist/types}/sqlite/queries/viewLockTableInit.d.ts +0 -0
- /package/{types → dist/types}/sqlite/utils/guid.d.ts +0 -0
- /package/{types → dist/types}/utils/Deferred.d.ts +0 -0
- /package/{types → dist/types}/utils/getClassName.d.ts +0 -0
- /package/{types → dist/types}/utils/validateHandlers.d.ts +0 -0
package/src/utils/getHandler.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { IMessageHandler } from '../interfaces';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Gets a handler for a specific message type, prefers a public (w\o _ prefix) method, if available
|
|
5
|
-
*/
|
|
6
|
-
export function getHandler(context: { [key: string]: any }, messageType: string): IMessageHandler | null {
|
|
7
|
-
if (!context || typeof context !== 'object')
|
|
8
|
-
throw new TypeError('context argument required');
|
|
9
|
-
if (typeof messageType !== 'string' || !messageType.length)
|
|
10
|
-
throw new TypeError('messageType argument must be a non-empty string');
|
|
11
|
-
|
|
12
|
-
if (messageType in context && typeof context[messageType] === 'function')
|
|
13
|
-
return context[messageType].bind(context);
|
|
14
|
-
|
|
15
|
-
const privateHandlerName = `_${messageType}`;
|
|
16
|
-
if (privateHandlerName in context && typeof context[privateHandlerName] === 'function')
|
|
17
|
-
return context[privateHandlerName].bind(context);
|
|
18
|
-
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
function getInheritedPropertyNames(prototype: object): string[] {
|
|
2
|
-
const parentPrototype = prototype && Object.getPrototypeOf(prototype);
|
|
3
|
-
if (!parentPrototype)
|
|
4
|
-
return [];
|
|
5
|
-
|
|
6
|
-
const propDescriptors = Object.getOwnPropertyDescriptors(parentPrototype);
|
|
7
|
-
const propNames = Object.keys(propDescriptors);
|
|
8
|
-
|
|
9
|
-
return [
|
|
10
|
-
...propNames,
|
|
11
|
-
...getInheritedPropertyNames(parentPrototype)
|
|
12
|
-
];
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Get message handler names from a command/event handler class.
|
|
17
|
-
* Assumes all private method names start from underscore ("_").
|
|
18
|
-
*/
|
|
19
|
-
export function getMessageHandlerNames(observerInstanceOrClass: (object | Function)): string[] {
|
|
20
|
-
if (!observerInstanceOrClass)
|
|
21
|
-
throw new TypeError('observerInstanceOrClass argument required');
|
|
22
|
-
|
|
23
|
-
const prototype = typeof observerInstanceOrClass === 'function' ?
|
|
24
|
-
observerInstanceOrClass.prototype :
|
|
25
|
-
Object.getPrototypeOf(observerInstanceOrClass);
|
|
26
|
-
|
|
27
|
-
if (!prototype)
|
|
28
|
-
throw new TypeError('prototype cannot be resolved');
|
|
29
|
-
|
|
30
|
-
const inheritedProperties = getInheritedPropertyNames(prototype);
|
|
31
|
-
const propDescriptors = Object.getOwnPropertyDescriptors(prototype);
|
|
32
|
-
const propNames = Object.keys(propDescriptors);
|
|
33
|
-
|
|
34
|
-
return propNames.filter(key =>
|
|
35
|
-
!key.startsWith('_') &&
|
|
36
|
-
!inheritedProperties.includes(key) &&
|
|
37
|
-
typeof propDescriptors[key].value === 'function');
|
|
38
|
-
}
|
package/src/utils/index.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export * from './Deferred';
|
|
2
|
-
export * from './delay';
|
|
3
|
-
export * from './getClassName';
|
|
4
|
-
export * from './getHandler';
|
|
5
|
-
export * from './getMessageHandlerNames';
|
|
6
|
-
export * from './isClass';
|
|
7
|
-
export * from './iteratorToArray';
|
|
8
|
-
export * from './Lock';
|
|
9
|
-
export * from './notEmpty';
|
|
10
|
-
export * from './setupOneTimeEmitterSubscription';
|
|
11
|
-
export * from './subscribe';
|
|
12
|
-
export * from './validateHandlers';
|
package/src/utils/isClass.ts
DELETED
package/src/utils/notEmpty.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const notEmpty = <T>(t: T): t is Exclude<T, undefined | null> => t !== undefined && t !== null;
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { IEvent, ILogger, IObservable } from '../interfaces';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Create one-time eventEmitter subscription for one or multiple events that match a filter
|
|
5
|
-
*
|
|
6
|
-
* @param {IObservable} emitter
|
|
7
|
-
* @param {string[]} messageTypes Array of event type to subscribe to
|
|
8
|
-
* @param {function(IEvent):any} [handler] Optional handler to execute for a first event received
|
|
9
|
-
* @param {function(IEvent):boolean} [filter] Optional filter to apply before executing a handler
|
|
10
|
-
* @param {ILogger} logger
|
|
11
|
-
* @return {Promise<IEvent>} Resolves to first event that passes filter
|
|
12
|
-
*/
|
|
13
|
-
export function setupOneTimeEmitterSubscription(
|
|
14
|
-
emitter: IObservable,
|
|
15
|
-
messageTypes: string[],
|
|
16
|
-
filter?: (e: IEvent) => boolean,
|
|
17
|
-
handler?: (e: IEvent) => void,
|
|
18
|
-
logger?: ILogger
|
|
19
|
-
): Promise<IEvent> {
|
|
20
|
-
if (typeof emitter !== 'object' || !emitter)
|
|
21
|
-
throw new TypeError('emitter argument must be an Object');
|
|
22
|
-
if (!Array.isArray(messageTypes) || messageTypes.some(m => !m || typeof m !== 'string'))
|
|
23
|
-
throw new TypeError('messageTypes argument must be an Array of non-empty Strings');
|
|
24
|
-
if (handler && typeof handler !== 'function')
|
|
25
|
-
throw new TypeError('handler argument, when specified, must be a Function');
|
|
26
|
-
if (filter && typeof filter !== 'function')
|
|
27
|
-
throw new TypeError('filter argument, when specified, must be a Function');
|
|
28
|
-
|
|
29
|
-
return new Promise(resolve => {
|
|
30
|
-
|
|
31
|
-
// handler will be invoked only once,
|
|
32
|
-
// even if multiple events have been emitted before subscription was destroyed
|
|
33
|
-
// https://nodejs.org/api/events.html#events_emitter_removelistener_eventname_listener
|
|
34
|
-
let handled = false;
|
|
35
|
-
|
|
36
|
-
function filteredHandler(event: IEvent) {
|
|
37
|
-
if (filter && !filter(event))
|
|
38
|
-
return;
|
|
39
|
-
if (handled)
|
|
40
|
-
return;
|
|
41
|
-
handled = true;
|
|
42
|
-
|
|
43
|
-
for (const messageType of messageTypes)
|
|
44
|
-
emitter.off(messageType, filteredHandler);
|
|
45
|
-
|
|
46
|
-
logger?.debug(`'${event.type}' received, one-time subscription to '${messageTypes.join(',')}' removed`);
|
|
47
|
-
|
|
48
|
-
if (handler)
|
|
49
|
-
handler(event);
|
|
50
|
-
|
|
51
|
-
resolve(event);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
for (const messageType of messageTypes)
|
|
55
|
-
emitter.on(messageType, filteredHandler);
|
|
56
|
-
|
|
57
|
-
logger?.debug(`set up one-time ${filter ? 'filtered subscription' : 'subscription'} to '${messageTypes.join(',')}'`);
|
|
58
|
-
});
|
|
59
|
-
}
|
package/src/utils/subscribe.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { IMessageHandler, IObservable } from '../interfaces';
|
|
2
|
-
import { getHandler } from './getHandler';
|
|
3
|
-
import { getMessageHandlerNames } from './getMessageHandlerNames';
|
|
4
|
-
|
|
5
|
-
const unique = <T>(arr: T[]): T[] => [...new Set(arr)];
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Get a list of message types handled by observer
|
|
9
|
-
*/
|
|
10
|
-
export function getHandledMessageTypes(observerInstanceOrClass: (object | Function)): string[] {
|
|
11
|
-
if (!observerInstanceOrClass)
|
|
12
|
-
throw new TypeError('observerInstanceOrClass argument required');
|
|
13
|
-
|
|
14
|
-
const prototype = Object.getPrototypeOf(observerInstanceOrClass);
|
|
15
|
-
if (prototype && prototype.constructor && prototype.constructor.handles)
|
|
16
|
-
return prototype.constructor.handles;
|
|
17
|
-
|
|
18
|
-
return getMessageHandlerNames(observerInstanceOrClass);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Subscribe observer to observable
|
|
23
|
-
*/
|
|
24
|
-
export function subscribe(
|
|
25
|
-
observable: IObservable,
|
|
26
|
-
observer: object,
|
|
27
|
-
options: {
|
|
28
|
-
messageTypes?: string[],
|
|
29
|
-
masterHandler?: IMessageHandler,
|
|
30
|
-
queueName?: string
|
|
31
|
-
} = {}
|
|
32
|
-
) {
|
|
33
|
-
if (typeof observable !== 'object' || !observable)
|
|
34
|
-
throw new TypeError('observable argument must be an Object');
|
|
35
|
-
if (typeof observable.on !== 'function')
|
|
36
|
-
throw new TypeError('observable.on must be a Function');
|
|
37
|
-
if (typeof observer !== 'object' || !observer)
|
|
38
|
-
throw new TypeError('observer argument must be an Object');
|
|
39
|
-
|
|
40
|
-
const { masterHandler, messageTypes, queueName } = options;
|
|
41
|
-
if (masterHandler && typeof masterHandler !== 'function')
|
|
42
|
-
throw new TypeError('masterHandler parameter, when provided, must be a Function');
|
|
43
|
-
if (queueName && typeof observable.queue !== 'function')
|
|
44
|
-
throw new TypeError('observable.queue, when queueName is specified, must be a Function');
|
|
45
|
-
|
|
46
|
-
const subscribeTo = messageTypes || getHandledMessageTypes(observer);
|
|
47
|
-
if (!Array.isArray(subscribeTo))
|
|
48
|
-
throw new TypeError('either options.messageTypes, observer.handles or ObserverType.handles is required');
|
|
49
|
-
|
|
50
|
-
for (const messageType of unique(subscribeTo)) {
|
|
51
|
-
const handler = masterHandler || getHandler(observer, messageType);
|
|
52
|
-
if (!handler)
|
|
53
|
-
throw new Error(`'${messageType}' handler is not defined or not a function`);
|
|
54
|
-
|
|
55
|
-
if (queueName) {
|
|
56
|
-
if (!observable.queue)
|
|
57
|
-
throw new TypeError('Observer does not support named queues');
|
|
58
|
-
|
|
59
|
-
observable.queue(queueName).on(messageType, handler);
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
observable.on(messageType, handler);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { getHandler } from './getHandler';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Ensure instance has handlers declared for all handled message types
|
|
5
|
-
*/
|
|
6
|
-
export function validateHandlers(instance: object, handlesFieldName = 'handles') {
|
|
7
|
-
if (!instance)
|
|
8
|
-
throw new TypeError('instance argument required');
|
|
9
|
-
|
|
10
|
-
const messageTypes = Object.getPrototypeOf(instance).constructor[handlesFieldName];
|
|
11
|
-
if (messageTypes === undefined)
|
|
12
|
-
return;
|
|
13
|
-
if (!Array.isArray(messageTypes))
|
|
14
|
-
throw new TypeError('handles getter, when defined, must return an Array of Strings');
|
|
15
|
-
|
|
16
|
-
for (const type of messageTypes) {
|
|
17
|
-
if (!getHandler(instance, type))
|
|
18
|
-
throw new Error(`'${type}' handler is not defined or not a function`);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { IAggregate, IMutableAggregateState, ICommand, Identifier, IEvent, IEventSet, IAggregateConstructorParams } from './interfaces';
|
|
2
|
-
/**
|
|
3
|
-
* Base class for Aggregate definition
|
|
4
|
-
*/
|
|
5
|
-
export declare abstract class AbstractAggregate<TState extends IMutableAggregateState | object | void> implements IAggregate {
|
|
6
|
-
#private;
|
|
7
|
-
/**
|
|
8
|
-
* List of command names handled by the Aggregate.
|
|
9
|
-
*
|
|
10
|
-
* Can be overridden in the Aggregate implementation to explicitly define supported commands.
|
|
11
|
-
* If not overridden, all public methods will be treated as command handlers by default.
|
|
12
|
-
*
|
|
13
|
-
* @example ['createUser', 'changePassword'];
|
|
14
|
-
*/
|
|
15
|
-
static get handles(): string[];
|
|
16
|
-
/** Internal aggregate state */
|
|
17
|
-
protected state: TState | undefined;
|
|
18
|
-
/** Command being handled by aggregate */
|
|
19
|
-
protected command?: ICommand;
|
|
20
|
-
/** Unique aggregate instance identifier */
|
|
21
|
-
get id(): Identifier;
|
|
22
|
-
/** Aggregate instance version */
|
|
23
|
-
get version(): number;
|
|
24
|
-
/** Restored snapshot version */
|
|
25
|
-
get snapshotVersion(): number | undefined;
|
|
26
|
-
/** Events emitted by Aggregate */
|
|
27
|
-
get changes(): IEventSet;
|
|
28
|
-
/**
|
|
29
|
-
* Override to define whether an aggregate state snapshot should be taken
|
|
30
|
-
*
|
|
31
|
-
* @example
|
|
32
|
-
* // create snapshot every 50 events
|
|
33
|
-
* return this.version % 50 === 0;
|
|
34
|
-
*/
|
|
35
|
-
get shouldTakeSnapshot(): boolean;
|
|
36
|
-
constructor(options: IAggregateConstructorParams<TState>);
|
|
37
|
-
/** Pass command to command handler */
|
|
38
|
-
handle(command: ICommand): any;
|
|
39
|
-
/** Mutate aggregate state and increment aggregate version */
|
|
40
|
-
mutate(event: IEvent): void;
|
|
41
|
-
/** Format and register aggregate event and mutate aggregate state */
|
|
42
|
-
protected emit<TPayload>(type: string, payload?: TPayload): void;
|
|
43
|
-
/** Format event based on a current aggregate state and a command being executed */
|
|
44
|
-
protected makeEvent<TPayload>(type: string, payload?: TPayload, sourceCommand?: ICommand): IEvent<TPayload>;
|
|
45
|
-
/** Register aggregate event and mutate aggregate state */
|
|
46
|
-
protected emitRaw<TPayload>(event: IEvent<TPayload>): void;
|
|
47
|
-
/**
|
|
48
|
-
* Take an aggregate state snapshot and add it to the changes queue
|
|
49
|
-
*/
|
|
50
|
-
takeSnapshot(): void;
|
|
51
|
-
/** Create an aggregate state snapshot */
|
|
52
|
-
makeSnapshot(): TState;
|
|
53
|
-
/** Restore aggregate state from a snapshot */
|
|
54
|
-
protected restoreSnapshot(snapshotEvent: IEvent<TState>): void;
|
|
55
|
-
/** Get human-readable aggregate identifier */
|
|
56
|
-
toString(): string;
|
|
57
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { IViewLocker, IEventLocker, IProjection, ILogger, IExtendableLogger, IEventStore, IEvent } from './interfaces';
|
|
2
|
-
export type AbstractProjectionParams<T> = {
|
|
3
|
-
/**
|
|
4
|
-
* The default view associated with the projection.
|
|
5
|
-
* Can optionally implement IViewLocker and/or IEventLocker.
|
|
6
|
-
*/
|
|
7
|
-
view?: T;
|
|
8
|
-
/**
|
|
9
|
-
* Manages view restoration state to prevent early access to an inconsistent view
|
|
10
|
-
* or conflicts from concurrent restoration by other processes.
|
|
11
|
-
*/
|
|
12
|
-
viewLocker?: IViewLocker;
|
|
13
|
-
/**
|
|
14
|
-
* Tracks event processing state to prevent concurrent handling by multiple processes.
|
|
15
|
-
*/
|
|
16
|
-
eventLocker?: IEventLocker;
|
|
17
|
-
logger?: ILogger | IExtendableLogger;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Base class for Projection definition
|
|
21
|
-
*/
|
|
22
|
-
export declare abstract class AbstractProjection<TView = any> implements IProjection<TView> {
|
|
23
|
-
#private;
|
|
24
|
-
/**
|
|
25
|
-
* List of event types handled by the projection. Can be overridden in the projection implementation.
|
|
26
|
-
* If not overridden, event types will be inferred from handler methods defined on the Projection class.
|
|
27
|
-
*/
|
|
28
|
-
static get handles(): string[];
|
|
29
|
-
protected _logger?: ILogger;
|
|
30
|
-
/**
|
|
31
|
-
* The default view associated with the projection.
|
|
32
|
-
* Can optionally implement IViewLocker and/or IEventLocker.
|
|
33
|
-
*/
|
|
34
|
-
get view(): TView;
|
|
35
|
-
protected set view(value: TView);
|
|
36
|
-
/**
|
|
37
|
-
* Manages view restoration state to prevent early access to an inconsistent view
|
|
38
|
-
* or conflicts from concurrent restoration by other processes.
|
|
39
|
-
*/
|
|
40
|
-
protected get _viewLocker(): IViewLocker | undefined;
|
|
41
|
-
protected set _viewLocker(value: IViewLocker | undefined);
|
|
42
|
-
/**
|
|
43
|
-
* Tracks event processing state to prevent concurrent handling by multiple processes.
|
|
44
|
-
*/
|
|
45
|
-
protected get _eventLocker(): IEventLocker | undefined;
|
|
46
|
-
protected set _eventLocker(value: IEventLocker | undefined);
|
|
47
|
-
constructor({ view, viewLocker, eventLocker, logger }?: AbstractProjectionParams<TView>);
|
|
48
|
-
/** Subscribe to event store */
|
|
49
|
-
subscribe(eventStore: IEventStore): Promise<void>;
|
|
50
|
-
/** Pass event to projection event handler */
|
|
51
|
-
project(event: IEvent): Promise<void>;
|
|
52
|
-
/** Pass event to projection event handler, without awaiting for restore operation to complete */
|
|
53
|
-
protected _project(event: IEvent): Promise<void>;
|
|
54
|
-
/** Restore projection view from event store */
|
|
55
|
-
restore(eventStore: IEventStore): Promise<void>;
|
|
56
|
-
/** Restore projection view from event store */
|
|
57
|
-
protected _restore(eventStore: IEventStore): Promise<void>;
|
|
58
|
-
/** Handle error on restoring. Logs and throws error by default */
|
|
59
|
-
protected _onRestoringError(error: Error, event: IEvent): void;
|
|
60
|
-
}
|
package/types/AbstractSaga.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { ICommand, Identifier, IEvent, ISaga, ISagaConstructorParams } from './interfaces';
|
|
2
|
-
/**
|
|
3
|
-
* Base class for Saga definition
|
|
4
|
-
*/
|
|
5
|
-
export declare abstract class AbstractSaga implements ISaga {
|
|
6
|
-
#private;
|
|
7
|
-
/** List of events that start new saga, must be overridden in Saga implementation */
|
|
8
|
-
static get startsWith(): string[];
|
|
9
|
-
/** List of event types being handled by Saga, must be overridden in Saga implementation */
|
|
10
|
-
static get handles(): string[];
|
|
11
|
-
/** Saga ID */
|
|
12
|
-
get id(): Identifier;
|
|
13
|
-
/** Saga version */
|
|
14
|
-
get version(): number;
|
|
15
|
-
/** Command execution queue */
|
|
16
|
-
get uncommittedMessages(): ICommand[];
|
|
17
|
-
/**
|
|
18
|
-
* Creates an instance of AbstractSaga
|
|
19
|
-
*/
|
|
20
|
-
constructor(options: ISagaConstructorParams);
|
|
21
|
-
/** Modify saga state by applying an event */
|
|
22
|
-
apply(event: IEvent): Promise<void> | void;
|
|
23
|
-
/** Format a command and put it to the execution queue */
|
|
24
|
-
protected enqueue(commandType: string, aggregateId: Identifier | undefined, payload: object): void;
|
|
25
|
-
/** Put a command to the execution queue */
|
|
26
|
-
protected enqueueRaw(command: ICommand): void;
|
|
27
|
-
/** Clear the execution queue */
|
|
28
|
-
resetUncommittedMessages(): void;
|
|
29
|
-
/** Get human-readable Saga name */
|
|
30
|
-
toString(): string;
|
|
31
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { IAggregateConstructor, IAggregateFactory, ICommand, ICommandBus, ICommandHandler, IContainer, IEventSet } from './interfaces';
|
|
2
|
-
/**
|
|
3
|
-
* Aggregate command handler.
|
|
4
|
-
*
|
|
5
|
-
* Subscribes to event store and awaits aggregate commands.
|
|
6
|
-
* Upon command receiving creates an instance of aggregate,
|
|
7
|
-
* restores its state, passes command and commits emitted events to event store.
|
|
8
|
-
*/
|
|
9
|
-
export declare class AggregateCommandHandler implements ICommandHandler {
|
|
10
|
-
#private;
|
|
11
|
-
constructor({ eventStore, aggregateType, aggregateFactory, handles, logger }: Pick<IContainer, 'eventStore' | 'logger'> & {
|
|
12
|
-
aggregateType?: IAggregateConstructor<any>;
|
|
13
|
-
aggregateFactory?: IAggregateFactory<any>;
|
|
14
|
-
handles?: string[];
|
|
15
|
-
});
|
|
16
|
-
/** Subscribe to all command types handled by aggregateType */
|
|
17
|
-
subscribe(commandBus: ICommandBus): void;
|
|
18
|
-
/** Pass a command to corresponding aggregate */
|
|
19
|
-
execute(cmd: ICommand): Promise<IEventSet>;
|
|
20
|
-
}
|
package/types/CommandBus.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { ICommand, ICommandBus, IEventSet, IExtendableLogger, ILogger, IMessageBus, IMessageHandler } from './interfaces';
|
|
2
|
-
export declare class CommandBus implements ICommandBus {
|
|
3
|
-
#private;
|
|
4
|
-
constructor(o?: {
|
|
5
|
-
messageBus?: IMessageBus;
|
|
6
|
-
logger?: ILogger | IExtendableLogger;
|
|
7
|
-
});
|
|
8
|
-
/**
|
|
9
|
-
* Set up a command handler
|
|
10
|
-
*/
|
|
11
|
-
on(commandType: string, handler: IMessageHandler): void;
|
|
12
|
-
/**
|
|
13
|
-
* Remove previously installed command handler
|
|
14
|
-
*/
|
|
15
|
-
off(commandType: string, handler: IMessageHandler): void;
|
|
16
|
-
/**
|
|
17
|
-
* Format and send a command for execution
|
|
18
|
-
*/
|
|
19
|
-
send<TPayload>(type: string, aggregateId: string, options: {
|
|
20
|
-
payload: TPayload;
|
|
21
|
-
context: object;
|
|
22
|
-
}, ...otherArgs: object[]): Promise<IEventSet>;
|
|
23
|
-
/**
|
|
24
|
-
* Send a command for execution
|
|
25
|
-
*/
|
|
26
|
-
sendRaw<TPayload>(command: ICommand<TPayload>): Promise<IEventSet>;
|
|
27
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { ContainerBuilder, TypeConfig, TClassOrFactory } from 'di0';
|
|
2
|
-
import { IAggregateConstructor, ICommandHandler, IEventReceptor, IProjection, IProjectionConstructor, ISagaConstructor } from './interfaces';
|
|
3
|
-
export declare class CqrsContainerBuilder extends ContainerBuilder {
|
|
4
|
-
constructor(options?: {
|
|
5
|
-
types: Readonly<TypeConfig<any>[]>;
|
|
6
|
-
singletones: object;
|
|
7
|
-
});
|
|
8
|
-
/** Register command handler, which will be subscribed to commandBus upon instance creation */
|
|
9
|
-
registerCommandHandler(typeOrFactory: TClassOrFactory<ICommandHandler>): TypeConfig<ICommandHandler>;
|
|
10
|
-
/** Register event receptor, which will be subscribed to eventStore upon instance creation */
|
|
11
|
-
registerEventReceptor(typeOrFactory: TClassOrFactory<IEventReceptor>): TypeConfig<IEventReceptor>;
|
|
12
|
-
/**
|
|
13
|
-
* Register projection, which will expose view and will be subscribed
|
|
14
|
-
* to eventStore and will restore its state upon instance creation
|
|
15
|
-
*/
|
|
16
|
-
registerProjection(ProjectionType: IProjectionConstructor, exposedViewAlias?: string): TypeConfig<IProjection<any>>;
|
|
17
|
-
/** Register aggregate type in the container */
|
|
18
|
-
registerAggregate(AggregateType: IAggregateConstructor<any>): TypeConfig<ICommandHandler>;
|
|
19
|
-
/** Register saga type in the container */
|
|
20
|
-
registerSaga(SagaType: ISagaConstructor): TypeConfig<IEventReceptor>;
|
|
21
|
-
}
|
package/types/Event.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { IEvent } from './interfaces';
|
|
2
|
-
/**
|
|
3
|
-
* Get text description of an event for logging purposes
|
|
4
|
-
*/
|
|
5
|
-
export declare function describe(event: IEvent): string;
|
|
6
|
-
/**
|
|
7
|
-
* Get text description of a set of events for logging purposes
|
|
8
|
-
*/
|
|
9
|
-
export declare function describeMultiple(events: ReadonlyArray<IEvent>): string;
|
|
10
|
-
/**
|
|
11
|
-
* Validate event structure
|
|
12
|
-
*/
|
|
13
|
-
export declare function validate(event: IEvent): void;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { IEventDispatcher, IDispatchPipelineProcessor, IEventSet, IEventBus, IContainer } from './interfaces';
|
|
2
|
-
export declare class EventDispatcher implements IEventDispatcher {
|
|
3
|
-
#private;
|
|
4
|
-
/**
|
|
5
|
-
* Event bus where dispatched messages are delivered after processing.
|
|
6
|
-
*
|
|
7
|
-
* If not provided in the constructor, defaults to an instance of `InMemoryMessageBus`.
|
|
8
|
-
*/
|
|
9
|
-
eventBus: IEventBus;
|
|
10
|
-
/**
|
|
11
|
-
* Maximum number of event batches that each pipeline processor can handle in parallel.
|
|
12
|
-
*/
|
|
13
|
-
concurrentLimit: number;
|
|
14
|
-
constructor(o?: Pick<IContainer, 'eventBus' | 'eventDispatchPipeline'> & {
|
|
15
|
-
eventDispatcherConfig?: {
|
|
16
|
-
concurrentLimit?: number;
|
|
17
|
-
};
|
|
18
|
-
});
|
|
19
|
-
addPipelineProcessors(eventDispatchPipeline: IDispatchPipelineProcessor[]): void;
|
|
20
|
-
/**
|
|
21
|
-
* Adds a preprocessor to the event dispatch pipeline.
|
|
22
|
-
*
|
|
23
|
-
* Preprocessors run in order they are added but process separate batches in parallel, maintaining FIFO order.
|
|
24
|
-
*/
|
|
25
|
-
addPipelineProcessor(preprocessor: IDispatchPipelineProcessor): void;
|
|
26
|
-
/**
|
|
27
|
-
* Dispatch a set of events through the processing pipeline.
|
|
28
|
-
*
|
|
29
|
-
* Returns a promise that resolves after all events are processed and published.
|
|
30
|
-
*/
|
|
31
|
-
dispatch(events: IEventSet, meta?: Record<string, any>): Promise<IEventSet>;
|
|
32
|
-
}
|
package/types/EventStore.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { IEvent, IEventSet, IMessageHandler, IObservable, IEventStream, IEventStore, EventQueryAfter, EventQueryBefore, Identifier, IEventBus, IContainer } from './interfaces';
|
|
2
|
-
export declare class EventStore implements IEventStore {
|
|
3
|
-
#private;
|
|
4
|
-
eventBus: IEventBus;
|
|
5
|
-
constructor({ eventStorageReader, identifierProvider, snapshotStorage, eventBus, eventDispatcher, logger }: Pick<IContainer, 'identifierProvider' | 'eventStorageReader' | 'snapshotStorage' | 'eventBus' | 'eventDispatcher' | 'logger'>);
|
|
6
|
-
/**
|
|
7
|
-
* Generates and returns a new unique identifier using the configured identifier provider.
|
|
8
|
-
*
|
|
9
|
-
* @returns A promise resolving to a unique identifier suitable for aggregates, sagas, and events.
|
|
10
|
-
*/
|
|
11
|
-
getNewId(): Promise<Identifier>;
|
|
12
|
-
getEventsByTypes(eventTypes: Readonly<string[]>, options?: EventQueryAfter): IEventStream;
|
|
13
|
-
/** Retrieve all events of specific Aggregate */
|
|
14
|
-
getAggregateEvents(aggregateId: Identifier): IEventStream;
|
|
15
|
-
/** Retrieve events of specific Saga */
|
|
16
|
-
getSagaEvents(sagaId: Identifier, filter: EventQueryBefore): AsyncGenerator<Readonly<IEvent>, void, any>;
|
|
17
|
-
/**
|
|
18
|
-
* Register event types that start sagas.
|
|
19
|
-
* Upon such event commit a new sagaId will be assigned
|
|
20
|
-
*/
|
|
21
|
-
registerSagaStarters(eventTypes?: string[]): void;
|
|
22
|
-
/**
|
|
23
|
-
* Validate events, commit to storage and publish to messageBus, if needed
|
|
24
|
-
*
|
|
25
|
-
* @param events - a set of events to commit
|
|
26
|
-
* @returns Signed and committed events
|
|
27
|
-
*/
|
|
28
|
-
dispatch(events: IEventSet): Promise<IEventSet>;
|
|
29
|
-
on(messageType: string, handler: IMessageHandler): void;
|
|
30
|
-
off(messageType: string, handler: IMessageHandler): void;
|
|
31
|
-
queue(name: string): IObservable;
|
|
32
|
-
/** Creates one-time subscription for one or multiple events that match a filter */
|
|
33
|
-
once(messageTypes: string | string[], handler?: IMessageHandler, filter?: (e: IEvent) => boolean): Promise<IEvent>;
|
|
34
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { DispatchPipelineBatch, IEvent, IDispatchPipelineProcessor } from './interfaces';
|
|
2
|
-
export type EventValidator = (event: IEvent) => void;
|
|
3
|
-
/**
|
|
4
|
-
* Processor that validates the format of events.
|
|
5
|
-
* Rejects the batch if any event fails validation.
|
|
6
|
-
*/
|
|
7
|
-
export declare class EventValidationProcessor implements IDispatchPipelineProcessor {
|
|
8
|
-
#private;
|
|
9
|
-
constructor(o?: {
|
|
10
|
-
eventFormatValidator?: EventValidator;
|
|
11
|
-
});
|
|
12
|
-
/**
|
|
13
|
-
* Processes a batch of dispatch pipeline items by validating each event within the batch.
|
|
14
|
-
* It iterates through the batch and calls the private `#validate` method for each event found.
|
|
15
|
-
*
|
|
16
|
-
* This method is part of the `IDispatchPipelineProcessor` interface.
|
|
17
|
-
*/
|
|
18
|
-
process(batch: DispatchPipelineBatch): Promise<DispatchPipelineBatch>;
|
|
19
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { IContainer, IEvent, IEventReceptor, IObservable, ISagaConstructor, ISagaFactory } from './interfaces';
|
|
2
|
-
/**
|
|
3
|
-
* Listens to Saga events,
|
|
4
|
-
* creates new saga or restores it from event store,
|
|
5
|
-
* applies new events
|
|
6
|
-
* and passes command(s) to command bus
|
|
7
|
-
*/
|
|
8
|
-
export declare class SagaEventHandler implements IEventReceptor {
|
|
9
|
-
#private;
|
|
10
|
-
constructor(options: Pick<IContainer, 'eventStore' | 'commandBus' | 'logger'> & {
|
|
11
|
-
sagaType?: ISagaConstructor;
|
|
12
|
-
sagaFactory?: ISagaFactory;
|
|
13
|
-
queueName?: string;
|
|
14
|
-
startsWith?: string[];
|
|
15
|
-
handles?: string[];
|
|
16
|
-
});
|
|
17
|
-
/** Overrides observer subscribe method */
|
|
18
|
-
subscribe(eventStore: IObservable): void;
|
|
19
|
-
/** Handle saga event */
|
|
20
|
-
handle(event: IEvent): Promise<void>;
|
|
21
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { IIdentifierProvider, IEvent, IEventSet, EventQueryAfter, IEventStorageReader, IEventStream, IEventStorageWriter, Identifier, IDispatchPipelineProcessor, DispatchPipelineBatch } from '../interfaces';
|
|
2
|
-
/**
|
|
3
|
-
* A simple event storage implementation intended to use for tests only.
|
|
4
|
-
* Storage content resets on each app restart.
|
|
5
|
-
*/
|
|
6
|
-
export declare class InMemoryEventStorage implements IEventStorageReader, IEventStorageWriter, IIdentifierProvider, IDispatchPipelineProcessor {
|
|
7
|
-
#private;
|
|
8
|
-
getNewId(): string;
|
|
9
|
-
commitEvents(events: IEventSet): Promise<IEventSet>;
|
|
10
|
-
getAggregateEvents(aggregateId: Identifier, options?: {
|
|
11
|
-
snapshot: IEvent;
|
|
12
|
-
}): IEventStream;
|
|
13
|
-
getSagaEvents(sagaId: Identifier, { beforeEvent }: {
|
|
14
|
-
beforeEvent: IEvent;
|
|
15
|
-
}): IEventStream;
|
|
16
|
-
getEventsByTypes(eventTypes: Readonly<string[]>, options?: EventQueryAfter): IEventStream;
|
|
17
|
-
/**
|
|
18
|
-
* Processes a batch of dispatch pipeline items, extracts the events,
|
|
19
|
-
* commits them to the in-memory storage, and returns the original batch.
|
|
20
|
-
*
|
|
21
|
-
* This method is part of the `IDispatchPipelineProcessor` interface.
|
|
22
|
-
*/
|
|
23
|
-
process(batch: DispatchPipelineBatch): Promise<DispatchPipelineBatch>;
|
|
24
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export declare class InMemoryLock {
|
|
2
|
-
#private;
|
|
3
|
-
/**
|
|
4
|
-
* Indicates if lock is acquired
|
|
5
|
-
*/
|
|
6
|
-
get locked(): boolean;
|
|
7
|
-
/**
|
|
8
|
-
* Acquire the lock on the current instance.
|
|
9
|
-
* Resolves when the lock is successfully acquired
|
|
10
|
-
*/
|
|
11
|
-
lock(): Promise<void>;
|
|
12
|
-
/**
|
|
13
|
-
* Release the lock acquired earlier
|
|
14
|
-
*/
|
|
15
|
-
unlock(): Promise<void>;
|
|
16
|
-
/**
|
|
17
|
-
* Wait until the lock is released.
|
|
18
|
-
* Resolves immediately if the lock is not acquired
|
|
19
|
-
*/
|
|
20
|
-
once(event: 'unlocked'): Promise<void>;
|
|
21
|
-
}
|