@cratis/chronicle 6.12.0 → 6.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/EventStore.ts +4 -0
- package/IEventStore.ts +7 -0
- package/dist/EventStore.d.ts +2 -0
- package/dist/EventStore.d.ts.map +1 -1
- package/dist/EventStore.js +3 -0
- package/dist/EventStore.js.map +1 -1
- package/dist/IEventStore.d.ts +6 -0
- package/dist/IEventStore.d.ts.map +1 -1
- package/dist/observation/IObservers.d.ts +28 -0
- package/dist/observation/IObservers.d.ts.map +1 -0
- package/dist/observation/IObservers.js +4 -0
- package/dist/observation/IObservers.js.map +1 -0
- package/dist/observation/ObserverInformation.d.ts +24 -0
- package/dist/observation/ObserverInformation.d.ts.map +1 -0
- package/dist/observation/ObserverInformation.js +4 -0
- package/dist/observation/ObserverInformation.js.map +1 -0
- package/dist/observation/ObserverRemovalOutcome.d.ts +14 -0
- package/dist/observation/ObserverRemovalOutcome.d.ts.map +1 -0
- package/dist/observation/ObserverRemovalOutcome.js +17 -0
- package/dist/observation/ObserverRemovalOutcome.js.map +1 -0
- package/dist/observation/ObserverRemovalResult.d.ts +17 -0
- package/dist/observation/ObserverRemovalResult.d.ts.map +1 -0
- package/dist/observation/ObserverRemovalResult.js +4 -0
- package/dist/observation/ObserverRemovalResult.js.map +1 -0
- package/dist/observation/ObserverType.d.ts +16 -0
- package/dist/observation/ObserverType.d.ts.map +1 -0
- package/dist/observation/ObserverType.js +19 -0
- package/dist/observation/ObserverType.js.map +1 -0
- package/dist/observation/Observers.d.ts +24 -0
- package/dist/observation/Observers.d.ts.map +1 -0
- package/dist/observation/Observers.js +43 -0
- package/dist/observation/Observers.js.map +1 -0
- package/dist/observation/index.d.ts +8 -0
- package/dist/observation/index.d.ts.map +1 -1
- package/dist/observation/index.js +5 -0
- package/dist/observation/index.js.map +1 -1
- package/dist/observation/toObserverInformation.d.ts +16 -0
- package/dist/observation/toObserverInformation.d.ts.map +1 -0
- package/dist/observation/toObserverInformation.js +43 -0
- package/dist/observation/toObserverInformation.js.map +1 -0
- package/dist/observation/toObserverRemovalResult.d.ts +16 -0
- package/dist/observation/toObserverRemovalResult.d.ts.map +1 -0
- package/dist/observation/toObserverRemovalResult.js +37 -0
- package/dist/observation/toObserverRemovalResult.js.map +1 -0
- package/dist/reducers/ReducerEventDispatcher.d.ts +14 -0
- package/dist/reducers/ReducerEventDispatcher.d.ts.map +1 -0
- package/dist/reducers/ReducerEventDispatcher.js +35 -0
- package/dist/reducers/ReducerEventDispatcher.js.map +1 -0
- package/dist/reducers/ReducerEventHandler.d.ts +7 -0
- package/dist/reducers/ReducerEventHandler.d.ts.map +1 -0
- package/dist/reducers/ReducerEventHandler.js +4 -0
- package/dist/reducers/ReducerEventHandler.js.map +1 -0
- package/dist/reducers/Reducers.d.ts +0 -1
- package/dist/reducers/Reducers.d.ts.map +1 -1
- package/dist/reducers/Reducers.js +11 -30
- package/dist/reducers/Reducers.js.map +1 -1
- package/dist/testing/ReadModelScenario.d.ts +33 -0
- package/dist/testing/ReadModelScenario.d.ts.map +1 -0
- package/dist/testing/ReadModelScenario.js +137 -0
- package/dist/testing/ReadModelScenario.js.map +1 -0
- package/dist/testing/ReadModelScenarioGiven.d.ts +11 -0
- package/dist/testing/ReadModelScenarioGiven.d.ts.map +1 -0
- package/dist/testing/ReadModelScenarioGiven.js +18 -0
- package/dist/testing/ReadModelScenarioGiven.js.map +1 -0
- package/dist/testing/ReadModelScenarioGivenBuilder.d.ts +10 -0
- package/dist/testing/ReadModelScenarioGivenBuilder.d.ts.map +1 -0
- package/dist/testing/ReadModelScenarioGivenBuilder.js +15 -0
- package/dist/testing/ReadModelScenarioGivenBuilder.js.map +1 -0
- package/dist/testing/index.d.ts +4 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +6 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/observation/IObservers.ts +32 -0
- package/observation/ObserverInformation.ts +33 -0
- package/observation/ObserverRemovalOutcome.ts +19 -0
- package/observation/ObserverRemovalResult.ts +22 -0
- package/observation/ObserverType.ts +22 -0
- package/observation/Observers.spec.ts +115 -0
- package/observation/Observers.ts +49 -0
- package/observation/index.ts +8 -0
- package/observation/toObserverInformation.ts +46 -0
- package/observation/toObserverRemovalResult.ts +40 -0
- package/package.json +7 -2
- package/reducers/ReducerEventDispatcher.ts +47 -0
- package/reducers/ReducerEventHandler.ts +9 -0
- package/reducers/Reducers.ts +13 -42
- package/testing/ReadModelScenario.example.ts +29 -0
- package/testing/ReadModelScenario.spec.ts +191 -0
- package/testing/ReadModelScenario.ts +151 -0
- package/testing/ReadModelScenarioGiven.ts +16 -0
- package/testing/ReadModelScenarioGivenBuilder.ts +15 -0
- package/testing/index.ts +6 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"7.0.2","root":["../ChronicleClient.ts","../ChronicleOptions.ts","../EventStore.ts","../EventStoreName.ts","../EventStoreNamespaceName.ts","../IChronicleClient.ts","../IEventStore.ts","../Metrics.ts","../Tracing.ts","../index.ts","../artifacts/DefaultClientArtifactsProvider.ts","../artifacts/IClientArtifactsProvider.ts","../artifacts/index.ts","../artifacts/validateArtifactSchemas.ts","../auditing/Causation.ts","../auditing/CausationManager.ts","../auditing/CausationType.ts","../auditing/ICausationManager.ts","../auditing/index.ts","../compliance/ComplianceContracts.ts","../compliance/ComplianceMetadata.ts","../compliance/ComplianceMetadataResolver.ts","../compliance/ComplianceMetadataType.ts","../compliance/IPIIManager.ts","../compliance/PIIManager.ts","../compliance/PIINotSupportedOnEventSourceId.ts","../compliance/index.ts","../compliance/pii.ts","../compliance/subject.ts","../confidentiality/EncryptedNotSupportedOnEventSourceId.ts","../confidentiality/EncryptionScope.ts","../confidentiality/PIIAndEncryptedCombinedNotSupported.ts","../confidentiality/SecurityMetadata.ts","../confidentiality/SecurityMetadataResolver.ts","../confidentiality/SecurityMetadataType.ts","../confidentiality/encrypted.ts","../confidentiality/index.ts","../connection/ChronicleConnection.ts","../connection/ChronicleConnectionString.ts","../connection/ChronicleServerAddressResolver.ts","../connection/ChronicleServices.ts","../connection/ChronicleSrvResolutionError.ts","../connection/ChronicleSrvResolver.ts","../connection/CompatibilityPreflight.ts","../connection/ConnectionLifecycle.ts","../connection/DateTimeOffset.ts","../connection/Guid.ts","../connection/ILoadBalancerStrategy.ts","../connection/IncompatibleChronicleServer.ts","../connection/KernelKeepAlive.ts","../connection/LeastConnectionsLoadBalancerStrategy.ts","../connection/LoadBalancerMode.ts","../connection/LoadBalancerStrategyFactory.ts","../connection/RandomLoadBalancerStrategy.ts","../connection/RejectedChronicleCredentials.ts","../connection/RoundRobinLoadBalancerStrategy.ts","../connection/TokenProvider.ts","../connection/callResults.ts","../connection/clientVersion.ts","../connection/fetchOAuthAccessToken.ts","../connection/formatServerAddress.ts","../connection/index.ts","../correlation/CorrelationId.ts","../correlation/CorrelationIdManager.ts","../correlation/ICorrelationIdAccessor.ts","../correlation/ICorrelationIdSetter.ts","../correlation/index.ts","../eventSequences/AppendError.ts","../eventSequences/AppendOperationsBroadcaster.ts","../eventSequences/AppendOptions.ts","../eventSequences/AppendResult.ts","../eventSequences/AppendedEventWithResult.ts","../eventSequences/CompleteStreamError.ts","../eventSequences/CompleteStreamResult.ts","../eventSequences/ConcurrencyScope.ts","../eventSequences/ConcurrencyViolation.ts","../eventSequences/ConstraintViolation.ts","../eventSequences/EventForEventSourceId.ts","../eventSequences/EventLog.ts","../eventSequences/EventSequence.ts","../eventSequences/EventSequenceId.ts","../eventSequences/EventSequenceNumber.ts","../eventSequences/IEventLog.ts","../eventSequences/IEventSequence.ts","../eventSequences/ITransactionalEventSequence.ts","../eventSequences/TransactionalEventSequence.ts","../eventSequences/WaitForCompletionOptions.ts","../eventSequences/WaitForCompletionResult.ts","../eventSequences/index.ts","../eventStoreSubscriptions/EventStoreSubscriptionBuilder.ts","../eventStoreSubscriptions/EventStoreSubscriptionDefinition.ts","../eventStoreSubscriptions/EventStoreSubscriptionId.ts","../eventStoreSubscriptions/EventStoreSubscriptions.ts","../eventStoreSubscriptions/IEventStoreSubscriptionBuilder.ts","../eventStoreSubscriptions/IEventStoreSubscriptions.ts","../eventStoreSubscriptions/contracts.ts","../eventStoreSubscriptions/index.ts","../events/AppendedEvent.ts","../events/CausationEntry.ts","../events/EventContext.ts","../events/EventType.ts","../events/EventTypeGeneration.ts","../events/EventTypeId.ts","../events/EventTypes.ts","../events/IEventTypes.ts","../events/Tag.ts","../events/WireEventContext.ts","../events/eventTypeDecorator.ts","../events/filterEventsByTagDecorator.ts","../events/index.ts","../events/isRegisteredEvent.ts","../events/mergeTags.ts","../events/tagDecorator.ts","../events/toClientEventContext.ts","../events/constraints/ConstraintBuilder.ts","../events/constraints/ConstraintId.ts","../events/constraints/Constraints.ts","../events/constraints/IConstraint.ts","../events/constraints/IConstraintBuilder.ts","../events/constraints/IConstraints.ts","../events/constraints/IUniqueConstraintBuilder.ts","../events/constraints/UniqueConstraintBuilder.ts","../events/constraints/constraint.ts","../events/constraints/index.ts","../events/constraints/removeConstraint.ts","../events/constraints/unique.ts","../events/migrations/EventMigrationBuilder.ts","../events/migrations/EventMigrationPropertyBuilder.ts","../events/migrations/EventTypeMigrators.ts","../events/migrations/IEventMigrationBuilder.ts","../events/migrations/IEventMigrationPropertyBuilder.ts","../events/migrations/IEventTypeMigration.ts","../events/migrations/IEventTypeMigrators.ts","../events/migrations/InvalidMigrationGenerationGap.ts","../events/migrations/eventTypeMigration.ts","../events/migrations/index.ts","../externalServices/ExternalServiceBuilder.ts","../externalServices/ExternalServices.ts","../externalServices/IExternalServiceBuilder.ts","../externalServices/IExternalServices.ts","../externalServices/index.ts","../identities/IIdentityManager.ts","../identities/IdentityManager.ts","../identities/index.ts","../identity/IIdentityProvider.ts","../identity/Identity.ts","../identity/IdentityProvider.ts","../identity/index.ts","../jobs/IJobs.ts","../jobs/JobId.ts","../jobs/Jobs.ts","../jobs/index.ts","../observation/FailedPartition.ts","../observation/FailedPartitionAttempt.ts","../observation/FailedPartitions.ts","../observation/ICanBeNotifiedWhenPartitionReplayed.ts","../observation/ICanBeNotifiedWhenReplay.ts","../observation/IFailedPartitions.ts","../observation/ObserverId.ts","../observation/ObserverRunningState.ts","../observation/index.ts","../observation/notifyReplayLifecycle.ts","../observation/toClientFailedPartition.ts","../observation/toObserverRunningState.ts","../projections/GlobalHandlerPropertyNotOnVariant.ts","../projections/IProjections.ts","../projections/ProjectionId.ts","../projections/ProjectionQueryResult.ts","../projections/ProjectionState.ts","../projections/Projections.ts","../projections/UnableToQueryProjection.ts","../projections/VariantMustDeclareEntersOnEvent.ts","../projections/VariantReclassifier.ts","../projections/constantValueExpression.ts","../projections/index.ts","../projections/notSetPropertyPath.ts","../projections/declarative/AddBuilder.ts","../projections/declarative/AddChildBuilder.ts","../projections/declarative/AllSetBuilder.ts","../projections/declarative/ChildrenBuilder.ts","../projections/declarative/CompositeKeyBuilder.ts","../projections/declarative/FromBuilder.ts","../projections/declarative/FromEveryBuilder.ts","../projections/declarative/IAddBuilder.ts","../projections/declarative/IAddChildBuilder.ts","../projections/declarative/IAllSetBuilder.ts","../projections/declarative/IChildrenBuilder.ts","../projections/declarative/ICompositeKeyBuilder.ts","../projections/declarative/IFromBuilder.ts","../projections/declarative/IFromEveryBuilder.ts","../projections/declarative/IJoinBuilder.ts","../projections/declarative/INestedBuilder.ts","../projections/declarative/IProjectionBuilder.ts","../projections/declarative/IProjectionBuilderFor.ts","../projections/declarative/IProjectionFor.ts","../projections/declarative/IReadModelPropertiesBuilder.ts","../projections/declarative/IRemovedWithBuilder.ts","../projections/declarative/IRemovedWithJoinBuilder.ts","../projections/declarative/ISetBuilder.ts","../projections/declarative/ISubtractBuilder.ts","../projections/declarative/JoinBuilder.ts","../projections/declarative/NestedBuilder.ts","../projections/declarative/ProjectionBuilderCore.ts","../projections/declarative/ProjectionBuilderFor.ts","../projections/declarative/RemovedWithBuilder.ts","../projections/declarative/RemovedWithJoinBuilder.ts","../projections/declarative/SetBuilder.ts","../projections/declarative/SubtractBuilder.ts","../projections/declarative/index.ts","../projections/declarative/projection.ts","../projections/modelBound/FromEventMetadata.ts","../projections/modelBound/FromEventOptions.ts","../projections/modelBound/addFrom.ts","../projections/modelBound/childrenAndNestedBuilder.ts","../projections/modelBound/childrenFrom.ts","../projections/modelBound/clearWith.ts","../projections/modelBound/count.ts","../projections/modelBound/decrement.ts","../projections/modelBound/entersOn.ts","../projections/modelBound/eventSequence.ts","../projections/modelBound/fromAll.ts","../projections/modelBound/fromEvent.ts","../projections/modelBound/fromEvery.ts","../projections/modelBound/globalFor.ts","../projections/modelBound/increment.ts","../projections/modelBound/index.ts","../projections/modelBound/join.ts","../projections/modelBound/nested.ts","../projections/modelBound/noAutoMap.ts","../projections/modelBound/notRewindable.ts","../projections/modelBound/passive.ts","../projections/modelBound/removedWith.ts","../projections/modelBound/removedWithJoin.ts","../projections/modelBound/setFrom.ts","../projections/modelBound/setFromContext.ts","../projections/modelBound/setValue.ts","../projections/modelBound/subtractFrom.ts","../projections/modelBound/variantOf.ts","../reactors/IReactors.ts","../reactors/ReactorId.ts","../reactors/ReactorResultHandler.ts","../reactors/ReactorSideEffects.ts","../reactors/Reactors.ts","../reactors/index.ts","../reactors/onceOnly.ts","../reactors/reactor.ts","../reactors/replay.ts","../readModels/IMaterializedReadModels.ts","../readModels/IReadModels.ts","../readModels/MaterializedReadModels.ts","../readModels/ReadModelChangeset.ts","../readModels/ReadModelId.ts","../readModels/ReadModelSnapshot.ts","../readModels/ReadModelSubjectResolver.ts","../readModels/ReadModels.ts","../readModels/assertUniqueReadModelIds.ts","../readModels/buildReadModelDefinition.ts","../readModels/deserializeReadModel.ts","../readModels/index.ts","../readModels/indexDecorator.ts","../readModels/readModel.ts","../readModels/rootReadModelTypes.ts","../reducers/IReducers.ts","../reducers/ReducerId.ts","../reducers/Reducers.ts","../reducers/index.ts","../reducers/reducer.ts","../schemas/JsonSchema.ts","../schemas/JsonSchemaGenerator.ts","../schemas/createDeferredSchema.ts","../schemas/index.ts","../schemas/jsonSchemaProperty.ts","../seeding/EventSeeding.ts","../seeding/ICanSeedEvents.ts","../seeding/IEventSeeding.ts","../seeding/IEventSeedingBuilder.ts","../seeding/IEventSeedingScopeBuilder.ts","../seeding/index.ts","../seeding/seeder.ts","../sinks/WellKnownSinks.ts","../sinks/index.ts","../transactions/IUnitOfWork.ts","../transactions/IUnitOfWorkManager.ts","../transactions/NoUnitOfWorkHasBeenStarted.ts","../transactions/UnitOfWork.ts","../transactions/UnitOfWorkManager.ts","../transactions/index.ts","../types/DecoratorType.ts","../types/TypeDiscoverer.ts","../types/TypeIntrospector.ts","../types/conceptValueType.ts","../types/index.ts","../types/modelBoundProperty.ts","../types/propertyDecoratorMetadata.ts","../types/standardDecoratorMetadata.ts","../webhooks/IWebhook.ts","../webhooks/IWebhookDefinitionBuilder.ts","../webhooks/IWebhooks.ts","../webhooks/WebhookDefinitionBuilder.ts","../webhooks/WebhookId.ts","../webhooks/WebhookTargetUrl.ts","../webhooks/Webhooks.ts","../webhooks/index.ts","../webhooks/webhook.ts"],"packageJsons":["../package.json","../../node_modules/@bufbuild/protobuf/dist/esm/package.json","../../node_modules/@bufbuild/protobuf/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/package.json","../../node_modules/@cratis/chronicle.contracts/package.json","../../node_modules/@cratis/fundamentals/dist/esm/package.json","../../node_modules/@cratis/fundamentals/package.json","../../node_modules/@grpc/grpc-js/package.json","../../node_modules/@grpc/proto-loader/package.json","../../node_modules/@js-sdsl/ordered-map/package.json","../../node_modules/@opentelemetry/api/package.json","../../node_modules/@types/node/package.json","../../node_modules/glob/dist/esm/package.json","../../node_modules/glob/package.json","../../node_modules/long/package.json","../../node_modules/long/umd/package.json","../../node_modules/lru-cache/dist/esm/package.json","../../node_modules/lru-cache/package.json","../../node_modules/minimatch/dist/esm/package.json","../../node_modules/minimatch/package.json","../../node_modules/minipass/dist/esm/package.json","../../node_modules/minipass/package.json","../../node_modules/nice-grpc-common/package.json","../../node_modules/nice-grpc/package.json","../../node_modules/path-scurry/dist/esm/package.json","../../node_modules/path-scurry/package.json","../../node_modules/protobufjs/package.json","../../node_modules/reflect-metadata/package.json","../../node_modules/ts-error/package.json","../../node_modules/undici-types/package.json","../../node_modules/undici/package.json"],"missingPackageJsons":["../../node_modules/@bufbuild/protobuf/dist/esm/codegenv1/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/codegenv2/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/reflect/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wire/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wkt/package.json","../../node_modules/@bufbuild/protobuf/wire/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/generated/google/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/generated/google/protobuf/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/generated/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/generated/protobuf-net/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/package.json","../../node_modules/@cratis/chronicle.contracts/dist/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/reflect/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/wire/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/wkt/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/wire/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/nice-grpc-common/package.json","../../node_modules/@cratis/fundamentals/dist/esm/geospatial/package.json","../../node_modules/@cratis/fundamentals/dist/esm/json/package.json","../../node_modules/@grpc/grpc-js/build/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/google/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/grpc/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/data/orca/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/data/orca/v3/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/data/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/service/orca/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/service/orca/v3/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/service/package.json","../../node_modules/@grpc/grpc-js/build/src/package.json","../../node_modules/@grpc/proto-loader/build/package.json","../../node_modules/@grpc/proto-loader/build/src/package.json","../../node_modules/@js-sdsl/ordered-map/dist/esm/package.json","../../node_modules/@js-sdsl/ordered-map/dist/package.json","../../node_modules/@opentelemetry/api/build/package.json","../../node_modules/@opentelemetry/api/build/src/api/package.json","../../node_modules/@opentelemetry/api/build/src/baggage/internal/package.json","../../node_modules/@opentelemetry/api/build/src/baggage/package.json","../../node_modules/@opentelemetry/api/build/src/common/package.json","../../node_modules/@opentelemetry/api/build/src/context/package.json","../../node_modules/@opentelemetry/api/build/src/diag/package.json","../../node_modules/@opentelemetry/api/build/src/metrics/package.json","../../node_modules/@opentelemetry/api/build/src/package.json","../../node_modules/@opentelemetry/api/build/src/propagation/package.json","../../node_modules/@opentelemetry/api/build/src/trace/internal/package.json","../../node_modules/@opentelemetry/api/build/src/trace/package.json","../../node_modules/@types/assert/package.json","../../node_modules/@types/assert/strict/package.json","../../node_modules/@types/async_hooks/package.json","../../node_modules/@types/buffer/package.json","../../node_modules/@types/child_process/package.json","../../node_modules/@types/cluster/package.json","../../node_modules/@types/console/package.json","../../node_modules/@types/constants/package.json","../../node_modules/@types/crypto/package.json","../../node_modules/@types/dgram/package.json","../../node_modules/@types/diagnostics_channel/package.json","../../node_modules/@types/dns/package.json","../../node_modules/@types/dns/promises/package.json","../../node_modules/@types/domain/package.json","../../node_modules/@types/events/package.json","../../node_modules/@types/fs/package.json","../../node_modules/@types/fs/promises/package.json","../../node_modules/@types/http/package.json","../../node_modules/@types/http2/package.json","../../node_modules/@types/https/package.json","../../node_modules/@types/inspector/package.json","../../node_modules/@types/inspector/promises/package.json","../../node_modules/@types/module/package.json","../../node_modules/@types/net/package.json","../../node_modules/@types/node/assert/package.json","../../node_modules/@types/node/dns/package.json","../../node_modules/@types/node/fs/package.json","../../node_modules/@types/node/inspector/package.json","../../node_modules/@types/node/path/package.json","../../node_modules/@types/node/readline/package.json","../../node_modules/@types/node/stream/package.json","../../node_modules/@types/node/test/package.json","../../node_modules/@types/node/timers/package.json","../../node_modules/@types/node/util/package.json","../../node_modules/@types/node/web-globals/package.json","../../node_modules/@types/node/zlib/package.json","../../node_modules/@types/os/package.json","../../node_modules/@types/path/package.json","../../node_modules/@types/path/posix/package.json","../../node_modules/@types/path/win32/package.json","../../node_modules/@types/perf_hooks/package.json","../../node_modules/@types/process/package.json","../../node_modules/@types/punycode/package.json","../../node_modules/@types/querystring/package.json","../../node_modules/@types/readline/package.json","../../node_modules/@types/readline/promises/package.json","../../node_modules/@types/repl/package.json","../../node_modules/@types/stream/consumers/package.json","../../node_modules/@types/stream/iter/package.json","../../node_modules/@types/stream/package.json","../../node_modules/@types/stream/promises/package.json","../../node_modules/@types/stream/web/package.json","../../node_modules/@types/string_decoder/package.json","../../node_modules/@types/timers/package.json","../../node_modules/@types/timers/promises/package.json","../../node_modules/@types/tls/package.json","../../node_modules/@types/trace_events/package.json","../../node_modules/@types/tty/package.json","../../node_modules/@types/url/package.json","../../node_modules/@types/util/package.json","../../node_modules/@types/util/types/package.json","../../node_modules/@types/v8/package.json","../../node_modules/@types/vm/package.json","../../node_modules/@types/wasi/package.json","../../node_modules/@types/worker_threads/package.json","../../node_modules/@types/zlib/package.json","../../node_modules/assert/package.json","../../node_modules/assert/strict/package.json","../../node_modules/async_hooks/package.json","../../node_modules/buffer/package.json","../../node_modules/child_process/package.json","../../node_modules/cluster/package.json","../../node_modules/console/package.json","../../node_modules/constants/package.json","../../node_modules/crypto/package.json","../../node_modules/dgram/package.json","../../node_modules/diagnostics_channel/package.json","../../node_modules/dns/package.json","../../node_modules/dns/promises/package.json","../../node_modules/domain/package.json","../../node_modules/events/package.json","../../node_modules/fs/package.json","../../node_modules/fs/promises/package.json","../../node_modules/http/package.json","../../node_modules/http2/package.json","../../node_modules/https/package.json","../../node_modules/inspector/package.json","../../node_modules/inspector/promises/package.json","../../node_modules/module/package.json","../../node_modules/net/package.json","../../node_modules/nice-grpc-common/lib/client/package.json","../../node_modules/nice-grpc-common/lib/package.json","../../node_modules/nice-grpc-common/lib/server/package.json","../../node_modules/nice-grpc/lib/client/package.json","../../node_modules/nice-grpc/lib/package.json","../../node_modules/nice-grpc/lib/server/package.json","../../node_modules/nice-grpc/lib/service-definitions/package.json","../../node_modules/nice-grpc/lib/utils/package.json","../../node_modules/os/package.json","../../node_modules/path/package.json","../../node_modules/path/posix/package.json","../../node_modules/path/win32/package.json","../../node_modules/perf_hooks/package.json","../../node_modules/process/package.json","../../node_modules/protobufjs/ext/descriptor/package.json","../../node_modules/protobufjs/ext/package.json","../../node_modules/protobufjs/node_modules/@types/long/package.json","../../node_modules/protobufjs/node_modules/long/package.json","../../node_modules/punycode/package.json","../../node_modules/querystring/package.json","../../node_modules/readline/package.json","../../node_modules/readline/promises/package.json","../../node_modules/repl/package.json","../../node_modules/stream/consumers/package.json","../../node_modules/stream/iter/package.json","../../node_modules/stream/package.json","../../node_modules/stream/promises/package.json","../../node_modules/stream/web/package.json","../../node_modules/string_decoder/package.json","../../node_modules/timers/package.json","../../node_modules/timers/promises/package.json","../../node_modules/tls/package.json","../../node_modules/trace_events/package.json","../../node_modules/ts-error/lib/package.json","../../node_modules/tty/package.json","../../node_modules/undici/types/package.json","../../node_modules/url/package.json","../../node_modules/util/package.json","../../node_modules/util/types/package.json","../../node_modules/v8/package.json","../../node_modules/vm/package.json","../../node_modules/wasi/package.json","../../node_modules/worker_threads/package.json","../../node_modules/zlib/package.json"]}
|
|
1
|
+
{"version":"7.0.2","root":["../ChronicleClient.ts","../ChronicleOptions.ts","../EventStore.ts","../EventStoreName.ts","../EventStoreNamespaceName.ts","../IChronicleClient.ts","../IEventStore.ts","../Metrics.ts","../Tracing.ts","../index.ts","../artifacts/DefaultClientArtifactsProvider.ts","../artifacts/IClientArtifactsProvider.ts","../artifacts/index.ts","../artifacts/validateArtifactSchemas.ts","../auditing/Causation.ts","../auditing/CausationManager.ts","../auditing/CausationType.ts","../auditing/ICausationManager.ts","../auditing/index.ts","../compliance/ComplianceContracts.ts","../compliance/ComplianceMetadata.ts","../compliance/ComplianceMetadataResolver.ts","../compliance/ComplianceMetadataType.ts","../compliance/IPIIManager.ts","../compliance/PIIManager.ts","../compliance/PIINotSupportedOnEventSourceId.ts","../compliance/index.ts","../compliance/pii.ts","../compliance/subject.ts","../confidentiality/EncryptedNotSupportedOnEventSourceId.ts","../confidentiality/EncryptionScope.ts","../confidentiality/PIIAndEncryptedCombinedNotSupported.ts","../confidentiality/SecurityMetadata.ts","../confidentiality/SecurityMetadataResolver.ts","../confidentiality/SecurityMetadataType.ts","../confidentiality/encrypted.ts","../confidentiality/index.ts","../connection/ChronicleConnection.ts","../connection/ChronicleConnectionString.ts","../connection/ChronicleServerAddressResolver.ts","../connection/ChronicleServices.ts","../connection/ChronicleSrvResolutionError.ts","../connection/ChronicleSrvResolver.ts","../connection/CompatibilityPreflight.ts","../connection/ConnectionLifecycle.ts","../connection/DateTimeOffset.ts","../connection/Guid.ts","../connection/ILoadBalancerStrategy.ts","../connection/IncompatibleChronicleServer.ts","../connection/KernelKeepAlive.ts","../connection/LeastConnectionsLoadBalancerStrategy.ts","../connection/LoadBalancerMode.ts","../connection/LoadBalancerStrategyFactory.ts","../connection/RandomLoadBalancerStrategy.ts","../connection/RejectedChronicleCredentials.ts","../connection/RoundRobinLoadBalancerStrategy.ts","../connection/TokenProvider.ts","../connection/callResults.ts","../connection/clientVersion.ts","../connection/fetchOAuthAccessToken.ts","../connection/formatServerAddress.ts","../connection/index.ts","../correlation/CorrelationId.ts","../correlation/CorrelationIdManager.ts","../correlation/ICorrelationIdAccessor.ts","../correlation/ICorrelationIdSetter.ts","../correlation/index.ts","../eventSequences/AppendError.ts","../eventSequences/AppendOperationsBroadcaster.ts","../eventSequences/AppendOptions.ts","../eventSequences/AppendResult.ts","../eventSequences/AppendedEventWithResult.ts","../eventSequences/CompleteStreamError.ts","../eventSequences/CompleteStreamResult.ts","../eventSequences/ConcurrencyScope.ts","../eventSequences/ConcurrencyViolation.ts","../eventSequences/ConstraintViolation.ts","../eventSequences/EventForEventSourceId.ts","../eventSequences/EventLog.ts","../eventSequences/EventSequence.ts","../eventSequences/EventSequenceId.ts","../eventSequences/EventSequenceNumber.ts","../eventSequences/IEventLog.ts","../eventSequences/IEventSequence.ts","../eventSequences/ITransactionalEventSequence.ts","../eventSequences/TransactionalEventSequence.ts","../eventSequences/WaitForCompletionOptions.ts","../eventSequences/WaitForCompletionResult.ts","../eventSequences/index.ts","../eventStoreSubscriptions/EventStoreSubscriptionBuilder.ts","../eventStoreSubscriptions/EventStoreSubscriptionDefinition.ts","../eventStoreSubscriptions/EventStoreSubscriptionId.ts","../eventStoreSubscriptions/EventStoreSubscriptions.ts","../eventStoreSubscriptions/IEventStoreSubscriptionBuilder.ts","../eventStoreSubscriptions/IEventStoreSubscriptions.ts","../eventStoreSubscriptions/contracts.ts","../eventStoreSubscriptions/index.ts","../events/AppendedEvent.ts","../events/CausationEntry.ts","../events/EventContext.ts","../events/EventType.ts","../events/EventTypeGeneration.ts","../events/EventTypeId.ts","../events/EventTypes.ts","../events/IEventTypes.ts","../events/Tag.ts","../events/WireEventContext.ts","../events/eventTypeDecorator.ts","../events/filterEventsByTagDecorator.ts","../events/index.ts","../events/isRegisteredEvent.ts","../events/mergeTags.ts","../events/tagDecorator.ts","../events/toClientEventContext.ts","../events/constraints/ConstraintBuilder.ts","../events/constraints/ConstraintId.ts","../events/constraints/Constraints.ts","../events/constraints/IConstraint.ts","../events/constraints/IConstraintBuilder.ts","../events/constraints/IConstraints.ts","../events/constraints/IUniqueConstraintBuilder.ts","../events/constraints/UniqueConstraintBuilder.ts","../events/constraints/constraint.ts","../events/constraints/index.ts","../events/constraints/removeConstraint.ts","../events/constraints/unique.ts","../events/migrations/EventMigrationBuilder.ts","../events/migrations/EventMigrationPropertyBuilder.ts","../events/migrations/EventTypeMigrators.ts","../events/migrations/IEventMigrationBuilder.ts","../events/migrations/IEventMigrationPropertyBuilder.ts","../events/migrations/IEventTypeMigration.ts","../events/migrations/IEventTypeMigrators.ts","../events/migrations/InvalidMigrationGenerationGap.ts","../events/migrations/eventTypeMigration.ts","../events/migrations/index.ts","../externalServices/ExternalServiceBuilder.ts","../externalServices/ExternalServices.ts","../externalServices/IExternalServiceBuilder.ts","../externalServices/IExternalServices.ts","../externalServices/index.ts","../identities/IIdentityManager.ts","../identities/IdentityManager.ts","../identities/index.ts","../identity/IIdentityProvider.ts","../identity/Identity.ts","../identity/IdentityProvider.ts","../identity/index.ts","../jobs/IJobs.ts","../jobs/JobId.ts","../jobs/Jobs.ts","../jobs/index.ts","../observation/FailedPartition.ts","../observation/FailedPartitionAttempt.ts","../observation/FailedPartitions.ts","../observation/ICanBeNotifiedWhenPartitionReplayed.ts","../observation/ICanBeNotifiedWhenReplay.ts","../observation/IFailedPartitions.ts","../observation/IObservers.ts","../observation/ObserverId.ts","../observation/ObserverInformation.ts","../observation/ObserverRemovalOutcome.ts","../observation/ObserverRemovalResult.ts","../observation/ObserverRunningState.ts","../observation/ObserverType.ts","../observation/Observers.ts","../observation/index.ts","../observation/notifyReplayLifecycle.ts","../observation/toClientFailedPartition.ts","../observation/toObserverInformation.ts","../observation/toObserverRemovalResult.ts","../observation/toObserverRunningState.ts","../projections/GlobalHandlerPropertyNotOnVariant.ts","../projections/IProjections.ts","../projections/ProjectionId.ts","../projections/ProjectionQueryResult.ts","../projections/ProjectionState.ts","../projections/Projections.ts","../projections/UnableToQueryProjection.ts","../projections/VariantMustDeclareEntersOnEvent.ts","../projections/VariantReclassifier.ts","../projections/constantValueExpression.ts","../projections/index.ts","../projections/notSetPropertyPath.ts","../projections/declarative/AddBuilder.ts","../projections/declarative/AddChildBuilder.ts","../projections/declarative/AllSetBuilder.ts","../projections/declarative/ChildrenBuilder.ts","../projections/declarative/CompositeKeyBuilder.ts","../projections/declarative/FromBuilder.ts","../projections/declarative/FromEveryBuilder.ts","../projections/declarative/IAddBuilder.ts","../projections/declarative/IAddChildBuilder.ts","../projections/declarative/IAllSetBuilder.ts","../projections/declarative/IChildrenBuilder.ts","../projections/declarative/ICompositeKeyBuilder.ts","../projections/declarative/IFromBuilder.ts","../projections/declarative/IFromEveryBuilder.ts","../projections/declarative/IJoinBuilder.ts","../projections/declarative/INestedBuilder.ts","../projections/declarative/IProjectionBuilder.ts","../projections/declarative/IProjectionBuilderFor.ts","../projections/declarative/IProjectionFor.ts","../projections/declarative/IReadModelPropertiesBuilder.ts","../projections/declarative/IRemovedWithBuilder.ts","../projections/declarative/IRemovedWithJoinBuilder.ts","../projections/declarative/ISetBuilder.ts","../projections/declarative/ISubtractBuilder.ts","../projections/declarative/JoinBuilder.ts","../projections/declarative/NestedBuilder.ts","../projections/declarative/ProjectionBuilderCore.ts","../projections/declarative/ProjectionBuilderFor.ts","../projections/declarative/RemovedWithBuilder.ts","../projections/declarative/RemovedWithJoinBuilder.ts","../projections/declarative/SetBuilder.ts","../projections/declarative/SubtractBuilder.ts","../projections/declarative/index.ts","../projections/declarative/projection.ts","../projections/modelBound/FromEventMetadata.ts","../projections/modelBound/FromEventOptions.ts","../projections/modelBound/addFrom.ts","../projections/modelBound/childrenAndNestedBuilder.ts","../projections/modelBound/childrenFrom.ts","../projections/modelBound/clearWith.ts","../projections/modelBound/count.ts","../projections/modelBound/decrement.ts","../projections/modelBound/entersOn.ts","../projections/modelBound/eventSequence.ts","../projections/modelBound/fromAll.ts","../projections/modelBound/fromEvent.ts","../projections/modelBound/fromEvery.ts","../projections/modelBound/globalFor.ts","../projections/modelBound/increment.ts","../projections/modelBound/index.ts","../projections/modelBound/join.ts","../projections/modelBound/nested.ts","../projections/modelBound/noAutoMap.ts","../projections/modelBound/notRewindable.ts","../projections/modelBound/passive.ts","../projections/modelBound/removedWith.ts","../projections/modelBound/removedWithJoin.ts","../projections/modelBound/setFrom.ts","../projections/modelBound/setFromContext.ts","../projections/modelBound/setValue.ts","../projections/modelBound/subtractFrom.ts","../projections/modelBound/variantOf.ts","../reactors/IReactors.ts","../reactors/ReactorId.ts","../reactors/ReactorResultHandler.ts","../reactors/ReactorSideEffects.ts","../reactors/Reactors.ts","../reactors/index.ts","../reactors/onceOnly.ts","../reactors/reactor.ts","../reactors/replay.ts","../readModels/IMaterializedReadModels.ts","../readModels/IReadModels.ts","../readModels/MaterializedReadModels.ts","../readModels/ReadModelChangeset.ts","../readModels/ReadModelId.ts","../readModels/ReadModelSnapshot.ts","../readModels/ReadModelSubjectResolver.ts","../readModels/ReadModels.ts","../readModels/assertUniqueReadModelIds.ts","../readModels/buildReadModelDefinition.ts","../readModels/deserializeReadModel.ts","../readModels/index.ts","../readModels/indexDecorator.ts","../readModels/readModel.ts","../readModels/rootReadModelTypes.ts","../reducers/IReducers.ts","../reducers/ReducerEventDispatcher.ts","../reducers/ReducerEventHandler.ts","../reducers/ReducerId.ts","../reducers/Reducers.ts","../reducers/index.ts","../reducers/reducer.ts","../schemas/JsonSchema.ts","../schemas/JsonSchemaGenerator.ts","../schemas/createDeferredSchema.ts","../schemas/index.ts","../schemas/jsonSchemaProperty.ts","../seeding/EventSeeding.ts","../seeding/ICanSeedEvents.ts","../seeding/IEventSeeding.ts","../seeding/IEventSeedingBuilder.ts","../seeding/IEventSeedingScopeBuilder.ts","../seeding/index.ts","../seeding/seeder.ts","../sinks/WellKnownSinks.ts","../sinks/index.ts","../testing/ReadModelScenario.ts","../testing/ReadModelScenarioGiven.ts","../testing/ReadModelScenarioGivenBuilder.ts","../testing/index.ts","../transactions/IUnitOfWork.ts","../transactions/IUnitOfWorkManager.ts","../transactions/NoUnitOfWorkHasBeenStarted.ts","../transactions/UnitOfWork.ts","../transactions/UnitOfWorkManager.ts","../transactions/index.ts","../types/DecoratorType.ts","../types/TypeDiscoverer.ts","../types/TypeIntrospector.ts","../types/conceptValueType.ts","../types/index.ts","../types/modelBoundProperty.ts","../types/propertyDecoratorMetadata.ts","../types/standardDecoratorMetadata.ts","../webhooks/IWebhook.ts","../webhooks/IWebhookDefinitionBuilder.ts","../webhooks/IWebhooks.ts","../webhooks/WebhookDefinitionBuilder.ts","../webhooks/WebhookId.ts","../webhooks/WebhookTargetUrl.ts","../webhooks/Webhooks.ts","../webhooks/index.ts","../webhooks/webhook.ts"],"packageJsons":["../package.json","../../node_modules/@bufbuild/protobuf/dist/esm/package.json","../../node_modules/@bufbuild/protobuf/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/package.json","../../node_modules/@cratis/chronicle.contracts/package.json","../../node_modules/@cratis/fundamentals/dist/esm/package.json","../../node_modules/@cratis/fundamentals/package.json","../../node_modules/@grpc/grpc-js/package.json","../../node_modules/@grpc/proto-loader/package.json","../../node_modules/@js-sdsl/ordered-map/package.json","../../node_modules/@opentelemetry/api/package.json","../../node_modules/@types/node/package.json","../../node_modules/glob/dist/esm/package.json","../../node_modules/glob/package.json","../../node_modules/long/package.json","../../node_modules/long/umd/package.json","../../node_modules/lru-cache/dist/esm/package.json","../../node_modules/lru-cache/package.json","../../node_modules/minimatch/dist/esm/package.json","../../node_modules/minimatch/package.json","../../node_modules/minipass/dist/esm/package.json","../../node_modules/minipass/package.json","../../node_modules/nice-grpc-common/package.json","../../node_modules/nice-grpc/package.json","../../node_modules/path-scurry/dist/esm/package.json","../../node_modules/path-scurry/package.json","../../node_modules/protobufjs/package.json","../../node_modules/reflect-metadata/package.json","../../node_modules/ts-error/package.json","../../node_modules/undici-types/package.json","../../node_modules/undici/package.json"],"missingPackageJsons":["../../node_modules/@bufbuild/protobuf/dist/esm/codegenv1/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/codegenv2/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/reflect/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wire/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/package.json","../../node_modules/@bufbuild/protobuf/dist/esm/wkt/package.json","../../node_modules/@bufbuild/protobuf/wire/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/generated/google/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/generated/google/protobuf/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/generated/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/generated/protobuf-net/package.json","../../node_modules/@cratis/chronicle.contracts/dist/esm/package.json","../../node_modules/@cratis/chronicle.contracts/dist/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/reflect/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/wire/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/dist/esm/wkt/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/@bufbuild/protobuf/wire/package.json","../../node_modules/@cratis/chronicle.contracts/node_modules/nice-grpc-common/package.json","../../node_modules/@cratis/fundamentals/dist/esm/geospatial/package.json","../../node_modules/@cratis/fundamentals/dist/esm/json/package.json","../../node_modules/@grpc/grpc-js/build/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/google/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/grpc/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/data/orca/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/data/orca/v3/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/data/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/service/orca/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/service/orca/v3/package.json","../../node_modules/@grpc/grpc-js/build/src/generated/xds/service/package.json","../../node_modules/@grpc/grpc-js/build/src/package.json","../../node_modules/@grpc/proto-loader/build/package.json","../../node_modules/@grpc/proto-loader/build/src/package.json","../../node_modules/@js-sdsl/ordered-map/dist/esm/package.json","../../node_modules/@js-sdsl/ordered-map/dist/package.json","../../node_modules/@opentelemetry/api/build/package.json","../../node_modules/@opentelemetry/api/build/src/api/package.json","../../node_modules/@opentelemetry/api/build/src/baggage/internal/package.json","../../node_modules/@opentelemetry/api/build/src/baggage/package.json","../../node_modules/@opentelemetry/api/build/src/common/package.json","../../node_modules/@opentelemetry/api/build/src/context/package.json","../../node_modules/@opentelemetry/api/build/src/diag/package.json","../../node_modules/@opentelemetry/api/build/src/metrics/package.json","../../node_modules/@opentelemetry/api/build/src/package.json","../../node_modules/@opentelemetry/api/build/src/propagation/package.json","../../node_modules/@opentelemetry/api/build/src/trace/internal/package.json","../../node_modules/@opentelemetry/api/build/src/trace/package.json","../../node_modules/@types/assert/package.json","../../node_modules/@types/assert/strict/package.json","../../node_modules/@types/async_hooks/package.json","../../node_modules/@types/buffer/package.json","../../node_modules/@types/child_process/package.json","../../node_modules/@types/cluster/package.json","../../node_modules/@types/console/package.json","../../node_modules/@types/constants/package.json","../../node_modules/@types/crypto/package.json","../../node_modules/@types/dgram/package.json","../../node_modules/@types/diagnostics_channel/package.json","../../node_modules/@types/dns/package.json","../../node_modules/@types/dns/promises/package.json","../../node_modules/@types/domain/package.json","../../node_modules/@types/events/package.json","../../node_modules/@types/fs/package.json","../../node_modules/@types/fs/promises/package.json","../../node_modules/@types/http/package.json","../../node_modules/@types/http2/package.json","../../node_modules/@types/https/package.json","../../node_modules/@types/inspector/package.json","../../node_modules/@types/inspector/promises/package.json","../../node_modules/@types/module/package.json","../../node_modules/@types/net/package.json","../../node_modules/@types/node/assert/package.json","../../node_modules/@types/node/dns/package.json","../../node_modules/@types/node/fs/package.json","../../node_modules/@types/node/inspector/package.json","../../node_modules/@types/node/path/package.json","../../node_modules/@types/node/readline/package.json","../../node_modules/@types/node/stream/package.json","../../node_modules/@types/node/test/package.json","../../node_modules/@types/node/timers/package.json","../../node_modules/@types/node/util/package.json","../../node_modules/@types/node/web-globals/package.json","../../node_modules/@types/node/zlib/package.json","../../node_modules/@types/os/package.json","../../node_modules/@types/path/package.json","../../node_modules/@types/path/posix/package.json","../../node_modules/@types/path/win32/package.json","../../node_modules/@types/perf_hooks/package.json","../../node_modules/@types/process/package.json","../../node_modules/@types/punycode/package.json","../../node_modules/@types/querystring/package.json","../../node_modules/@types/readline/package.json","../../node_modules/@types/readline/promises/package.json","../../node_modules/@types/repl/package.json","../../node_modules/@types/stream/consumers/package.json","../../node_modules/@types/stream/iter/package.json","../../node_modules/@types/stream/package.json","../../node_modules/@types/stream/promises/package.json","../../node_modules/@types/stream/web/package.json","../../node_modules/@types/string_decoder/package.json","../../node_modules/@types/timers/package.json","../../node_modules/@types/timers/promises/package.json","../../node_modules/@types/tls/package.json","../../node_modules/@types/trace_events/package.json","../../node_modules/@types/tty/package.json","../../node_modules/@types/url/package.json","../../node_modules/@types/util/package.json","../../node_modules/@types/util/types/package.json","../../node_modules/@types/v8/package.json","../../node_modules/@types/vm/package.json","../../node_modules/@types/wasi/package.json","../../node_modules/@types/worker_threads/package.json","../../node_modules/@types/zlib/package.json","../../node_modules/assert/package.json","../../node_modules/assert/strict/package.json","../../node_modules/async_hooks/package.json","../../node_modules/buffer/package.json","../../node_modules/child_process/package.json","../../node_modules/cluster/package.json","../../node_modules/console/package.json","../../node_modules/constants/package.json","../../node_modules/crypto/package.json","../../node_modules/dgram/package.json","../../node_modules/diagnostics_channel/package.json","../../node_modules/dns/package.json","../../node_modules/dns/promises/package.json","../../node_modules/domain/package.json","../../node_modules/events/package.json","../../node_modules/fs/package.json","../../node_modules/fs/promises/package.json","../../node_modules/http/package.json","../../node_modules/http2/package.json","../../node_modules/https/package.json","../../node_modules/inspector/package.json","../../node_modules/inspector/promises/package.json","../../node_modules/module/package.json","../../node_modules/net/package.json","../../node_modules/nice-grpc-common/lib/client/package.json","../../node_modules/nice-grpc-common/lib/package.json","../../node_modules/nice-grpc-common/lib/server/package.json","../../node_modules/nice-grpc/lib/client/package.json","../../node_modules/nice-grpc/lib/package.json","../../node_modules/nice-grpc/lib/server/package.json","../../node_modules/nice-grpc/lib/service-definitions/package.json","../../node_modules/nice-grpc/lib/utils/package.json","../../node_modules/os/package.json","../../node_modules/path/package.json","../../node_modules/path/posix/package.json","../../node_modules/path/win32/package.json","../../node_modules/perf_hooks/package.json","../../node_modules/process/package.json","../../node_modules/protobufjs/ext/descriptor/package.json","../../node_modules/protobufjs/ext/package.json","../../node_modules/protobufjs/node_modules/@types/long/package.json","../../node_modules/protobufjs/node_modules/long/package.json","../../node_modules/punycode/package.json","../../node_modules/querystring/package.json","../../node_modules/readline/package.json","../../node_modules/readline/promises/package.json","../../node_modules/repl/package.json","../../node_modules/stream/consumers/package.json","../../node_modules/stream/iter/package.json","../../node_modules/stream/package.json","../../node_modules/stream/promises/package.json","../../node_modules/stream/web/package.json","../../node_modules/string_decoder/package.json","../../node_modules/timers/package.json","../../node_modules/timers/promises/package.json","../../node_modules/tls/package.json","../../node_modules/trace_events/package.json","../../node_modules/ts-error/lib/package.json","../../node_modules/tty/package.json","../../node_modules/undici/types/package.json","../../node_modules/url/package.json","../../node_modules/util/package.json","../../node_modules/util/types/package.json","../../node_modules/v8/package.json","../../node_modules/vm/package.json","../../node_modules/wasi/package.json","../../node_modules/worker_threads/package.json","../../node_modules/zlib/package.json"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
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 { ObserverInformation } from './ObserverInformation.js';
|
|
5
|
+
import { ObserverRemovalResult } from './ObserverRemovalResult.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Defines a system for working with the observers of an event store.
|
|
9
|
+
*/
|
|
10
|
+
export interface IObservers {
|
|
11
|
+
/**
|
|
12
|
+
* Gets every observer registered in the event store's current namespace.
|
|
13
|
+
* @returns A collection of {@link ObserverInformation}.
|
|
14
|
+
*/
|
|
15
|
+
getAll(): Promise<ObserverInformation[]>;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Removes an observer and everything keyed to it.
|
|
19
|
+
*
|
|
20
|
+
* For the observer whose declaring code is gone - a read model and its projection that were deleted, a
|
|
21
|
+
* reactor that was removed. The observer it registered stays behind, settles into
|
|
22
|
+
* {@link ObserverRunningState.Disconnected} and keeps its records in the event store forever.
|
|
23
|
+
*
|
|
24
|
+
* Removal covers the whole event store, because an observer's definition is a store-level record. It
|
|
25
|
+
* refuses while the observer is running or has a subscribed client in any namespace, so what it can remove
|
|
26
|
+
* is only ever an observer no client is reporting - stop the declaring application first if you mean to
|
|
27
|
+
* remove a live one. Read model data and sink containers are left untouched.
|
|
28
|
+
* @param observerId - The identifier of the observer to remove.
|
|
29
|
+
* @returns An {@link ObserverRemovalResult} describing what happened.
|
|
30
|
+
*/
|
|
31
|
+
remove(observerId: string): Promise<ObserverRemovalResult>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
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 { EventSequenceId } from '../eventSequences/EventSequenceId.js';
|
|
5
|
+
import { EventSequenceNumber } from '../eventSequences/EventSequenceNumber.js';
|
|
6
|
+
import { ObserverRunningState } from './ObserverRunningState.js';
|
|
7
|
+
import { ObserverType } from './ObserverType.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Represents what the event store knows about one of its observers.
|
|
11
|
+
*/
|
|
12
|
+
export interface ObserverInformation {
|
|
13
|
+
/** The identifier of the observer. */
|
|
14
|
+
readonly id: string;
|
|
15
|
+
|
|
16
|
+
/** The event sequence the observer observes. */
|
|
17
|
+
readonly eventSequenceId: EventSequenceId;
|
|
18
|
+
|
|
19
|
+
/** What kind of observer this is. */
|
|
20
|
+
readonly type: ObserverType;
|
|
21
|
+
|
|
22
|
+
/** The state the observer is currently in. */
|
|
23
|
+
readonly runningState: ObserverRunningState;
|
|
24
|
+
|
|
25
|
+
/** The position of the last event the observer handled. */
|
|
26
|
+
readonly lastHandledEventSequenceNumber: EventSequenceNumber;
|
|
27
|
+
|
|
28
|
+
/** The position of the next event the observer expects to handle. */
|
|
29
|
+
readonly nextEventSequenceNumber: EventSequenceNumber;
|
|
30
|
+
|
|
31
|
+
/** The total number of events the observer has handled. */
|
|
32
|
+
readonly handledEventCount: bigint;
|
|
33
|
+
}
|
|
@@ -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
|
+
/**
|
|
5
|
+
* Represents what happened when an event store was asked to remove an observer.
|
|
6
|
+
*/
|
|
7
|
+
export enum ObserverRemovalOutcome {
|
|
8
|
+
/** The observer and everything keyed to it was removed. */
|
|
9
|
+
Removed = 'Removed',
|
|
10
|
+
|
|
11
|
+
/** No observer with that identifier is registered in the event store, so there was nothing to remove. */
|
|
12
|
+
ObserverNotFound = 'ObserverNotFound',
|
|
13
|
+
|
|
14
|
+
/** The observer is running in at least one namespace, so it is still a live observer and cannot be removed. */
|
|
15
|
+
ObserverActive = 'ObserverActive',
|
|
16
|
+
|
|
17
|
+
/** A client is still subscribed to the observer in at least one namespace, so its declaring code is still present. */
|
|
18
|
+
ObserverSubscribed = 'ObserverSubscribed'
|
|
19
|
+
}
|
|
@@ -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 { ObserverRemovalOutcome } from './ObserverRemovalOutcome.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Represents what came back from asking an event store to remove an observer.
|
|
8
|
+
*/
|
|
9
|
+
export interface ObserverRemovalResult {
|
|
10
|
+
/** What happened. */
|
|
11
|
+
readonly outcome: ObserverRemovalOutcome;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The namespace whose observer blocked the removal, when {@link outcome} is a refusal; empty otherwise.
|
|
15
|
+
* The guard runs across every namespace in the event store, so a refusal that does not say where leaves
|
|
16
|
+
* nowhere to look.
|
|
17
|
+
*/
|
|
18
|
+
readonly blockingNamespace: string;
|
|
19
|
+
|
|
20
|
+
/** Whether the observer was actually removed. */
|
|
21
|
+
readonly isRemoved: boolean;
|
|
22
|
+
}
|
|
@@ -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
|
+
/**
|
|
5
|
+
* Represents the kind of observer an {@link ObserverInformation} describes.
|
|
6
|
+
*/
|
|
7
|
+
export enum ObserverType {
|
|
8
|
+
/** The type of the observer is not known. */
|
|
9
|
+
Unknown = 'Unknown',
|
|
10
|
+
|
|
11
|
+
/** The observer is a reactor. */
|
|
12
|
+
Reactor = 'Reactor',
|
|
13
|
+
|
|
14
|
+
/** The observer is a projection. */
|
|
15
|
+
Projection = 'Projection',
|
|
16
|
+
|
|
17
|
+
/** The observer is a reducer. */
|
|
18
|
+
Reducer = 'Reducer',
|
|
19
|
+
|
|
20
|
+
/** The observer is driven by something outside Chronicle. */
|
|
21
|
+
External = 'External'
|
|
22
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
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 { ObserverRemovalOutcome as ContractObserverRemovalOutcome, ObserverRunningState as ContractObserverRunningState, ObserverType as ContractObserverType } from '@cratis/chronicle.contracts';
|
|
5
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
6
|
+
import type { ChronicleConnection } from '../connection/index.js';
|
|
7
|
+
import { ObserverRemovalOutcome } from './ObserverRemovalOutcome.js';
|
|
8
|
+
import { ObserverRunningState } from './ObserverRunningState.js';
|
|
9
|
+
import { ObserverType } from './ObserverType.js';
|
|
10
|
+
import { Observers } from './Observers.js';
|
|
11
|
+
|
|
12
|
+
function wireObserverInformation() {
|
|
13
|
+
return {
|
|
14
|
+
Id: 'employee-alerts',
|
|
15
|
+
EventSequenceId: 'event-log',
|
|
16
|
+
Type: ContractObserverType.Reactor,
|
|
17
|
+
RunningState: ContractObserverRunningState.Active,
|
|
18
|
+
LastHandledEventSequenceNumber: 6n,
|
|
19
|
+
NextEventSequenceNumber: 7n,
|
|
20
|
+
HandledEventCount: 6n
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function createObservers(getObserversResult?: unknown, removeObserverResult?: unknown) {
|
|
25
|
+
const getObservers = vi.fn().mockResolvedValue(getObserversResult ?? { items: [] });
|
|
26
|
+
const removeObserver = vi.fn().mockResolvedValue(
|
|
27
|
+
removeObserverResult ?? { Outcome: ContractObserverRemovalOutcome.Removed, BlockingNamespace: '' }
|
|
28
|
+
);
|
|
29
|
+
const connection = { observers: { getObservers, removeObserver } } as unknown as ChronicleConnection;
|
|
30
|
+
const observers = new Observers('my-event-store', 'my-namespace', connection);
|
|
31
|
+
return { observers, getObservers, removeObserver };
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
describe('Observers', () => {
|
|
35
|
+
describe('when getting all observers', () => {
|
|
36
|
+
it('should map every field on the wire observer', async () => {
|
|
37
|
+
const { observers } = createObservers({ items: [wireObserverInformation()] });
|
|
38
|
+
const result = await observers.getAll();
|
|
39
|
+
|
|
40
|
+
expect(result).toHaveLength(1);
|
|
41
|
+
expect(result[0].id).toEqual('employee-alerts');
|
|
42
|
+
expect(result[0].eventSequenceId.value).toEqual('event-log');
|
|
43
|
+
expect(result[0].type).toEqual(ObserverType.Reactor);
|
|
44
|
+
expect(result[0].runningState).toEqual(ObserverRunningState.Active);
|
|
45
|
+
expect(result[0].lastHandledEventSequenceNumber.value).toEqual(6n);
|
|
46
|
+
expect(result[0].nextEventSequenceNumber.value).toEqual(7n);
|
|
47
|
+
expect(result[0].handledEventCount).toEqual(6n);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it('should call the RPC with the event store and namespace', async () => {
|
|
51
|
+
const { observers, getObservers } = createObservers({ items: [] });
|
|
52
|
+
await observers.getAll();
|
|
53
|
+
|
|
54
|
+
expect(getObservers).toHaveBeenCalledTimes(1);
|
|
55
|
+
const request = getObservers.mock.calls[0][0];
|
|
56
|
+
expect(request.EventStore).toEqual('my-event-store');
|
|
57
|
+
expect(request.Namespace).toEqual('my-namespace');
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it('should return an empty array when there are no observers', async () => {
|
|
61
|
+
const { observers } = createObservers({ items: [] });
|
|
62
|
+
expect(await observers.getAll()).toEqual([]);
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
// OBSERVER_RUNNING_STATE_Disconnected is how the wire enum actually names it - protoc prefixes the
|
|
66
|
+
// literal to dodge a collision elsewhere in the file - so a mapping onto the wrong wire constant would
|
|
67
|
+
// compile fine and misreport every disconnected observer as unknown.
|
|
68
|
+
it('should report a disconnected observer as disconnected, not unknown', async () => {
|
|
69
|
+
const { observers } = createObservers({
|
|
70
|
+
items: [{ ...wireObserverInformation(), RunningState: ContractObserverRunningState.OBSERVER_RUNNING_STATE_Disconnected }]
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
expect((await observers.getAll())[0].runningState).toEqual(ObserverRunningState.Disconnected);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
describe('when removing an observer', () => {
|
|
78
|
+
it('should call the RPC with the observer id, the event store, the namespace and the event log', async () => {
|
|
79
|
+
const { observers, removeObserver } = createObservers();
|
|
80
|
+
await observers.remove('employee-alerts');
|
|
81
|
+
|
|
82
|
+
expect(removeObserver).toHaveBeenCalledTimes(1);
|
|
83
|
+
const request = removeObserver.mock.calls[0][0];
|
|
84
|
+
expect(request.ObserverId).toEqual('employee-alerts');
|
|
85
|
+
expect(request.EventStore).toEqual('my-event-store');
|
|
86
|
+
expect(request.Namespace).toEqual('my-namespace');
|
|
87
|
+
expect(request.EventSequenceId).toEqual('event-log');
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
it('should report a removed observer as removed', async () => {
|
|
91
|
+
const { observers } = createObservers(undefined, {
|
|
92
|
+
Outcome: ContractObserverRemovalOutcome.Removed,
|
|
93
|
+
BlockingNamespace: ''
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
const result = await observers.remove('employee-alerts');
|
|
97
|
+
|
|
98
|
+
expect(result.isRemoved).toBe(true);
|
|
99
|
+
expect(result.outcome).toEqual(ObserverRemovalOutcome.Removed);
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
it('should refuse to remove an active observer and name the namespace still running it', async () => {
|
|
103
|
+
const { observers } = createObservers(undefined, {
|
|
104
|
+
Outcome: ContractObserverRemovalOutcome.ObserverActive,
|
|
105
|
+
BlockingNamespace: 'production'
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
const result = await observers.remove('employee-alerts');
|
|
109
|
+
|
|
110
|
+
expect(result.isRemoved).toBe(false);
|
|
111
|
+
expect(result.outcome).toEqual(ObserverRemovalOutcome.ObserverActive);
|
|
112
|
+
expect(result.blockingNamespace).toEqual('production');
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
});
|
|
@@ -0,0 +1,49 @@
|
|
|
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 { ChronicleConnection } from '../connection/index.js';
|
|
5
|
+
import { EventSequenceId } from '../eventSequences/EventSequenceId.js';
|
|
6
|
+
import { IObservers } from './IObservers.js';
|
|
7
|
+
import { ObserverInformation } from './ObserverInformation.js';
|
|
8
|
+
import { ObserverRemovalResult } from './ObserverRemovalResult.js';
|
|
9
|
+
import { toObserverInformation } from './toObserverInformation.js';
|
|
10
|
+
import { toObserverRemovalResult } from './toObserverRemovalResult.js';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Implements {@link IObservers} by proxying to the Chronicle Kernel over the client connection.
|
|
14
|
+
*/
|
|
15
|
+
export class Observers implements IObservers {
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new {@link Observers} instance.
|
|
18
|
+
* @param _eventStore - Event store name.
|
|
19
|
+
* @param _namespace - Event store namespace.
|
|
20
|
+
* @param _connection - Chronicle connection.
|
|
21
|
+
*/
|
|
22
|
+
constructor(
|
|
23
|
+
private readonly _eventStore: string,
|
|
24
|
+
private readonly _namespace: string,
|
|
25
|
+
private readonly _connection: ChronicleConnection
|
|
26
|
+
) {}
|
|
27
|
+
|
|
28
|
+
/** @inheritdoc */
|
|
29
|
+
async getAll(): Promise<ObserverInformation[]> {
|
|
30
|
+
const response = await this._connection.observers.getObservers({
|
|
31
|
+
EventStore: this._eventStore,
|
|
32
|
+
Namespace: this._namespace
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
return (response.items ?? []).map(observer => toObserverInformation(observer));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** @inheritdoc */
|
|
39
|
+
async remove(observerId: string): Promise<ObserverRemovalResult> {
|
|
40
|
+
const response = await this._connection.observers.removeObserver({
|
|
41
|
+
EventStore: this._eventStore,
|
|
42
|
+
Namespace: this._namespace,
|
|
43
|
+
ObserverId: observerId,
|
|
44
|
+
EventSequenceId: EventSequenceId.eventLog.value
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
return toObserverRemovalResult(response);
|
|
48
|
+
}
|
|
49
|
+
}
|
package/observation/index.ts
CHANGED
|
@@ -8,5 +8,13 @@ export type { FailedPartitionAttempt } from './FailedPartitionAttempt.js';
|
|
|
8
8
|
export type { IFailedPartitions } from './IFailedPartitions.js';
|
|
9
9
|
export { FailedPartitions } from './FailedPartitions.js';
|
|
10
10
|
export { toObserverRunningState } from './toObserverRunningState.js';
|
|
11
|
+
export { ObserverType } from './ObserverType.js';
|
|
12
|
+
export type { ObserverInformation } from './ObserverInformation.js';
|
|
13
|
+
export { toObserverInformation, toObserverType } from './toObserverInformation.js';
|
|
14
|
+
export { ObserverRemovalOutcome } from './ObserverRemovalOutcome.js';
|
|
15
|
+
export type { ObserverRemovalResult } from './ObserverRemovalResult.js';
|
|
16
|
+
export { toObserverRemovalOutcome, toObserverRemovalResult } from './toObserverRemovalResult.js';
|
|
17
|
+
export type { IObservers } from './IObservers.js';
|
|
18
|
+
export { Observers } from './Observers.js';
|
|
11
19
|
export type { ICanBeNotifiedWhenReplay } from './ICanBeNotifiedWhenReplay.js';
|
|
12
20
|
export type { ICanBeNotifiedWhenPartitionReplayed } from './ICanBeNotifiedWhenPartitionReplayed.js';
|
|
@@ -0,0 +1,46 @@
|
|
|
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 { ObserverInformation as ContractObserverInformation, ObserverType as ContractObserverType } from '@cratis/chronicle.contracts';
|
|
5
|
+
import { EventSequenceId } from '../eventSequences/EventSequenceId.js';
|
|
6
|
+
import { EventSequenceNumber } from '../eventSequences/EventSequenceNumber.js';
|
|
7
|
+
import { ObserverInformation } from './ObserverInformation.js';
|
|
8
|
+
import { ObserverType } from './ObserverType.js';
|
|
9
|
+
import { toObserverRunningState } from './toObserverRunningState.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Converts a wire {@link ContractObserverType} into the client {@link ObserverType}.
|
|
13
|
+
* @param type - The wire observer type to convert.
|
|
14
|
+
* @returns The converted client observer type.
|
|
15
|
+
*/
|
|
16
|
+
export function toObserverType(type: ContractObserverType): ObserverType {
|
|
17
|
+
switch (type) {
|
|
18
|
+
case ContractObserverType.Reactor:
|
|
19
|
+
return ObserverType.Reactor;
|
|
20
|
+
case ContractObserverType.Projection:
|
|
21
|
+
return ObserverType.Projection;
|
|
22
|
+
case ContractObserverType.Reducer:
|
|
23
|
+
return ObserverType.Reducer;
|
|
24
|
+
case ContractObserverType.External:
|
|
25
|
+
return ObserverType.External;
|
|
26
|
+
default:
|
|
27
|
+
return ObserverType.Unknown;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Converts a wire {@link ContractObserverInformation} into the client {@link ObserverInformation}.
|
|
33
|
+
* @param observer - The wire observer information to convert.
|
|
34
|
+
* @returns The converted client observer information.
|
|
35
|
+
*/
|
|
36
|
+
export function toObserverInformation(observer: ContractObserverInformation): ObserverInformation {
|
|
37
|
+
return {
|
|
38
|
+
id: observer.Id,
|
|
39
|
+
eventSequenceId: new EventSequenceId(observer.EventSequenceId),
|
|
40
|
+
type: toObserverType(observer.Type),
|
|
41
|
+
runningState: toObserverRunningState(observer.RunningState),
|
|
42
|
+
lastHandledEventSequenceNumber: new EventSequenceNumber(observer.LastHandledEventSequenceNumber ?? 0n),
|
|
43
|
+
nextEventSequenceNumber: new EventSequenceNumber(observer.NextEventSequenceNumber ?? 0n),
|
|
44
|
+
handledEventCount: observer.HandledEventCount ?? 0n
|
|
45
|
+
};
|
|
46
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
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 { ObserverRemovalOutcome as ContractObserverRemovalOutcome, RemoveObserverResponse } from '@cratis/chronicle.contracts';
|
|
5
|
+
import { ObserverRemovalOutcome } from './ObserverRemovalOutcome.js';
|
|
6
|
+
import { ObserverRemovalResult } from './ObserverRemovalResult.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Converts a wire {@link ContractObserverRemovalOutcome} into the client {@link ObserverRemovalOutcome}.
|
|
10
|
+
* @param outcome - The wire outcome to convert.
|
|
11
|
+
* @returns The converted client outcome.
|
|
12
|
+
*/
|
|
13
|
+
export function toObserverRemovalOutcome(outcome: ContractObserverRemovalOutcome): ObserverRemovalOutcome {
|
|
14
|
+
switch (outcome) {
|
|
15
|
+
case ContractObserverRemovalOutcome.Removed:
|
|
16
|
+
return ObserverRemovalOutcome.Removed;
|
|
17
|
+
case ContractObserverRemovalOutcome.ObserverNotFound:
|
|
18
|
+
return ObserverRemovalOutcome.ObserverNotFound;
|
|
19
|
+
case ContractObserverRemovalOutcome.ObserverActive:
|
|
20
|
+
return ObserverRemovalOutcome.ObserverActive;
|
|
21
|
+
case ContractObserverRemovalOutcome.ObserverSubscribed:
|
|
22
|
+
return ObserverRemovalOutcome.ObserverSubscribed;
|
|
23
|
+
default:
|
|
24
|
+
throw new Error(`Unknown observer removal outcome: ${outcome}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Converts a wire {@link RemoveObserverResponse} into the client {@link ObserverRemovalResult}.
|
|
30
|
+
* @param response - The wire response to convert.
|
|
31
|
+
* @returns The converted client removal result.
|
|
32
|
+
*/
|
|
33
|
+
export function toObserverRemovalResult(response: RemoveObserverResponse): ObserverRemovalResult {
|
|
34
|
+
const outcome = toObserverRemovalOutcome(response.Outcome);
|
|
35
|
+
return {
|
|
36
|
+
outcome,
|
|
37
|
+
blockingNamespace: response.BlockingNamespace ?? '',
|
|
38
|
+
isRemoved: outcome === ObserverRemovalOutcome.Removed
|
|
39
|
+
};
|
|
40
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cratis/chronicle",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.14.0",
|
|
4
4
|
"description": "Event sourcing for TypeScript and Node.js — the idiomatic client for Cratis Chronicle, the open-source event-sourcing database",
|
|
5
5
|
"author": "Cratis",
|
|
6
6
|
"license": "MIT",
|
|
@@ -76,6 +76,11 @@
|
|
|
76
76
|
"import": "./dist/reducers/index.js",
|
|
77
77
|
"default": "./dist/reducers/index.js"
|
|
78
78
|
},
|
|
79
|
+
"./testing": {
|
|
80
|
+
"types": "./dist/testing/index.d.ts",
|
|
81
|
+
"import": "./dist/testing/index.js",
|
|
82
|
+
"default": "./dist/testing/index.js"
|
|
83
|
+
},
|
|
79
84
|
"./seeding": {
|
|
80
85
|
"types": "./dist/seeding/index.d.ts",
|
|
81
86
|
"import": "./dist/seeding/index.js",
|
|
@@ -167,7 +172,7 @@
|
|
|
167
172
|
},
|
|
168
173
|
"dependencies": {
|
|
169
174
|
"@bufbuild/protobuf": "^2.15.0",
|
|
170
|
-
"@cratis/chronicle.contracts": "19.
|
|
175
|
+
"@cratis/chronicle.contracts": "19.6.1",
|
|
171
176
|
"@grpc/grpc-js": "^1.14.4",
|
|
172
177
|
"@opentelemetry/api": "^1.9.1",
|
|
173
178
|
"glob": "^13.0.6",
|