@cratis/chronicle 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/EventStore.ts +8 -0
- package/IEventStore.ts +8 -0
- package/compliance/ComplianceContracts.ts +63 -0
- package/compliance/ComplianceMetadata.ts +19 -0
- package/compliance/ComplianceMetadataResolver.ts +51 -0
- package/compliance/ComplianceMetadataType.ts +36 -0
- package/compliance/index.ts +7 -0
- package/compliance/pii.ts +115 -0
- package/connection/ChronicleConnection.ts +19 -1
- package/connection/ChronicleServices.ts +6 -0
- package/dist/EventStore.d.ts +4 -0
- package/dist/EventStore.d.ts.map +1 -1
- package/dist/EventStore.js +6 -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/compliance/ComplianceContracts.d.ts +56 -0
- package/dist/compliance/ComplianceContracts.d.ts.map +1 -0
- package/dist/compliance/ComplianceContracts.js +25 -0
- package/dist/compliance/ComplianceContracts.js.map +1 -0
- package/dist/compliance/ComplianceMetadata.d.ts +15 -0
- package/dist/compliance/ComplianceMetadata.d.ts.map +1 -0
- package/dist/compliance/ComplianceMetadata.js +4 -0
- package/dist/compliance/ComplianceMetadata.js.map +1 -0
- package/dist/compliance/ComplianceMetadataResolver.d.ts +27 -0
- package/dist/compliance/ComplianceMetadataResolver.d.ts.map +1 -0
- package/dist/compliance/ComplianceMetadataResolver.js +45 -0
- package/dist/compliance/ComplianceMetadataResolver.js.map +1 -0
- package/dist/compliance/ComplianceMetadataType.d.ts +24 -0
- package/dist/compliance/ComplianceMetadataType.d.ts.map +1 -0
- package/dist/compliance/ComplianceMetadataType.js +32 -0
- package/dist/compliance/ComplianceMetadataType.js.map +1 -0
- package/dist/compliance/index.d.ts +5 -0
- package/dist/compliance/index.d.ts.map +1 -0
- package/dist/compliance/index.js +6 -0
- package/dist/compliance/index.js.map +1 -0
- package/dist/compliance/pii.d.ts +69 -0
- package/dist/compliance/pii.d.ts.map +1 -0
- package/dist/compliance/pii.js +106 -0
- package/dist/compliance/pii.js.map +1 -0
- package/dist/connection/ChronicleConnection.d.ts +3 -0
- package/dist/connection/ChronicleConnection.d.ts.map +1 -1
- package/dist/connection/ChronicleConnection.js +16 -2
- package/dist/connection/ChronicleConnection.js.map +1 -1
- package/dist/connection/ChronicleServices.d.ts +6 -1
- package/dist/connection/ChronicleServices.d.ts.map +1 -1
- package/dist/eventSequences/EventSequence.js +3 -3
- package/dist/eventSequences/EventSequence.js.map +1 -1
- package/dist/eventStoreSubscriptions/EventStoreSubscriptionBuilder.d.ts +20 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptionBuilder.d.ts.map +1 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptionBuilder.js +41 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptionBuilder.js.map +1 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptionDefinition.d.ts +12 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptionDefinition.d.ts.map +1 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptionDefinition.js +16 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptionDefinition.js.map +1 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptionId.d.ts +10 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptionId.d.ts.map +1 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptionId.js +16 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptionId.js.map +1 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptions.d.ts +21 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptions.d.ts.map +1 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptions.js +60 -0
- package/dist/eventStoreSubscriptions/EventStoreSubscriptions.js.map +1 -0
- package/dist/eventStoreSubscriptions/IEventStoreSubscriptionBuilder.d.ts +20 -0
- package/dist/eventStoreSubscriptions/IEventStoreSubscriptionBuilder.d.ts.map +1 -0
- package/dist/eventStoreSubscriptions/IEventStoreSubscriptionBuilder.js +4 -0
- package/dist/eventStoreSubscriptions/IEventStoreSubscriptionBuilder.js.map +1 -0
- package/dist/eventStoreSubscriptions/IEventStoreSubscriptions.d.ts +21 -0
- package/dist/eventStoreSubscriptions/IEventStoreSubscriptions.d.ts.map +1 -0
- package/dist/eventStoreSubscriptions/IEventStoreSubscriptions.js +4 -0
- package/dist/eventStoreSubscriptions/IEventStoreSubscriptions.js.map +1 -0
- package/dist/eventStoreSubscriptions/contracts.d.ts +71 -0
- package/dist/eventStoreSubscriptions/contracts.d.ts.map +1 -0
- package/dist/eventStoreSubscriptions/contracts.js +310 -0
- package/dist/eventStoreSubscriptions/contracts.js.map +1 -0
- package/dist/eventStoreSubscriptions/index.d.ts +7 -0
- package/dist/eventStoreSubscriptions/index.d.ts.map +1 -0
- package/dist/eventStoreSubscriptions/index.js +7 -0
- package/dist/eventStoreSubscriptions/index.js.map +1 -0
- package/dist/events/constraints/IUniqueConstraintBuilder.d.ts +3 -2
- package/dist/events/constraints/IUniqueConstraintBuilder.d.ts.map +1 -1
- package/dist/events/constraints/UniqueConstraintBuilder.d.ts +2 -8
- package/dist/events/constraints/UniqueConstraintBuilder.d.ts.map +1 -1
- package/dist/events/constraints/UniqueConstraintBuilder.js +4 -15
- package/dist/events/constraints/UniqueConstraintBuilder.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/reactors/Reactors.js +1 -1
- package/dist/reactors/Reactors.js.map +1 -1
- package/dist/readModels/IMaterializedReadModels.d.ts +23 -0
- package/dist/readModels/IMaterializedReadModels.d.ts.map +1 -0
- package/dist/readModels/IMaterializedReadModels.js +4 -0
- package/dist/readModels/IMaterializedReadModels.js.map +1 -0
- package/dist/readModels/IReadModels.d.ts +75 -0
- package/dist/readModels/IReadModels.d.ts.map +1 -0
- package/dist/readModels/IReadModels.js +4 -0
- package/dist/readModels/IReadModels.js.map +1 -0
- package/dist/readModels/MaterializedReadModels.d.ts +25 -0
- package/dist/readModels/MaterializedReadModels.d.ts.map +1 -0
- package/dist/readModels/MaterializedReadModels.js +125 -0
- package/dist/readModels/MaterializedReadModels.js.map +1 -0
- package/dist/readModels/ReadModelChangeset.d.ts +14 -0
- package/dist/readModels/ReadModelChangeset.d.ts.map +1 -0
- package/dist/readModels/ReadModelChangeset.js +4 -0
- package/dist/readModels/ReadModelChangeset.js.map +1 -0
- package/dist/readModels/ReadModelSnapshot.d.ts +15 -0
- package/dist/readModels/ReadModelSnapshot.d.ts.map +1 -0
- package/dist/readModels/ReadModelSnapshot.js +4 -0
- package/dist/readModels/ReadModelSnapshot.js.map +1 -0
- package/dist/readModels/ReadModels.d.ts +42 -0
- package/dist/readModels/ReadModels.d.ts.map +1 -0
- package/dist/readModels/ReadModels.js +270 -0
- package/dist/readModels/ReadModels.js.map +1 -0
- package/dist/readModels/index.d.ts +6 -0
- package/dist/readModels/index.d.ts.map +1 -1
- package/dist/readModels/index.js +2 -0
- package/dist/readModels/index.js.map +1 -1
- package/dist/readModels/readModel.d.ts.map +1 -1
- package/dist/readModels/readModel.js +0 -20
- package/dist/readModels/readModel.js.map +1 -1
- package/dist/reducers/Reducers.d.ts +1 -0
- package/dist/reducers/Reducers.d.ts.map +1 -1
- package/dist/reducers/Reducers.js +10 -3
- package/dist/reducers/Reducers.js.map +1 -1
- package/dist/schemas/JsonSchemaGenerator.d.ts +9 -0
- package/dist/schemas/JsonSchemaGenerator.d.ts.map +1 -1
- package/dist/schemas/JsonSchemaGenerator.js +53 -1
- package/dist/schemas/JsonSchemaGenerator.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/TypeIntrospector.d.ts +11 -1
- package/dist/types/TypeIntrospector.d.ts.map +1 -1
- package/dist/types/TypeIntrospector.js +29 -3
- package/dist/types/TypeIntrospector.js.map +1 -1
- package/eventSequences/EventSequence.ts +3 -3
- package/eventStoreSubscriptions/EventStoreSubscriptionBuilder.ts +52 -0
- package/eventStoreSubscriptions/EventStoreSubscriptionDefinition.ts +16 -0
- package/eventStoreSubscriptions/EventStoreSubscriptionId.ts +14 -0
- package/eventStoreSubscriptions/EventStoreSubscriptions.ts +74 -0
- package/eventStoreSubscriptions/IEventStoreSubscriptionBuilder.ts +24 -0
- package/eventStoreSubscriptions/IEventStoreSubscriptions.ts +29 -0
- package/eventStoreSubscriptions/contracts.ts +372 -0
- package/eventStoreSubscriptions/index.ts +9 -0
- package/events/constraints/IUniqueConstraintBuilder.ts +3 -2
- package/events/constraints/UniqueConstraintBuilder.ts +5 -17
- package/index.ts +6 -0
- package/package.json +17 -7
- package/reactors/Reactors.ts +1 -1
- package/readModels/IMaterializedReadModels.ts +27 -0
- package/readModels/IReadModels.ts +87 -0
- package/readModels/MaterializedReadModels.ts +151 -0
- package/readModels/ReadModelChangeset.ts +19 -0
- package/readModels/ReadModelSnapshot.ts +21 -0
- package/readModels/ReadModels.ts +333 -0
- package/readModels/index.ts +6 -0
- package/readModels/readModel.ts +0 -22
- package/reducers/Reducers.ts +12 -3
- package/schemas/JsonSchemaGenerator.ts +61 -1
- package/types/TypeIntrospector.ts +32 -3
|
@@ -0,0 +1,16 @@
|
|
|
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 { EventType } from '../events';
|
|
5
|
+
import { EventStoreSubscriptionId } from './EventStoreSubscriptionId';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Represents a definition of an event store subscription.
|
|
9
|
+
*/
|
|
10
|
+
export class EventStoreSubscriptionDefinition {
|
|
11
|
+
constructor(
|
|
12
|
+
readonly id: EventStoreSubscriptionId,
|
|
13
|
+
readonly sourceEventStore: string,
|
|
14
|
+
readonly eventTypes: EventType[]
|
|
15
|
+
) {}
|
|
16
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
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 unique identifier of an event store subscription.
|
|
6
|
+
*/
|
|
7
|
+
export class EventStoreSubscriptionId {
|
|
8
|
+
constructor(readonly value: string) {}
|
|
9
|
+
|
|
10
|
+
/** @inheritdoc */
|
|
11
|
+
toString(): string {
|
|
12
|
+
return this.value;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
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 { diag } from '@opentelemetry/api';
|
|
5
|
+
import { ChronicleConnection } from '../connection';
|
|
6
|
+
import { EventStoreName } from '../EventStoreName';
|
|
7
|
+
import { IEventTypes } from '../events';
|
|
8
|
+
import { EventStoreSubscriptionBuilder } from './EventStoreSubscriptionBuilder';
|
|
9
|
+
import { EventStoreSubscriptionId } from './EventStoreSubscriptionId';
|
|
10
|
+
import { IEventStoreSubscriptionBuilder } from './IEventStoreSubscriptionBuilder';
|
|
11
|
+
import { IEventStoreSubscriptions } from './IEventStoreSubscriptions';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Represents an implementation of {@link IEventStoreSubscriptions}.
|
|
15
|
+
*/
|
|
16
|
+
export class EventStoreSubscriptions implements IEventStoreSubscriptions {
|
|
17
|
+
private readonly _logger = diag.createComponentLogger({
|
|
18
|
+
namespace: '@cratis/chronicle/EventStoreSubscriptions'
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
constructor(
|
|
22
|
+
private readonly _eventTypes: IEventTypes,
|
|
23
|
+
private readonly _targetEventStore: string,
|
|
24
|
+
private readonly _connection: ChronicleConnection
|
|
25
|
+
) {}
|
|
26
|
+
|
|
27
|
+
/** @inheritdoc */
|
|
28
|
+
async subscribe(
|
|
29
|
+
subscriptionId: EventStoreSubscriptionId | string,
|
|
30
|
+
sourceEventStore: EventStoreName | string,
|
|
31
|
+
configure?: (builder: IEventStoreSubscriptionBuilder) => void
|
|
32
|
+
): Promise<void> {
|
|
33
|
+
const id = typeof subscriptionId === 'string' ? new EventStoreSubscriptionId(subscriptionId) : subscriptionId;
|
|
34
|
+
const source = typeof sourceEventStore === 'string' ? sourceEventStore : sourceEventStore.value;
|
|
35
|
+
const builder = new EventStoreSubscriptionBuilder(this._eventTypes, id, source);
|
|
36
|
+
configure?.(builder);
|
|
37
|
+
const definition = builder.build();
|
|
38
|
+
|
|
39
|
+
this._logger.info('Registering event store subscription', {
|
|
40
|
+
targetEventStore: this._targetEventStore,
|
|
41
|
+
subscriptionId: id.value,
|
|
42
|
+
sourceEventStore: source,
|
|
43
|
+
eventTypeCount: definition.eventTypes.length
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
await this._connection.eventStoreSubscriptions.add({
|
|
47
|
+
TargetEventStore: this._targetEventStore,
|
|
48
|
+
Subscriptions: [{
|
|
49
|
+
Identifier: definition.id.value,
|
|
50
|
+
SourceEventStore: definition.sourceEventStore,
|
|
51
|
+
EventTypes: definition.eventTypes.map(_ => ({
|
|
52
|
+
Id: _.id.value,
|
|
53
|
+
Generation: _.generation.value,
|
|
54
|
+
Tombstone: _.tombstone
|
|
55
|
+
}))
|
|
56
|
+
}]
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** @inheritdoc */
|
|
61
|
+
async unsubscribe(subscriptionId: EventStoreSubscriptionId | string): Promise<void> {
|
|
62
|
+
const id = typeof subscriptionId === 'string' ? subscriptionId : subscriptionId.value;
|
|
63
|
+
|
|
64
|
+
this._logger.info('Removing event store subscription', {
|
|
65
|
+
targetEventStore: this._targetEventStore,
|
|
66
|
+
subscriptionId: id
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
await this._connection.eventStoreSubscriptions.remove({
|
|
70
|
+
TargetEventStore: this._targetEventStore,
|
|
71
|
+
SubscriptionIds: [id]
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { Constructor } from '@cratis/fundamentals';
|
|
5
|
+
import { EventTypeId } from '../events';
|
|
6
|
+
import { EventStoreSubscriptionDefinition } from './EventStoreSubscriptionDefinition';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Defines a builder for configuring an event store subscription.
|
|
10
|
+
*/
|
|
11
|
+
export interface IEventStoreSubscriptionBuilder {
|
|
12
|
+
/**
|
|
13
|
+
* Specify the event types to subscribe to. If not specified, all discovered event types are subscribed.
|
|
14
|
+
* @param eventType - The event type identifier or decorated event constructor to include.
|
|
15
|
+
* @returns The builder for continuation.
|
|
16
|
+
*/
|
|
17
|
+
withEventType(eventType: EventTypeId | Constructor): IEventStoreSubscriptionBuilder;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Build the subscription definition.
|
|
21
|
+
* @returns The event store subscription definition.
|
|
22
|
+
*/
|
|
23
|
+
build(): EventStoreSubscriptionDefinition;
|
|
24
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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 { EventStoreName } from '../EventStoreName';
|
|
5
|
+
import { EventStoreSubscriptionId } from './EventStoreSubscriptionId';
|
|
6
|
+
import { IEventStoreSubscriptionBuilder } from './IEventStoreSubscriptionBuilder';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Defines the API for managing event store subscriptions.
|
|
10
|
+
*/
|
|
11
|
+
export interface IEventStoreSubscriptions {
|
|
12
|
+
/**
|
|
13
|
+
* Subscribe to events from a source event store.
|
|
14
|
+
* @param subscriptionId - The unique identifier for the subscription.
|
|
15
|
+
* @param sourceEventStore - The source event store to subscribe to.
|
|
16
|
+
* @param configure - Optional callback to configure the subscription.
|
|
17
|
+
*/
|
|
18
|
+
subscribe(
|
|
19
|
+
subscriptionId: EventStoreSubscriptionId | string,
|
|
20
|
+
sourceEventStore: EventStoreName | string,
|
|
21
|
+
configure?: (builder: IEventStoreSubscriptionBuilder) => void
|
|
22
|
+
): Promise<void>;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Removes a subscription by its identifier.
|
|
26
|
+
* @param subscriptionId - The subscription identifier to remove.
|
|
27
|
+
*/
|
|
28
|
+
unsubscribe(subscriptionId: EventStoreSubscriptionId | string): Promise<void>;
|
|
29
|
+
}
|
|
@@ -0,0 +1,372 @@
|
|
|
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 { BinaryReader, BinaryWriter } from '@bufbuild/protobuf/wire';
|
|
5
|
+
import type { CallContext, CallOptions } from 'nice-grpc-common';
|
|
6
|
+
|
|
7
|
+
export interface Empty {}
|
|
8
|
+
|
|
9
|
+
export interface AddEventStoreSubscriptions {
|
|
10
|
+
TargetEventStore: string;
|
|
11
|
+
Subscriptions: EventStoreSubscriptionDefinitionContract[];
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface EventStoreSubscriptionDefinitionContract {
|
|
15
|
+
Identifier: string;
|
|
16
|
+
SourceEventStore: string;
|
|
17
|
+
EventTypes: EventTypeContract[];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface EventTypeContract {
|
|
21
|
+
Id: string;
|
|
22
|
+
Generation: number;
|
|
23
|
+
Tombstone: boolean;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface RemoveEventStoreSubscriptions {
|
|
27
|
+
TargetEventStore: string;
|
|
28
|
+
SubscriptionIds: string[];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function createBaseEmpty(): Empty {
|
|
32
|
+
return {};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function createBaseAddEventStoreSubscriptions(): AddEventStoreSubscriptions {
|
|
36
|
+
return { TargetEventStore: '', Subscriptions: [] };
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function createBaseEventStoreSubscriptionDefinition(): EventStoreSubscriptionDefinitionContract {
|
|
40
|
+
return { Identifier: '', SourceEventStore: '', EventTypes: [] };
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function createBaseEventType(): EventTypeContract {
|
|
44
|
+
return { Id: '', Generation: 0, Tombstone: false };
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function createBaseRemoveEventStoreSubscriptions(): RemoveEventStoreSubscriptions {
|
|
48
|
+
return { TargetEventStore: '', SubscriptionIds: [] };
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export const EmptyMessage: MessageFns<Empty> = {
|
|
52
|
+
encode(_: Empty, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
53
|
+
return writer;
|
|
54
|
+
},
|
|
55
|
+
decode(input: BinaryReader | Uint8Array, length?: number): Empty {
|
|
56
|
+
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
57
|
+
const end = length === undefined ? reader.len : reader.pos + length;
|
|
58
|
+
while (reader.pos < end) {
|
|
59
|
+
const tag = reader.uint32();
|
|
60
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
reader.skip(tag & 7);
|
|
64
|
+
}
|
|
65
|
+
return createBaseEmpty();
|
|
66
|
+
},
|
|
67
|
+
fromJSON(_: unknown): Empty {
|
|
68
|
+
return createBaseEmpty();
|
|
69
|
+
},
|
|
70
|
+
toJSON(_: Empty): unknown {
|
|
71
|
+
return {};
|
|
72
|
+
},
|
|
73
|
+
create(base?: DeepPartial<Empty>): Empty {
|
|
74
|
+
return EmptyMessage.fromPartial(base ?? {});
|
|
75
|
+
},
|
|
76
|
+
fromPartial(_: DeepPartial<Empty>): Empty {
|
|
77
|
+
return createBaseEmpty();
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const AddEventStoreSubscriptionsMessage: MessageFns<AddEventStoreSubscriptions> = {
|
|
82
|
+
encode(message: AddEventStoreSubscriptions, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
83
|
+
if (message.TargetEventStore !== '') {
|
|
84
|
+
writer.uint32(10).string(message.TargetEventStore);
|
|
85
|
+
}
|
|
86
|
+
for (const subscription of message.Subscriptions) {
|
|
87
|
+
EventStoreSubscriptionDefinitionMessage.encode(subscription, writer.uint32(18).fork()).join();
|
|
88
|
+
}
|
|
89
|
+
return writer;
|
|
90
|
+
},
|
|
91
|
+
decode(input: BinaryReader | Uint8Array, length?: number): AddEventStoreSubscriptions {
|
|
92
|
+
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
93
|
+
const end = length === undefined ? reader.len : reader.pos + length;
|
|
94
|
+
const message = createBaseAddEventStoreSubscriptions();
|
|
95
|
+
while (reader.pos < end) {
|
|
96
|
+
const tag = reader.uint32();
|
|
97
|
+
switch (tag >>> 3) {
|
|
98
|
+
case 1:
|
|
99
|
+
message.TargetEventStore = reader.string();
|
|
100
|
+
continue;
|
|
101
|
+
case 2:
|
|
102
|
+
message.Subscriptions.push(EventStoreSubscriptionDefinitionMessage.decode(reader, reader.uint32()));
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
reader.skip(tag & 7);
|
|
109
|
+
}
|
|
110
|
+
return message;
|
|
111
|
+
},
|
|
112
|
+
fromJSON(object: unknown): AddEventStoreSubscriptions {
|
|
113
|
+
const value = object as { TargetEventStore?: unknown; Subscriptions?: unknown[] };
|
|
114
|
+
return {
|
|
115
|
+
TargetEventStore: typeof value.TargetEventStore === 'string' ? value.TargetEventStore : '',
|
|
116
|
+
Subscriptions: Array.isArray(value.Subscriptions)
|
|
117
|
+
? value.Subscriptions.map(_ => EventStoreSubscriptionDefinitionMessage.fromJSON(_))
|
|
118
|
+
: []
|
|
119
|
+
};
|
|
120
|
+
},
|
|
121
|
+
toJSON(message: AddEventStoreSubscriptions): unknown {
|
|
122
|
+
return {
|
|
123
|
+
TargetEventStore: message.TargetEventStore,
|
|
124
|
+
Subscriptions: message.Subscriptions.map(_ => EventStoreSubscriptionDefinitionMessage.toJSON(_))
|
|
125
|
+
};
|
|
126
|
+
},
|
|
127
|
+
create(base?: DeepPartial<AddEventStoreSubscriptions>): AddEventStoreSubscriptions {
|
|
128
|
+
return AddEventStoreSubscriptionsMessage.fromPartial(base ?? {});
|
|
129
|
+
},
|
|
130
|
+
fromPartial(object: DeepPartial<AddEventStoreSubscriptions>): AddEventStoreSubscriptions {
|
|
131
|
+
return {
|
|
132
|
+
TargetEventStore: object.TargetEventStore ?? '',
|
|
133
|
+
Subscriptions: object.Subscriptions?.map(_ => EventStoreSubscriptionDefinitionMessage.fromPartial(_)) ?? []
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
export const EventStoreSubscriptionDefinitionMessage: MessageFns<EventStoreSubscriptionDefinitionContract> = {
|
|
139
|
+
encode(message: EventStoreSubscriptionDefinitionContract, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
140
|
+
if (message.Identifier !== '') {
|
|
141
|
+
writer.uint32(10).string(message.Identifier);
|
|
142
|
+
}
|
|
143
|
+
if (message.SourceEventStore !== '') {
|
|
144
|
+
writer.uint32(18).string(message.SourceEventStore);
|
|
145
|
+
}
|
|
146
|
+
for (const eventType of message.EventTypes) {
|
|
147
|
+
EventTypeMessage.encode(eventType, writer.uint32(26).fork()).join();
|
|
148
|
+
}
|
|
149
|
+
return writer;
|
|
150
|
+
},
|
|
151
|
+
decode(input: BinaryReader | Uint8Array, length?: number): EventStoreSubscriptionDefinitionContract {
|
|
152
|
+
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
153
|
+
const end = length === undefined ? reader.len : reader.pos + length;
|
|
154
|
+
const message = createBaseEventStoreSubscriptionDefinition();
|
|
155
|
+
while (reader.pos < end) {
|
|
156
|
+
const tag = reader.uint32();
|
|
157
|
+
switch (tag >>> 3) {
|
|
158
|
+
case 1:
|
|
159
|
+
message.Identifier = reader.string();
|
|
160
|
+
continue;
|
|
161
|
+
case 2:
|
|
162
|
+
message.SourceEventStore = reader.string();
|
|
163
|
+
continue;
|
|
164
|
+
case 3:
|
|
165
|
+
message.EventTypes.push(EventTypeMessage.decode(reader, reader.uint32()));
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
reader.skip(tag & 7);
|
|
172
|
+
}
|
|
173
|
+
return message;
|
|
174
|
+
},
|
|
175
|
+
fromJSON(object: unknown): EventStoreSubscriptionDefinitionContract {
|
|
176
|
+
const value = object as { Identifier?: unknown; SourceEventStore?: unknown; EventTypes?: unknown[] };
|
|
177
|
+
return {
|
|
178
|
+
Identifier: typeof value.Identifier === 'string' ? value.Identifier : '',
|
|
179
|
+
SourceEventStore: typeof value.SourceEventStore === 'string' ? value.SourceEventStore : '',
|
|
180
|
+
EventTypes: Array.isArray(value.EventTypes)
|
|
181
|
+
? value.EventTypes.map(_ => EventTypeMessage.fromJSON(_))
|
|
182
|
+
: []
|
|
183
|
+
};
|
|
184
|
+
},
|
|
185
|
+
toJSON(message: EventStoreSubscriptionDefinitionContract): unknown {
|
|
186
|
+
return {
|
|
187
|
+
Identifier: message.Identifier,
|
|
188
|
+
SourceEventStore: message.SourceEventStore,
|
|
189
|
+
EventTypes: message.EventTypes.map(_ => EventTypeMessage.toJSON(_))
|
|
190
|
+
};
|
|
191
|
+
},
|
|
192
|
+
create(base?: DeepPartial<EventStoreSubscriptionDefinitionContract>): EventStoreSubscriptionDefinitionContract {
|
|
193
|
+
return EventStoreSubscriptionDefinitionMessage.fromPartial(base ?? {});
|
|
194
|
+
},
|
|
195
|
+
fromPartial(object: DeepPartial<EventStoreSubscriptionDefinitionContract>): EventStoreSubscriptionDefinitionContract {
|
|
196
|
+
return {
|
|
197
|
+
Identifier: object.Identifier ?? '',
|
|
198
|
+
SourceEventStore: object.SourceEventStore ?? '',
|
|
199
|
+
EventTypes: object.EventTypes?.map(_ => EventTypeMessage.fromPartial(_)) ?? []
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
export const EventTypeMessage: MessageFns<EventTypeContract> = {
|
|
205
|
+
encode(message: EventTypeContract, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
206
|
+
if (message.Id !== '') {
|
|
207
|
+
writer.uint32(10).string(message.Id);
|
|
208
|
+
}
|
|
209
|
+
if (message.Generation !== 0) {
|
|
210
|
+
writer.uint32(16).uint32(message.Generation);
|
|
211
|
+
}
|
|
212
|
+
if (message.Tombstone !== false) {
|
|
213
|
+
writer.uint32(24).bool(message.Tombstone);
|
|
214
|
+
}
|
|
215
|
+
return writer;
|
|
216
|
+
},
|
|
217
|
+
decode(input: BinaryReader | Uint8Array, length?: number): EventTypeContract {
|
|
218
|
+
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
219
|
+
const end = length === undefined ? reader.len : reader.pos + length;
|
|
220
|
+
const message = createBaseEventType();
|
|
221
|
+
while (reader.pos < end) {
|
|
222
|
+
const tag = reader.uint32();
|
|
223
|
+
switch (tag >>> 3) {
|
|
224
|
+
case 1:
|
|
225
|
+
message.Id = reader.string();
|
|
226
|
+
continue;
|
|
227
|
+
case 2:
|
|
228
|
+
message.Generation = reader.uint32();
|
|
229
|
+
continue;
|
|
230
|
+
case 3:
|
|
231
|
+
message.Tombstone = reader.bool();
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
235
|
+
break;
|
|
236
|
+
}
|
|
237
|
+
reader.skip(tag & 7);
|
|
238
|
+
}
|
|
239
|
+
return message;
|
|
240
|
+
},
|
|
241
|
+
fromJSON(object: unknown): EventTypeContract {
|
|
242
|
+
const value = object as { Id?: unknown; Generation?: unknown; Tombstone?: unknown };
|
|
243
|
+
return {
|
|
244
|
+
Id: typeof value.Id === 'string' ? value.Id : '',
|
|
245
|
+
Generation: typeof value.Generation === 'number' ? value.Generation : 0,
|
|
246
|
+
Tombstone: typeof value.Tombstone === 'boolean' ? value.Tombstone : false
|
|
247
|
+
};
|
|
248
|
+
},
|
|
249
|
+
toJSON(message: EventTypeContract): unknown {
|
|
250
|
+
return {
|
|
251
|
+
Id: message.Id,
|
|
252
|
+
Generation: message.Generation,
|
|
253
|
+
Tombstone: message.Tombstone
|
|
254
|
+
};
|
|
255
|
+
},
|
|
256
|
+
create(base?: DeepPartial<EventTypeContract>): EventTypeContract {
|
|
257
|
+
return EventTypeMessage.fromPartial(base ?? {});
|
|
258
|
+
},
|
|
259
|
+
fromPartial(object: DeepPartial<EventTypeContract>): EventTypeContract {
|
|
260
|
+
return {
|
|
261
|
+
Id: object.Id ?? '',
|
|
262
|
+
Generation: object.Generation ?? 0,
|
|
263
|
+
Tombstone: object.Tombstone ?? false
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
|
|
268
|
+
export const RemoveEventStoreSubscriptionsMessage: MessageFns<RemoveEventStoreSubscriptions> = {
|
|
269
|
+
encode(message: RemoveEventStoreSubscriptions, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
270
|
+
if (message.TargetEventStore !== '') {
|
|
271
|
+
writer.uint32(10).string(message.TargetEventStore);
|
|
272
|
+
}
|
|
273
|
+
for (const subscriptionId of message.SubscriptionIds) {
|
|
274
|
+
writer.uint32(18).string(subscriptionId);
|
|
275
|
+
}
|
|
276
|
+
return writer;
|
|
277
|
+
},
|
|
278
|
+
decode(input: BinaryReader | Uint8Array, length?: number): RemoveEventStoreSubscriptions {
|
|
279
|
+
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
280
|
+
const end = length === undefined ? reader.len : reader.pos + length;
|
|
281
|
+
const message = createBaseRemoveEventStoreSubscriptions();
|
|
282
|
+
while (reader.pos < end) {
|
|
283
|
+
const tag = reader.uint32();
|
|
284
|
+
switch (tag >>> 3) {
|
|
285
|
+
case 1:
|
|
286
|
+
message.TargetEventStore = reader.string();
|
|
287
|
+
continue;
|
|
288
|
+
case 2:
|
|
289
|
+
message.SubscriptionIds.push(reader.string());
|
|
290
|
+
continue;
|
|
291
|
+
}
|
|
292
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
293
|
+
break;
|
|
294
|
+
}
|
|
295
|
+
reader.skip(tag & 7);
|
|
296
|
+
}
|
|
297
|
+
return message;
|
|
298
|
+
},
|
|
299
|
+
fromJSON(object: unknown): RemoveEventStoreSubscriptions {
|
|
300
|
+
const value = object as { TargetEventStore?: unknown; SubscriptionIds?: unknown[] };
|
|
301
|
+
return {
|
|
302
|
+
TargetEventStore: typeof value.TargetEventStore === 'string' ? value.TargetEventStore : '',
|
|
303
|
+
SubscriptionIds: Array.isArray(value.SubscriptionIds)
|
|
304
|
+
? value.SubscriptionIds.map(_ => String(_))
|
|
305
|
+
: []
|
|
306
|
+
};
|
|
307
|
+
},
|
|
308
|
+
toJSON(message: RemoveEventStoreSubscriptions): unknown {
|
|
309
|
+
return {
|
|
310
|
+
TargetEventStore: message.TargetEventStore,
|
|
311
|
+
SubscriptionIds: message.SubscriptionIds
|
|
312
|
+
};
|
|
313
|
+
},
|
|
314
|
+
create(base?: DeepPartial<RemoveEventStoreSubscriptions>): RemoveEventStoreSubscriptions {
|
|
315
|
+
return RemoveEventStoreSubscriptionsMessage.fromPartial(base ?? {});
|
|
316
|
+
},
|
|
317
|
+
fromPartial(object: DeepPartial<RemoveEventStoreSubscriptions>): RemoveEventStoreSubscriptions {
|
|
318
|
+
return {
|
|
319
|
+
TargetEventStore: object.TargetEventStore ?? '',
|
|
320
|
+
SubscriptionIds: object.SubscriptionIds?.map(_ => _) ?? []
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
export const EventStoreSubscriptionsDefinition = {
|
|
326
|
+
name: 'EventStoreSubscriptions',
|
|
327
|
+
fullName: 'Cratis.Chronicle.Contracts.Observation.EventStoreSubscriptions.EventStoreSubscriptions',
|
|
328
|
+
methods: {
|
|
329
|
+
add: {
|
|
330
|
+
name: 'Add',
|
|
331
|
+
requestType: AddEventStoreSubscriptionsMessage,
|
|
332
|
+
requestStream: false,
|
|
333
|
+
responseType: EmptyMessage,
|
|
334
|
+
responseStream: false,
|
|
335
|
+
options: {}
|
|
336
|
+
},
|
|
337
|
+
remove: {
|
|
338
|
+
name: 'Remove',
|
|
339
|
+
requestType: RemoveEventStoreSubscriptionsMessage,
|
|
340
|
+
requestStream: false,
|
|
341
|
+
responseType: EmptyMessage,
|
|
342
|
+
responseStream: false,
|
|
343
|
+
options: {}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
} as const;
|
|
347
|
+
|
|
348
|
+
export interface EventStoreSubscriptionsClient<CallOptionsExt = {}> {
|
|
349
|
+
add(request: DeepPartial<AddEventStoreSubscriptions>, options?: CallOptions & CallOptionsExt): Promise<Empty>;
|
|
350
|
+
remove(request: DeepPartial<RemoveEventStoreSubscriptions>, options?: CallOptions & CallOptionsExt): Promise<Empty>;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
export interface EventStoreSubscriptionsServiceImplementation<CallContextExt = {}> {
|
|
354
|
+
add(request: AddEventStoreSubscriptions, context: CallContext & CallContextExt): Promise<DeepPartial<Empty>>;
|
|
355
|
+
remove(request: RemoveEventStoreSubscriptions, context: CallContext & CallContextExt): Promise<DeepPartial<Empty>>;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined;
|
|
359
|
+
type DeepPartial<T> = T extends Builtin ? T
|
|
360
|
+
: T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>
|
|
361
|
+
: T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>
|
|
362
|
+
: T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }
|
|
363
|
+
: Partial<T>;
|
|
364
|
+
|
|
365
|
+
interface MessageFns<T> {
|
|
366
|
+
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
|
367
|
+
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
|
368
|
+
fromJSON(object: unknown): T;
|
|
369
|
+
toJSON(message: T): unknown;
|
|
370
|
+
create(base?: DeepPartial<T>): T;
|
|
371
|
+
fromPartial(object: DeepPartial<T>): T;
|
|
372
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
+
export { EventStoreSubscriptionBuilder } from './EventStoreSubscriptionBuilder';
|
|
5
|
+
export { EventStoreSubscriptionDefinition } from './EventStoreSubscriptionDefinition';
|
|
6
|
+
export { EventStoreSubscriptionId } from './EventStoreSubscriptionId';
|
|
7
|
+
export type { IEventStoreSubscriptionBuilder } from './IEventStoreSubscriptionBuilder';
|
|
8
|
+
export type { IEventStoreSubscriptions } from './IEventStoreSubscriptions';
|
|
9
|
+
export { EventStoreSubscriptions } from './EventStoreSubscriptions';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Cratis. All rights reserved.
|
|
2
2
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
3
|
|
|
4
|
-
import { PropertyAccessor } from '@cratis/fundamentals';
|
|
4
|
+
import { Constructor, PropertyAccessor } from '@cratis/fundamentals';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Defines the builder for building unique constraints.
|
|
@@ -18,10 +18,11 @@ export interface IUniqueConstraintBuilder {
|
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* Constrains on specific properties of an event type.
|
|
21
|
+
* @param eventType - The event type constructor the properties belong to.
|
|
21
22
|
* @param properties - Property accessor expressions for specifying the properties on the event.
|
|
22
23
|
* @returns This builder for fluent chaining.
|
|
23
24
|
*/
|
|
24
|
-
on<TEvent>(...properties: PropertyAccessor<TEvent>[]): IUniqueConstraintBuilder;
|
|
25
|
+
on<TEvent>(eventType: Constructor<TEvent>, ...properties: PropertyAccessor<TEvent>[]): IUniqueConstraintBuilder;
|
|
25
26
|
|
|
26
27
|
/**
|
|
27
28
|
* Ignores casing when comparing property values during constraint evaluation.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Cratis. All rights reserved.
|
|
2
2
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
3
|
|
|
4
|
-
import { PropertyAccessor, PropertyPathResolverProxyHandler } from '@cratis/fundamentals';
|
|
4
|
+
import { Constructor, PropertyAccessor, PropertyPathResolverProxyHandler } from '@cratis/fundamentals';
|
|
5
5
|
import { getEventTypeFor } from '../eventTypeDecorator';
|
|
6
6
|
import { IUniqueConstraintBuilder } from './IUniqueConstraintBuilder';
|
|
7
7
|
|
|
@@ -34,7 +34,6 @@ export interface UniqueConstraintCapture {
|
|
|
34
34
|
*/
|
|
35
35
|
export class UniqueConstraintBuilder implements IUniqueConstraintBuilder {
|
|
36
36
|
private readonly _capture: UniqueConstraintCapture;
|
|
37
|
-
private _currentEventTypeId?: string;
|
|
38
37
|
|
|
39
38
|
constructor(capture: UniqueConstraintCapture) {
|
|
40
39
|
this._capture = capture;
|
|
@@ -47,16 +46,14 @@ export class UniqueConstraintBuilder implements IUniqueConstraintBuilder {
|
|
|
47
46
|
}
|
|
48
47
|
|
|
49
48
|
/** @inheritdoc */
|
|
50
|
-
on<TEvent>(...properties: PropertyAccessor<TEvent>[]): IUniqueConstraintBuilder {
|
|
51
|
-
|
|
52
|
-
return this;
|
|
53
|
-
}
|
|
49
|
+
on<TEvent>(eventType: Constructor<TEvent>, ...properties: PropertyAccessor<TEvent>[]): IUniqueConstraintBuilder {
|
|
50
|
+
const eventTypeId = getEventTypeFor(eventType).id.value;
|
|
54
51
|
const paths = properties.map(p => resolvePropertyPath(p));
|
|
55
|
-
const existing = this._capture.eventDefinitions.find(d => d.eventTypeId ===
|
|
52
|
+
const existing = this._capture.eventDefinitions.find(d => d.eventTypeId === eventTypeId);
|
|
56
53
|
if (existing) {
|
|
57
54
|
existing.properties.push(...paths);
|
|
58
55
|
} else {
|
|
59
|
-
this._capture.eventDefinitions.push({ eventTypeId
|
|
56
|
+
this._capture.eventDefinitions.push({ eventTypeId, properties: paths });
|
|
60
57
|
}
|
|
61
58
|
return this;
|
|
62
59
|
}
|
|
@@ -85,13 +82,4 @@ export class UniqueConstraintBuilder implements IUniqueConstraintBuilder {
|
|
|
85
82
|
this._capture.message = messageProvider();
|
|
86
83
|
return this;
|
|
87
84
|
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Sets the current event type context for subsequent {@link on} calls.
|
|
91
|
-
* @param eventTypeId - The event type identifier string.
|
|
92
|
-
*/
|
|
93
|
-
withEventType(eventTypeId: string): UniqueConstraintBuilder {
|
|
94
|
-
this._currentEventTypeId = eventTypeId;
|
|
95
|
-
return this;
|
|
96
|
-
}
|
|
97
85
|
}
|
package/index.ts
CHANGED
|
@@ -19,6 +19,8 @@ import * as identity from './identity';
|
|
|
19
19
|
import * as auditing from './auditing';
|
|
20
20
|
import * as correlation from './correlation';
|
|
21
21
|
import * as transactions from './transactions';
|
|
22
|
+
import * as eventStoreSubscriptions from './eventStoreSubscriptions';
|
|
23
|
+
import * as compliance from './compliance';
|
|
22
24
|
|
|
23
25
|
export { ChronicleClient } from './ChronicleClient';
|
|
24
26
|
export type { IChronicleClient } from './IChronicleClient';
|
|
@@ -49,6 +51,8 @@ export * from './identity';
|
|
|
49
51
|
export * from './auditing';
|
|
50
52
|
export * from './correlation';
|
|
51
53
|
export * from './transactions';
|
|
54
|
+
export * from './eventStoreSubscriptions';
|
|
55
|
+
export * from './compliance';
|
|
52
56
|
|
|
53
57
|
export {
|
|
54
58
|
events,
|
|
@@ -69,4 +73,6 @@ export {
|
|
|
69
73
|
auditing,
|
|
70
74
|
correlation,
|
|
71
75
|
transactions,
|
|
76
|
+
eventStoreSubscriptions,
|
|
77
|
+
compliance,
|
|
72
78
|
};
|