@kurrent/kurrentdb-client 1.0.0-alpha.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/README.md +201 -0
- package/dist/Client/ServerFeatures.d.ts +17 -0
- package/dist/Client/ServerFeatures.js +56 -0
- package/dist/Client/ServerFeatures.js.map +1 -0
- package/dist/Client/discovery.d.ts +15 -0
- package/dist/Client/discovery.js +135 -0
- package/dist/Client/discovery.js.map +1 -0
- package/dist/Client/http.d.ts +19 -0
- package/dist/Client/http.js +97 -0
- package/dist/Client/http.js.map +1 -0
- package/dist/Client/index.d.ts +119 -0
- package/dist/Client/index.js +390 -0
- package/dist/Client/index.js.map +1 -0
- package/dist/Client/parseConnectionString.d.ts +23 -0
- package/dist/Client/parseConnectionString.js +238 -0
- package/dist/Client/parseConnectionString.js.map +1 -0
- package/dist/bridge/index.d.ts +66 -0
- package/dist/bridge/index.js +83 -0
- package/dist/bridge/index.js.map +1 -0
- package/dist/bridge/load.d.ts +1 -0
- package/dist/bridge/load.js +20 -0
- package/dist/bridge/load.js.map +1 -0
- package/dist/constants.d.ts +58 -0
- package/dist/constants.js +75 -0
- package/dist/constants.js.map +1 -0
- package/dist/events/binaryEvent.d.ts +16 -0
- package/dist/events/binaryEvent.js +14 -0
- package/dist/events/binaryEvent.js.map +1 -0
- package/dist/events/convertMetadata.d.ts +1 -0
- package/dist/events/convertMetadata.js +11 -0
- package/dist/events/convertMetadata.js.map +1 -0
- package/dist/events/index.d.ts +2 -0
- package/dist/events/index.js +19 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/jsonEvent.d.ts +8 -0
- package/dist/events/jsonEvent.js +14 -0
- package/dist/events/jsonEvent.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/persistentSubscription/createPersistentSubscriptionToAll.d.ts +23 -0
- package/dist/persistentSubscription/createPersistentSubscriptionToAll.js +90 -0
- package/dist/persistentSubscription/createPersistentSubscriptionToAll.js.map +1 -0
- package/dist/persistentSubscription/createPersistentSubscriptionToStream.d.ts +17 -0
- package/dist/persistentSubscription/createPersistentSubscriptionToStream.js +49 -0
- package/dist/persistentSubscription/createPersistentSubscriptionToStream.js.map +1 -0
- package/dist/persistentSubscription/deletePersistentSubscriptionToAll.d.ts +13 -0
- package/dist/persistentSubscription/deletePersistentSubscriptionToAll.js +30 -0
- package/dist/persistentSubscription/deletePersistentSubscriptionToAll.js.map +1 -0
- package/dist/persistentSubscription/deletePersistentSubscriptionToStream.d.ts +13 -0
- package/dist/persistentSubscription/deletePersistentSubscriptionToStream.js +28 -0
- package/dist/persistentSubscription/deletePersistentSubscriptionToStream.js.map +1 -0
- package/dist/persistentSubscription/getPersistentSubscriptionToAllInfo.d.ts +13 -0
- package/dist/persistentSubscription/getPersistentSubscriptionToAllInfo.js +31 -0
- package/dist/persistentSubscription/getPersistentSubscriptionToAllInfo.js.map +1 -0
- package/dist/persistentSubscription/getPersistentSubscriptionToStreamInfo.d.ts +14 -0
- package/dist/persistentSubscription/getPersistentSubscriptionToStreamInfo.js +49 -0
- package/dist/persistentSubscription/getPersistentSubscriptionToStreamInfo.js.map +1 -0
- package/dist/persistentSubscription/index.d.ts +16 -0
- package/dist/persistentSubscription/index.js +33 -0
- package/dist/persistentSubscription/index.js.map +1 -0
- package/dist/persistentSubscription/listAllPersistentSubscriptions.d.ts +13 -0
- package/dist/persistentSubscription/listAllPersistentSubscriptions.js +42 -0
- package/dist/persistentSubscription/listAllPersistentSubscriptions.js.map +1 -0
- package/dist/persistentSubscription/listPersistentSubscriptionsToAll.d.ts +13 -0
- package/dist/persistentSubscription/listPersistentSubscriptionsToAll.js +33 -0
- package/dist/persistentSubscription/listPersistentSubscriptionsToAll.js.map +1 -0
- package/dist/persistentSubscription/listPersistentSubscriptionsToStream.d.ts +14 -0
- package/dist/persistentSubscription/listPersistentSubscriptionsToStream.js +51 -0
- package/dist/persistentSubscription/listPersistentSubscriptionsToStream.js.map +1 -0
- package/dist/persistentSubscription/replayParkedMessagesToAll.d.ts +18 -0
- package/dist/persistentSubscription/replayParkedMessagesToAll.js +36 -0
- package/dist/persistentSubscription/replayParkedMessagesToAll.js.map +1 -0
- package/dist/persistentSubscription/replayParkedMessagesToStream.d.ts +19 -0
- package/dist/persistentSubscription/replayParkedMessagesToStream.js +57 -0
- package/dist/persistentSubscription/replayParkedMessagesToStream.js.map +1 -0
- package/dist/persistentSubscription/restartPersistentSubscriptionSubsystem.d.ts +11 -0
- package/dist/persistentSubscription/restartPersistentSubscriptionSubsystem.js +30 -0
- package/dist/persistentSubscription/restartPersistentSubscriptionSubsystem.js.map +1 -0
- package/dist/persistentSubscription/subscribeToPersistentSubscriptionToAll.d.ts +20 -0
- package/dist/persistentSubscription/subscribeToPersistentSubscriptionToAll.js +38 -0
- package/dist/persistentSubscription/subscribeToPersistentSubscriptionToAll.js.map +1 -0
- package/dist/persistentSubscription/subscribeToPersistentSubscriptionToStream.d.ts +20 -0
- package/dist/persistentSubscription/subscribeToPersistentSubscriptionToStream.js +37 -0
- package/dist/persistentSubscription/subscribeToPersistentSubscriptionToStream.js.map +1 -0
- package/dist/persistentSubscription/updatePersistentSubscriptionToAll.d.ts +15 -0
- package/dist/persistentSubscription/updatePersistentSubscriptionToAll.js +53 -0
- package/dist/persistentSubscription/updatePersistentSubscriptionToAll.js.map +1 -0
- package/dist/persistentSubscription/updatePersistentSubscriptionToStream.d.ts +15 -0
- package/dist/persistentSubscription/updatePersistentSubscriptionToStream.js +49 -0
- package/dist/persistentSubscription/updatePersistentSubscriptionToStream.js.map +1 -0
- package/dist/persistentSubscription/utils/PersistentSubscriptionImpl.d.ts +18 -0
- package/dist/persistentSubscription/utils/PersistentSubscriptionImpl.js +112 -0
- package/dist/persistentSubscription/utils/PersistentSubscriptionImpl.js.map +1 -0
- package/dist/persistentSubscription/utils/mapPersistentSubscriptionInfo.d.ts +146 -0
- package/dist/persistentSubscription/utils/mapPersistentSubscriptionInfo.js +204 -0
- package/dist/persistentSubscription/utils/mapPersistentSubscriptionInfo.js.map +1 -0
- package/dist/persistentSubscription/utils/persistentSubscriptionSettings.d.ts +90 -0
- package/dist/persistentSubscription/utils/persistentSubscriptionSettings.js +39 -0
- package/dist/persistentSubscription/utils/persistentSubscriptionSettings.js.map +1 -0
- package/dist/persistentSubscription/utils/settingsToGRPC.d.ts +5 -0
- package/dist/persistentSubscription/utils/settingsToGRPC.js +49 -0
- package/dist/persistentSubscription/utils/settingsToGRPC.js.map +1 -0
- package/dist/projections/createProjection.d.ts +24 -0
- package/dist/projections/createProjection.js +48 -0
- package/dist/projections/createProjection.js.map +1 -0
- package/dist/projections/deleteProjection.d.ts +28 -0
- package/dist/projections/deleteProjection.js +33 -0
- package/dist/projections/deleteProjection.js.map +1 -0
- package/dist/projections/disableProjection.d.ts +19 -0
- package/dist/projections/disableProjection.js +34 -0
- package/dist/projections/disableProjection.js.map +1 -0
- package/dist/projections/enableProjection.d.ts +12 -0
- package/dist/projections/enableProjection.js +25 -0
- package/dist/projections/enableProjection.js.map +1 -0
- package/dist/projections/getProjectionResult.d.ts +17 -0
- package/dist/projections/getProjectionResult.js +29 -0
- package/dist/projections/getProjectionResult.js.map +1 -0
- package/dist/projections/getProjectionState.d.ts +17 -0
- package/dist/projections/getProjectionState.js +29 -0
- package/dist/projections/getProjectionState.js.map +1 -0
- package/dist/projections/getProjectionStatus.d.ts +12 -0
- package/dist/projections/getProjectionStatus.js +36 -0
- package/dist/projections/getProjectionStatus.js.map +1 -0
- package/dist/projections/index.d.ts +11 -0
- package/dist/projections/index.js +28 -0
- package/dist/projections/index.js.map +1 -0
- package/dist/projections/listProjections.d.ts +12 -0
- package/dist/projections/listProjections.js +36 -0
- package/dist/projections/listProjections.js.map +1 -0
- package/dist/projections/resetProjection.d.ts +13 -0
- package/dist/projections/resetProjection.js +25 -0
- package/dist/projections/resetProjection.js.map +1 -0
- package/dist/projections/restartSubsystem.d.ts +11 -0
- package/dist/projections/restartSubsystem.js +21 -0
- package/dist/projections/restartSubsystem.js.map +1 -0
- package/dist/projections/updateProjection.d.ts +20 -0
- package/dist/projections/updateProjection.js +34 -0
- package/dist/projections/updateProjection.js.map +1 -0
- package/dist/projections/utils/mapGrpcProjectionDetails.d.ts +3 -0
- package/dist/projections/utils/mapGrpcProjectionDetails.js +31 -0
- package/dist/projections/utils/mapGrpcProjectionDetails.js.map +1 -0
- package/dist/streams/appendToStream/append.d.ts +5 -0
- package/dist/streams/appendToStream/append.js +131 -0
- package/dist/streams/appendToStream/append.js.map +1 -0
- package/dist/streams/appendToStream/batchAppend.d.ts +5 -0
- package/dist/streams/appendToStream/batchAppend.js +145 -0
- package/dist/streams/appendToStream/batchAppend.js.map +1 -0
- package/dist/streams/appendToStream/index.d.ts +24 -0
- package/dist/streams/appendToStream/index.js +24 -0
- package/dist/streams/appendToStream/index.js.map +1 -0
- package/dist/streams/appendToStream/unpackError.d.ts +5 -0
- package/dist/streams/appendToStream/unpackError.js +54 -0
- package/dist/streams/appendToStream/unpackError.js.map +1 -0
- package/dist/streams/deleteStream.d.ts +18 -0
- package/dist/streams/deleteStream.js +51 -0
- package/dist/streams/deleteStream.js.map +1 -0
- package/dist/streams/getStreamMetadata.d.ts +27 -0
- package/dist/streams/getStreamMetadata.js +40 -0
- package/dist/streams/getStreamMetadata.js.map +1 -0
- package/dist/streams/index.d.ts +9 -0
- package/dist/streams/index.js +27 -0
- package/dist/streams/index.js.map +1 -0
- package/dist/streams/readAll.d.ts +35 -0
- package/dist/streams/readAll.js +37 -0
- package/dist/streams/readAll.js.map +1 -0
- package/dist/streams/readStream.d.ts +35 -0
- package/dist/streams/readStream.js +58 -0
- package/dist/streams/readStream.js.map +1 -0
- package/dist/streams/setStreamMetadata.d.ts +20 -0
- package/dist/streams/setStreamMetadata.js +20 -0
- package/dist/streams/setStreamMetadata.js.map +1 -0
- package/dist/streams/subscribeToAll.d.ts +30 -0
- package/dist/streams/subscribeToAll.js +89 -0
- package/dist/streams/subscribeToAll.js.map +1 -0
- package/dist/streams/subscribeToStream.d.ts +27 -0
- package/dist/streams/subscribeToStream.js +52 -0
- package/dist/streams/subscribeToStream.js.map +1 -0
- package/dist/streams/tombstoneStream.d.ts +18 -0
- package/dist/streams/tombstoneStream.js +51 -0
- package/dist/streams/tombstoneStream.js.map +1 -0
- package/dist/streams/utils/ReadStream.d.ts +14 -0
- package/dist/streams/utils/ReadStream.js +61 -0
- package/dist/streams/utils/ReadStream.js.map +1 -0
- package/dist/streams/utils/Subscription.d.ts +16 -0
- package/dist/streams/utils/Subscription.js +71 -0
- package/dist/streams/utils/Subscription.js.map +1 -0
- package/dist/streams/utils/streamMetadata.d.ts +53 -0
- package/dist/streams/utils/streamMetadata.js +77 -0
- package/dist/streams/utils/streamMetadata.js.map +1 -0
- package/dist/streams/utils/systemStreams.d.ts +20 -0
- package/dist/streams/utils/systemStreams.js +28 -0
- package/dist/streams/utils/systemStreams.js.map +1 -0
- package/dist/types/events.d.ts +157 -0
- package/dist/types/events.js +3 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/index.d.ts +348 -0
- package/dist/types/index.js +22 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/CommandError.d.ts +174 -0
- package/dist/utils/CommandError.js +403 -0
- package/dist/utils/CommandError.js.map +1 -0
- package/dist/utils/backpressuredWrite.d.ts +2 -0
- package/dist/utils/backpressuredWrite.js +50 -0
- package/dist/utils/backpressuredWrite.js.map +1 -0
- package/dist/utils/convertBridgeError.d.ts +1 -0
- package/dist/utils/convertBridgeError.js +41 -0
- package/dist/utils/convertBridgeError.js.map +1 -0
- package/dist/utils/convertGrpcEvent.d.ts +10 -0
- package/dist/utils/convertGrpcEvent.js +135 -0
- package/dist/utils/convertGrpcEvent.js.map +1 -0
- package/dist/utils/convertRustEvent.d.ts +4 -0
- package/dist/utils/convertRustEvent.js +85 -0
- package/dist/utils/convertRustEvent.js.map +1 -0
- package/dist/utils/debug.d.ts +7 -0
- package/dist/utils/debug.js +30 -0
- package/dist/utils/debug.js.map +1 -0
- package/dist/utils/filter.d.ts +44 -0
- package/dist/utils/filter.js +29 -0
- package/dist/utils/filter.js.map +1 -0
- package/dist/utils/grpcStreamIdentifier.d.ts +2 -0
- package/dist/utils/grpcStreamIdentifier.js +11 -0
- package/dist/utils/grpcStreamIdentifier.js.map +1 -0
- package/dist/utils/grpcUUID.d.ts +4 -0
- package/dist/utils/grpcUUID.js +29 -0
- package/dist/utils/grpcUUID.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.js +26 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/isClientCancellationError.d.ts +1 -0
- package/dist/utils/isClientCancellationError.js +13 -0
- package/dist/utils/isClientCancellationError.js.map +1 -0
- package/dist/utils/utilityTypes.d.ts +2 -0
- package/dist/utils/utilityTypes.js +3 -0
- package/dist/utils/utilityTypes.js.map +1 -0
- package/generated/cluster_grpc_pb.d.ts +211 -0
- package/generated/cluster_grpc_pb.js +247 -0
- package/generated/cluster_pb.d.ts +546 -0
- package/generated/cluster_pb.js +4357 -0
- package/generated/code_grpc_pb.js +1 -0
- package/generated/code_pb.d.ts +27 -0
- package/generated/code_pb.js +48 -0
- package/generated/gossip_grpc_pb.d.ts +42 -0
- package/generated/gossip_grpc_pb.js +45 -0
- package/generated/gossip_pb.d.ts +111 -0
- package/generated/gossip_pb.js +727 -0
- package/generated/monitoring_grpc_pb.d.ts +39 -0
- package/generated/monitoring_grpc_pb.js +44 -0
- package/generated/monitoring_pb.d.ts +52 -0
- package/generated/monitoring_pb.js +361 -0
- package/generated/operations_grpc_pb.d.ts +144 -0
- package/generated/operations_grpc_pb.js +144 -0
- package/generated/operations_pb.d.ts +151 -0
- package/generated/operations_pb.js +1050 -0
- package/generated/persistent_grpc_pb.d.ts +160 -0
- package/generated/persistent_grpc_pb.js +265 -0
- package/generated/persistent_pb.d.ts +1702 -0
- package/generated/persistent_pb.js +12340 -0
- package/generated/projections_grpc_pb.d.ts +194 -0
- package/generated/projections_grpc_pb.js +332 -0
- package/generated/projections_pb.d.ts +821 -0
- package/generated/projections_pb.js +6065 -0
- package/generated/serverfeatures_grpc_pb.d.ts +42 -0
- package/generated/serverfeatures_grpc_pb.js +45 -0
- package/generated/serverfeatures_pb.d.ts +61 -0
- package/generated/serverfeatures_pb.js +476 -0
- package/generated/shared_grpc_pb.js +1 -0
- package/generated/shared_pb.d.ts +335 -0
- package/generated/shared_pb.js +2374 -0
- package/generated/status_grpc_pb.js +1 -0
- package/generated/status_pb.d.ts +38 -0
- package/generated/status_pb.js +261 -0
- package/generated/streams_grpc_pb.d.ts +112 -0
- package/generated/streams_grpc_pb.js +180 -0
- package/generated/streams_pb.d.ts +1660 -0
- package/generated/streams_pb.js +11556 -0
- package/generated/users_grpc_pb.d.ts +158 -0
- package/generated/users_grpc_pb.js +275 -0
- package/generated/users_pb.d.ts +601 -0
- package/generated/users_pb.js +4451 -0
- package/package.json +65 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Transform, TransformCallback, TransformOptions } from "stream";
|
|
2
|
+
import type { ClientDuplexStream } from "@grpc/grpc-js";
|
|
3
|
+
import { ReadReq, ReadResp } from "../../../generated/persistent_pb";
|
|
4
|
+
import { ConvertGrpcEvent } from "../../utils";
|
|
5
|
+
import type { PersistentAction, PersistentSubscriptionBase, ResolvedEvent } from "../../types";
|
|
6
|
+
type CreateGRPCStream = () => Promise<ClientDuplexStream<ReadReq, ReadResp>>;
|
|
7
|
+
export declare class PersistentSubscriptionImpl<E> extends Transform implements PersistentSubscriptionBase<E> {
|
|
8
|
+
#private;
|
|
9
|
+
protected convertGrpcEvent: ConvertGrpcEvent<ReadResp.ReadEvent, E>;
|
|
10
|
+
id?: string;
|
|
11
|
+
constructor(createGRPCStream: CreateGRPCStream, convertGrpcEvent: ConvertGrpcEvent<ReadResp.ReadEvent, E>, options: TransformOptions);
|
|
12
|
+
private initialize;
|
|
13
|
+
_transform(resp: ReadResp, _encoding: string, next: TransformCallback): void;
|
|
14
|
+
ack(...events: ResolvedEvent[]): Promise<void>;
|
|
15
|
+
nack(action: PersistentAction, reason: string, ...events: ResolvedEvent[]): Promise<void>;
|
|
16
|
+
unsubscribe(): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PersistentSubscriptionImpl = void 0;
|
|
4
|
+
const stream_1 = require("stream");
|
|
5
|
+
const persistent_pb_1 = require("../../../generated/persistent_pb");
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
class PersistentSubscriptionImpl extends stream_1.Transform {
|
|
8
|
+
#grpcStream;
|
|
9
|
+
convertGrpcEvent;
|
|
10
|
+
id;
|
|
11
|
+
constructor(createGRPCStream, convertGrpcEvent, options) {
|
|
12
|
+
super({ ...options, objectMode: true });
|
|
13
|
+
this.#grpcStream = createGRPCStream();
|
|
14
|
+
this.convertGrpcEvent = convertGrpcEvent;
|
|
15
|
+
this.initialize();
|
|
16
|
+
}
|
|
17
|
+
initialize = async () => {
|
|
18
|
+
try {
|
|
19
|
+
(await this.#grpcStream)
|
|
20
|
+
.on("error", (err) => {
|
|
21
|
+
if ((0, utils_1.isClientCancellationError)(err))
|
|
22
|
+
return;
|
|
23
|
+
const error = (0, utils_1.convertToCommandError)(err);
|
|
24
|
+
this.emit("error", error);
|
|
25
|
+
})
|
|
26
|
+
.pipe(this);
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
this.emit("error", error);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
_transform(resp, _encoding, next) {
|
|
33
|
+
if (resp.hasSubscriptionConfirmation()) {
|
|
34
|
+
this.id = resp.getSubscriptionConfirmation()?.getSubscriptionId();
|
|
35
|
+
this.emit("confirmation");
|
|
36
|
+
}
|
|
37
|
+
if (resp.hasEvent()) {
|
|
38
|
+
const resolved = this.convertGrpcEvent(resp.getEvent());
|
|
39
|
+
next(null, resolved);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
next();
|
|
43
|
+
}
|
|
44
|
+
async ack(...events) {
|
|
45
|
+
try {
|
|
46
|
+
const req = new persistent_pb_1.ReadReq();
|
|
47
|
+
const ack = new persistent_pb_1.ReadReq.Ack();
|
|
48
|
+
for (const event of events) {
|
|
49
|
+
const id = event.link?.id ?? event.event?.id;
|
|
50
|
+
// A resolved event will always have either link or event (or both), so this should to be unreachable
|
|
51
|
+
if (!id)
|
|
52
|
+
throw new Error("Attempted to ack an event with no id");
|
|
53
|
+
const uuid = (0, utils_1.createUUID)(id);
|
|
54
|
+
ack.addIds(uuid);
|
|
55
|
+
}
|
|
56
|
+
req.setAck(ack);
|
|
57
|
+
const stream = await this.#grpcStream;
|
|
58
|
+
await (0, utils_1.backpressuredWrite)(stream, req);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
throw (0, utils_1.convertToCommandError)(error);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async nack(action, reason, ...events) {
|
|
65
|
+
try {
|
|
66
|
+
const req = new persistent_pb_1.ReadReq();
|
|
67
|
+
const nack = new persistent_pb_1.ReadReq.Nack();
|
|
68
|
+
switch (action) {
|
|
69
|
+
case "park":
|
|
70
|
+
nack.setAction(persistent_pb_1.ReadReq.Nack.Action.PARK);
|
|
71
|
+
break;
|
|
72
|
+
case "retry":
|
|
73
|
+
nack.setAction(persistent_pb_1.ReadReq.Nack.Action.RETRY);
|
|
74
|
+
break;
|
|
75
|
+
case "skip":
|
|
76
|
+
nack.setAction(persistent_pb_1.ReadReq.Nack.Action.SKIP);
|
|
77
|
+
break;
|
|
78
|
+
case "stop":
|
|
79
|
+
nack.setAction(persistent_pb_1.ReadReq.Nack.Action.STOP);
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
for (const event of events) {
|
|
83
|
+
const id = event.link?.id ?? event.event?.id;
|
|
84
|
+
// A resolved event will always have either link or event (or both), so this should to be unreachable
|
|
85
|
+
if (!id)
|
|
86
|
+
throw new Error("Attempted to ack an event with no id");
|
|
87
|
+
const uuid = (0, utils_1.createUUID)(id);
|
|
88
|
+
nack.addIds(uuid);
|
|
89
|
+
}
|
|
90
|
+
nack.setReason(reason);
|
|
91
|
+
req.setNack(nack);
|
|
92
|
+
const stream = await this.#grpcStream;
|
|
93
|
+
await (0, utils_1.backpressuredWrite)(stream, req);
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
throw (0, utils_1.convertToCommandError)(error);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async unsubscribe() {
|
|
100
|
+
const stream = await this.#grpcStream;
|
|
101
|
+
return new Promise((resolve) => {
|
|
102
|
+
// https://github.com/grpc/grpc-node/issues/1464
|
|
103
|
+
// https://github.com/grpc/grpc-node/issues/1652
|
|
104
|
+
setImmediate(() => {
|
|
105
|
+
stream.cancel();
|
|
106
|
+
resolve();
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.PersistentSubscriptionImpl = PersistentSubscriptionImpl;
|
|
112
|
+
//# sourceMappingURL=PersistentSubscriptionImpl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PersistentSubscriptionImpl.js","sourceRoot":"","sources":["../../../src/persistentSubscription/utils/PersistentSubscriptionImpl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import type { SubscriptionInfo } from "../../../generated/persistent_pb";
|
|
2
|
+
import type { Position } from "../../types";
|
|
3
|
+
import type { PersistentSubscriptionToStreamSettings, PersistentSubscriptionToAllSettings } from "./persistentSubscriptionSettings";
|
|
4
|
+
export type ExtraStatisticsKey = "mean" | "median" | "fastest" | "quintile 1" | "quintile 2" | "quintile 3" | "quintile 4" | "quintile 5" | "90%" | "95%" | "99%" | "99.5%" | "99.9%" | "highest";
|
|
5
|
+
export interface PersistentSubscriptionConnectionInfo {
|
|
6
|
+
/** Origin of this connection. */
|
|
7
|
+
from: string;
|
|
8
|
+
/** Connection username. */
|
|
9
|
+
username: string;
|
|
10
|
+
/** The name of the connection. */
|
|
11
|
+
connectionName: string;
|
|
12
|
+
/** Average events per second on this connection. */
|
|
13
|
+
averageItemsPerSecond: number;
|
|
14
|
+
/** Total items on this connection. */
|
|
15
|
+
totalItems: bigint;
|
|
16
|
+
/** Number of items seen since last measurement on this connection (used as the basis for `averageItemsPerSecond`). */
|
|
17
|
+
countSinceLastMeasurement: bigint;
|
|
18
|
+
/** Number of available slots. */
|
|
19
|
+
availableSlots: number;
|
|
20
|
+
/** Number of in flight messages on this connection. */
|
|
21
|
+
inFlightMessages: number;
|
|
22
|
+
/** Timing measurements for the connection. Can be enabled with the `extraStatistics` setting. */
|
|
23
|
+
extraStatistics?: Map<ExtraStatisticsKey, bigint>;
|
|
24
|
+
}
|
|
25
|
+
interface PersistentSubscriptionStatsBase {
|
|
26
|
+
/** Average number of events per second. */
|
|
27
|
+
averagePerSecond: number;
|
|
28
|
+
/** Total number of events processed by subscription. */
|
|
29
|
+
totalItems: bigint;
|
|
30
|
+
/** Number of events seen since last measurement on this connection (used as the basis for `averagePerSecond`). */
|
|
31
|
+
countSinceLastMeasurement: bigint;
|
|
32
|
+
/** Current in flight messages across all connections. */
|
|
33
|
+
totalInFlightMessages: number;
|
|
34
|
+
/** Number of events in the read buffer. */
|
|
35
|
+
readBufferCount: number;
|
|
36
|
+
/** Number of events in the live buffer. */
|
|
37
|
+
liveBufferCount: bigint;
|
|
38
|
+
/** Number of events in the retry buffer. */
|
|
39
|
+
retryBufferCount: number;
|
|
40
|
+
/** The current number of parked messages. */
|
|
41
|
+
parkedMessageCount: bigint;
|
|
42
|
+
/** Current number of outstanding messages. */
|
|
43
|
+
outstandingMessagesCount: number;
|
|
44
|
+
}
|
|
45
|
+
export interface PersistentSubscriptionToStreamStats extends PersistentSubscriptionStatsBase {
|
|
46
|
+
/** The revision of the last checkpoint. */
|
|
47
|
+
lastCheckpointedEventRevision?: bigint;
|
|
48
|
+
/** The revision of the last known event. */
|
|
49
|
+
lastKnownEventRevision?: bigint;
|
|
50
|
+
}
|
|
51
|
+
export interface PersistentSubscriptionToAllStats extends PersistentSubscriptionStatsBase {
|
|
52
|
+
/** The position of the last checkpoint. */
|
|
53
|
+
lastCheckpointedEventPosition?: Position;
|
|
54
|
+
/** The position of the last known event. */
|
|
55
|
+
lastKnownEventPosition?: Position;
|
|
56
|
+
}
|
|
57
|
+
export interface PersistentSubscriptionToStreamInfo {
|
|
58
|
+
/** The source of events for the subscription. */
|
|
59
|
+
eventSource: string;
|
|
60
|
+
/** The group name given on creation. */
|
|
61
|
+
groupName: string;
|
|
62
|
+
/** The current status of the subscription. */
|
|
63
|
+
status: string;
|
|
64
|
+
/** The settings used to create the persistent subscription. */
|
|
65
|
+
settings: PersistentSubscriptionToStreamSettings;
|
|
66
|
+
/** The settings used to create the persistent subscription. */
|
|
67
|
+
stats: PersistentSubscriptionToStreamStats;
|
|
68
|
+
/** Active connections to the subscription. */
|
|
69
|
+
connections: PersistentSubscriptionConnectionInfo[];
|
|
70
|
+
}
|
|
71
|
+
export interface PersistentSubscriptionToAllInfo {
|
|
72
|
+
/** The source of events for the subscription. */
|
|
73
|
+
eventSource: "$all";
|
|
74
|
+
/** The group name given on creation. */
|
|
75
|
+
groupName: string;
|
|
76
|
+
/** The current status of the subscription. */
|
|
77
|
+
status: string;
|
|
78
|
+
/** The settings used to create the persistent subscription. */
|
|
79
|
+
settings: PersistentSubscriptionToAllSettings;
|
|
80
|
+
/** The settings used to create the persistent subscription. */
|
|
81
|
+
stats: PersistentSubscriptionToAllStats;
|
|
82
|
+
/** Active connections to the subscription. */
|
|
83
|
+
connections: PersistentSubscriptionConnectionInfo[];
|
|
84
|
+
}
|
|
85
|
+
export type PersistentSubscriptionToEitherInfo = PersistentSubscriptionToStreamInfo | PersistentSubscriptionToAllInfo;
|
|
86
|
+
export declare const isPersistentSubscriptionToAllInfo: (info: PersistentSubscriptionToEitherInfo) => info is PersistentSubscriptionToAllInfo;
|
|
87
|
+
export declare const isPersistentSubscriptionToStreamInfo: (info: PersistentSubscriptionToEitherInfo) => info is PersistentSubscriptionToStreamInfo;
|
|
88
|
+
export declare const mapPersistentSubscriptionToEitherInfo: (response: SubscriptionInfo) => PersistentSubscriptionToEitherInfo;
|
|
89
|
+
export declare const mapPersistentSubscriptionToStreamInfo: (response: SubscriptionInfo) => PersistentSubscriptionToStreamInfo;
|
|
90
|
+
export declare const mapPersistentSubscriptionToAllInfo: (response: SubscriptionInfo) => PersistentSubscriptionToAllInfo;
|
|
91
|
+
export interface HTTPSubscriptionInfo {
|
|
92
|
+
links: Array<{
|
|
93
|
+
href: string;
|
|
94
|
+
rel: string;
|
|
95
|
+
}>;
|
|
96
|
+
config: HTTPConfig;
|
|
97
|
+
eventStreamId: string;
|
|
98
|
+
groupName: string;
|
|
99
|
+
status: string;
|
|
100
|
+
averageItemsPerSecond: number;
|
|
101
|
+
parkedMessageUri: string;
|
|
102
|
+
parkedMessageCount?: number;
|
|
103
|
+
getMessagesUri: string;
|
|
104
|
+
totalItemsProcessed: number;
|
|
105
|
+
countSinceLastMeasurement: number;
|
|
106
|
+
lastProcessedEventNumber: number;
|
|
107
|
+
lastKnownEventNumber: number;
|
|
108
|
+
readBufferCount: number;
|
|
109
|
+
liveBufferCount: number;
|
|
110
|
+
retryBufferCount: number;
|
|
111
|
+
totalInFlightMessages: number;
|
|
112
|
+
outstandingMessagesCount: number;
|
|
113
|
+
connections: HTTPConnectionInfo[];
|
|
114
|
+
}
|
|
115
|
+
interface HTTPConfig {
|
|
116
|
+
resolveLinktos: boolean;
|
|
117
|
+
startFrom: number;
|
|
118
|
+
messageTimeoutMilliseconds: number;
|
|
119
|
+
extraStatistics: boolean;
|
|
120
|
+
maxRetryCount: number;
|
|
121
|
+
liveBufferSize: number;
|
|
122
|
+
bufferSize: number;
|
|
123
|
+
readBatchSize: number;
|
|
124
|
+
preferRoundRobin: boolean;
|
|
125
|
+
checkPointAfterMilliseconds: number;
|
|
126
|
+
minCheckPointCount: number;
|
|
127
|
+
maxCheckPointCount: number;
|
|
128
|
+
maxSubscriberCount: number;
|
|
129
|
+
namedConsumerStrategy: string;
|
|
130
|
+
}
|
|
131
|
+
interface HTTPConnectionInfo {
|
|
132
|
+
from: string;
|
|
133
|
+
username: string;
|
|
134
|
+
averageItemsPerSecond: number;
|
|
135
|
+
totalItemsProcessed: number;
|
|
136
|
+
countSinceLastMeasurement: number;
|
|
137
|
+
extraStatistics: Array<{
|
|
138
|
+
key: string;
|
|
139
|
+
value: number;
|
|
140
|
+
}>;
|
|
141
|
+
availableSlots: number;
|
|
142
|
+
inFlightMessages: number;
|
|
143
|
+
connectionName: string;
|
|
144
|
+
}
|
|
145
|
+
export declare const mapHTTPPersistentSubscriptionInfo: (response: HTTPSubscriptionInfo) => PersistentSubscriptionToStreamInfo;
|
|
146
|
+
export {};
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapHTTPPersistentSubscriptionInfo = exports.mapPersistentSubscriptionToAllInfo = exports.mapPersistentSubscriptionToStreamInfo = exports.mapPersistentSubscriptionToEitherInfo = exports.isPersistentSubscriptionToStreamInfo = exports.isPersistentSubscriptionToAllInfo = void 0;
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
5
|
+
const isPersistentSubscriptionToAllInfo = (info) => info.eventSource === "$all";
|
|
6
|
+
exports.isPersistentSubscriptionToAllInfo = isPersistentSubscriptionToAllInfo;
|
|
7
|
+
const isPersistentSubscriptionToStreamInfo = (info) => info.eventSource !== "$all";
|
|
8
|
+
exports.isPersistentSubscriptionToStreamInfo = isPersistentSubscriptionToStreamInfo;
|
|
9
|
+
const mapPersistentSubscriptionToEitherInfo = (response) => {
|
|
10
|
+
if (response.getEventSource() === "$all") {
|
|
11
|
+
return (0, exports.mapPersistentSubscriptionToAllInfo)(response);
|
|
12
|
+
}
|
|
13
|
+
return (0, exports.mapPersistentSubscriptionToStreamInfo)(response);
|
|
14
|
+
};
|
|
15
|
+
exports.mapPersistentSubscriptionToEitherInfo = mapPersistentSubscriptionToEitherInfo;
|
|
16
|
+
const mapPersistentSubscriptionToStreamInfo = (response) => ({
|
|
17
|
+
eventSource: response.getEventSource(),
|
|
18
|
+
groupName: response.getGroupName(),
|
|
19
|
+
status: response.getStatus(),
|
|
20
|
+
settings: mapSettings(response),
|
|
21
|
+
connections: response.getConnectionsList().map(mapConnection),
|
|
22
|
+
stats: mapStats(response),
|
|
23
|
+
});
|
|
24
|
+
exports.mapPersistentSubscriptionToStreamInfo = mapPersistentSubscriptionToStreamInfo;
|
|
25
|
+
const mapPersistentSubscriptionToAllInfo = (response) => ({
|
|
26
|
+
eventSource: response.getEventSource(),
|
|
27
|
+
groupName: response.getGroupName(),
|
|
28
|
+
status: response.getStatus(),
|
|
29
|
+
settings: mapToAllSettings(response),
|
|
30
|
+
connections: response.getConnectionsList().map(mapConnection),
|
|
31
|
+
stats: mapToAllStats(response),
|
|
32
|
+
});
|
|
33
|
+
exports.mapPersistentSubscriptionToAllInfo = mapPersistentSubscriptionToAllInfo;
|
|
34
|
+
const stringToRevision = (str) => {
|
|
35
|
+
if (!str.length)
|
|
36
|
+
return undefined;
|
|
37
|
+
return BigInt(str);
|
|
38
|
+
};
|
|
39
|
+
const stringToStartFromRevision = (startFrom) => {
|
|
40
|
+
switch (startFrom) {
|
|
41
|
+
case "0":
|
|
42
|
+
return constants_1.START;
|
|
43
|
+
case "-1":
|
|
44
|
+
return constants_1.END;
|
|
45
|
+
default:
|
|
46
|
+
return stringToRevision(startFrom);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const positionRegex = /^C:(?<commit>[0-9]*)\/P:(?<prepare>[0-9]*)$/;
|
|
50
|
+
const stringToPosition = (str) => {
|
|
51
|
+
if (!str.length)
|
|
52
|
+
return undefined;
|
|
53
|
+
const match = str.match(positionRegex);
|
|
54
|
+
if (!match || !match.groups)
|
|
55
|
+
return undefined;
|
|
56
|
+
return {
|
|
57
|
+
commit: BigInt(match.groups.commit),
|
|
58
|
+
prepare: BigInt(match.groups.prepare),
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
const stringToStartFromPostition = (startFrom) => {
|
|
62
|
+
switch (startFrom) {
|
|
63
|
+
case "C:0/P:0":
|
|
64
|
+
return constants_1.START;
|
|
65
|
+
case "C:-1/P:-1":
|
|
66
|
+
return constants_1.END;
|
|
67
|
+
default:
|
|
68
|
+
return stringToPosition(startFrom);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const mapMaxSubscriberCount = (count) => {
|
|
72
|
+
if (count === 0)
|
|
73
|
+
return constants_1.UNBOUNDED;
|
|
74
|
+
return count;
|
|
75
|
+
};
|
|
76
|
+
const mapSettingBase = (response) => ({
|
|
77
|
+
resolveLinkTos: response.getResolveLinkTos(),
|
|
78
|
+
extraStatistics: response.getExtraStatistics(),
|
|
79
|
+
messageTimeout: response.getMessageTimeoutMilliseconds(),
|
|
80
|
+
maxRetryCount: response.getMaxRetryCount(),
|
|
81
|
+
checkPointAfter: response.getCheckPointAfterMilliseconds(),
|
|
82
|
+
checkPointLowerBound: response.getMinCheckPointCount(),
|
|
83
|
+
checkPointUpperBound: response.getMaxCheckPointCount(),
|
|
84
|
+
maxSubscriberCount: mapMaxSubscriberCount(response.getMaxSubscriberCount()),
|
|
85
|
+
liveBufferSize: response.getLiveBufferSize(),
|
|
86
|
+
readBatchSize: response.getReadBatchSize(),
|
|
87
|
+
historyBufferSize: response.getBufferSize(),
|
|
88
|
+
consumerStrategyName: response.getNamedConsumerStrategy(),
|
|
89
|
+
});
|
|
90
|
+
const mapSettings = (response) => ({
|
|
91
|
+
...mapSettingBase(response),
|
|
92
|
+
startFrom: stringToStartFromRevision(response.getStartFrom()),
|
|
93
|
+
});
|
|
94
|
+
const mapToAllSettings = (response) => ({
|
|
95
|
+
...mapSettingBase(response),
|
|
96
|
+
startFrom: stringToStartFromPostition(response.getStartFrom()),
|
|
97
|
+
});
|
|
98
|
+
const mapConnection = (connection) => ({
|
|
99
|
+
from: connection.getFrom(),
|
|
100
|
+
username: connection.getUsername(),
|
|
101
|
+
averageItemsPerSecond: connection.getAverageItemsPerSecond(),
|
|
102
|
+
totalItems: BigInt(connection.getTotalItems()),
|
|
103
|
+
countSinceLastMeasurement: BigInt(connection.getCountSinceLastMeasurement()),
|
|
104
|
+
extraStatistics: connection
|
|
105
|
+
.getObservedMeasurementsList()
|
|
106
|
+
.reduce((acc, observedMeasurement) => {
|
|
107
|
+
if (acc == null)
|
|
108
|
+
acc = new Map();
|
|
109
|
+
acc.set(observedMeasurement.getKey().toLowerCase(), BigInt(observedMeasurement.getValue()));
|
|
110
|
+
return acc;
|
|
111
|
+
}, undefined),
|
|
112
|
+
availableSlots: connection.getAvailableSlots(),
|
|
113
|
+
inFlightMessages: connection.getInFlightMessages(),
|
|
114
|
+
connectionName: connection.getConnectionName(),
|
|
115
|
+
});
|
|
116
|
+
const mapStatsBase = (response) => ({
|
|
117
|
+
averagePerSecond: response.getAveragePerSecond(),
|
|
118
|
+
totalItems: BigInt(response.getTotalItems()),
|
|
119
|
+
countSinceLastMeasurement: BigInt(response.getCountSinceLastMeasurement()),
|
|
120
|
+
readBufferCount: response.getReadBufferCount(),
|
|
121
|
+
liveBufferCount: BigInt(response.getLiveBufferCount()),
|
|
122
|
+
retryBufferCount: response.getRetryBufferCount(),
|
|
123
|
+
totalInFlightMessages: response.getTotalInFlightMessages(),
|
|
124
|
+
outstandingMessagesCount: response.getOutstandingMessagesCount(),
|
|
125
|
+
parkedMessageCount: BigInt(response.getParkedMessageCount()),
|
|
126
|
+
});
|
|
127
|
+
const mapStats = (response) => ({
|
|
128
|
+
...mapStatsBase(response),
|
|
129
|
+
lastCheckpointedEventRevision: stringToRevision(response.getLastCheckpointedEventPosition()),
|
|
130
|
+
lastKnownEventRevision: stringToRevision(response.getLastKnownEventPosition()),
|
|
131
|
+
});
|
|
132
|
+
const mapToAllStats = (response) => ({
|
|
133
|
+
...mapStatsBase(response),
|
|
134
|
+
lastCheckpointedEventPosition: stringToPosition(response.getLastCheckpointedEventPosition()),
|
|
135
|
+
lastKnownEventPosition: stringToPosition(response.getLastKnownEventPosition()),
|
|
136
|
+
});
|
|
137
|
+
const mapHTTPPersistentSubscriptionInfo = (response) => ({
|
|
138
|
+
eventSource: response.eventStreamId,
|
|
139
|
+
groupName: response.groupName,
|
|
140
|
+
status: response.status,
|
|
141
|
+
settings: mapHTTPSettings(response),
|
|
142
|
+
connections: response.connections.map(mapHTTPConnection),
|
|
143
|
+
stats: mapHTTPStats(response),
|
|
144
|
+
});
|
|
145
|
+
exports.mapHTTPPersistentSubscriptionInfo = mapHTTPPersistentSubscriptionInfo;
|
|
146
|
+
const mapHTTPSettings = (response) => ({
|
|
147
|
+
startFrom: mapHTTPStartFrom(response.config.startFrom),
|
|
148
|
+
resolveLinkTos: response.config.resolveLinktos,
|
|
149
|
+
extraStatistics: response.config.extraStatistics,
|
|
150
|
+
messageTimeout: response.config.messageTimeoutMilliseconds,
|
|
151
|
+
maxRetryCount: response.config.maxRetryCount,
|
|
152
|
+
checkPointAfter: response.config.checkPointAfterMilliseconds,
|
|
153
|
+
checkPointLowerBound: response.config.minCheckPointCount,
|
|
154
|
+
checkPointUpperBound: response.config.maxCheckPointCount,
|
|
155
|
+
maxSubscriberCount: mapMaxSubscriberCount(response.config.maxSubscriberCount),
|
|
156
|
+
liveBufferSize: response.config.liveBufferSize,
|
|
157
|
+
readBatchSize: response.config.readBatchSize,
|
|
158
|
+
historyBufferSize: response.config.bufferSize,
|
|
159
|
+
consumerStrategyName: response.config.namedConsumerStrategy,
|
|
160
|
+
});
|
|
161
|
+
const mapHTTPStartFrom = (startFrom) => {
|
|
162
|
+
switch (startFrom) {
|
|
163
|
+
case 0:
|
|
164
|
+
return constants_1.START;
|
|
165
|
+
case -1:
|
|
166
|
+
return constants_1.END;
|
|
167
|
+
default:
|
|
168
|
+
return BigInt(startFrom);
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
const mapHTTPStats = (response) => ({
|
|
172
|
+
averagePerSecond: response.averageItemsPerSecond,
|
|
173
|
+
totalItems: BigInt(response.totalItemsProcessed),
|
|
174
|
+
countSinceLastMeasurement: BigInt(response.countSinceLastMeasurement),
|
|
175
|
+
readBufferCount: response.readBufferCount,
|
|
176
|
+
liveBufferCount: BigInt(response.liveBufferCount),
|
|
177
|
+
retryBufferCount: response.retryBufferCount,
|
|
178
|
+
totalInFlightMessages: response.totalInFlightMessages,
|
|
179
|
+
outstandingMessagesCount: response.outstandingMessagesCount,
|
|
180
|
+
parkedMessageCount: BigInt(response.parkedMessageCount ?? 0),
|
|
181
|
+
lastCheckpointedEventRevision: response.lastProcessedEventNumber < 0
|
|
182
|
+
? undefined
|
|
183
|
+
: BigInt(response.lastProcessedEventNumber),
|
|
184
|
+
lastKnownEventRevision: response.lastKnownEventNumber < 0
|
|
185
|
+
? undefined
|
|
186
|
+
: BigInt(response.lastKnownEventNumber),
|
|
187
|
+
});
|
|
188
|
+
const mapHTTPConnection = (connection) => ({
|
|
189
|
+
from: connection.from,
|
|
190
|
+
username: connection.username,
|
|
191
|
+
connectionName: connection.connectionName,
|
|
192
|
+
averageItemsPerSecond: connection.averageItemsPerSecond,
|
|
193
|
+
totalItems: BigInt(connection.totalItemsProcessed),
|
|
194
|
+
countSinceLastMeasurement: BigInt(connection.countSinceLastMeasurement),
|
|
195
|
+
availableSlots: connection.availableSlots,
|
|
196
|
+
inFlightMessages: connection.inFlightMessages,
|
|
197
|
+
extraStatistics: connection.extraStatistics.reduce((acc, { key, value }) => {
|
|
198
|
+
if (acc == null)
|
|
199
|
+
acc = new Map();
|
|
200
|
+
acc.set(key.toLowerCase(), BigInt(value));
|
|
201
|
+
return acc;
|
|
202
|
+
}, undefined),
|
|
203
|
+
});
|
|
204
|
+
//# sourceMappingURL=mapPersistentSubscriptionInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapPersistentSubscriptionInfo.js","sourceRoot":"","sources":["../../../src/persistentSubscription/utils/mapPersistentSubscriptionInfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { END, START, UNBOUNDED } from "../../constants";
|
|
2
|
+
import type { ConsumerStrategy, Position } from "../../types";
|
|
3
|
+
export interface PersistentSubscriptionSettingsGeneric {
|
|
4
|
+
/**
|
|
5
|
+
* The best way to explain link resolution is when using system projections. When reading the stream `$streams` (which
|
|
6
|
+
* contains all streams), each event is actually a link pointing to the first event of a stream. By enabling link
|
|
7
|
+
* resolution feature, the server will also return the event targeted by the link.
|
|
8
|
+
* @defaultValue false
|
|
9
|
+
*/
|
|
10
|
+
resolveLinkTos: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Enable tracking of in depth latency statistics on this subscription.
|
|
13
|
+
* @defaultValue false
|
|
14
|
+
*/
|
|
15
|
+
extraStatistics: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The amount of time in milliseconds after which a message should be considered to be timeout and retried.
|
|
18
|
+
* @defaultValue 30_000
|
|
19
|
+
*/
|
|
20
|
+
messageTimeout: number;
|
|
21
|
+
/**
|
|
22
|
+
* The maximum number of retries (due to timeout) before a message gets considered to be parked.
|
|
23
|
+
* @defaultValue 10
|
|
24
|
+
*/
|
|
25
|
+
maxRetryCount: number;
|
|
26
|
+
/**
|
|
27
|
+
* The amount of time to try checkpoint after in milliseconds.
|
|
28
|
+
* @defaultValue 2_000
|
|
29
|
+
*/
|
|
30
|
+
checkPointAfter: number;
|
|
31
|
+
/**
|
|
32
|
+
* The minimum number of messages to process before a checkpoint may be written.
|
|
33
|
+
* @defaultValue 10
|
|
34
|
+
*/
|
|
35
|
+
checkPointLowerBound: number;
|
|
36
|
+
/**
|
|
37
|
+
* The maximum number of messages not checkpointed before forcing a checkpoint.
|
|
38
|
+
* @defaultValue 1_000
|
|
39
|
+
*/
|
|
40
|
+
checkPointUpperBound: number;
|
|
41
|
+
/**
|
|
42
|
+
* The maximum number of subscribers allowed.
|
|
43
|
+
* @defaultValue UNLIMITED
|
|
44
|
+
*/
|
|
45
|
+
maxSubscriberCount: typeof UNBOUNDED | number;
|
|
46
|
+
/**
|
|
47
|
+
* The size of the buffer listening to live messages as they happen.
|
|
48
|
+
* @defaultValue 500
|
|
49
|
+
*/
|
|
50
|
+
liveBufferSize: number;
|
|
51
|
+
/**
|
|
52
|
+
* The number of events read at a time when paging in history.
|
|
53
|
+
* @defaultValue 20
|
|
54
|
+
*/
|
|
55
|
+
readBatchSize: number;
|
|
56
|
+
/**
|
|
57
|
+
* The number of events to cache when paging through history.
|
|
58
|
+
* @defaultValue 500
|
|
59
|
+
*/
|
|
60
|
+
historyBufferSize: number;
|
|
61
|
+
/**
|
|
62
|
+
* The strategy to use for distributing events to client consumers.
|
|
63
|
+
* @defaultValue ROUND_ROBIN
|
|
64
|
+
*/
|
|
65
|
+
consumerStrategyName: ConsumerStrategy | string;
|
|
66
|
+
}
|
|
67
|
+
export interface PersistentSubscriptionToStreamSettings extends PersistentSubscriptionSettingsGeneric {
|
|
68
|
+
/**
|
|
69
|
+
* Where to start the subscription from. This can be from the start of the stream, from the end of the stream at the time of creation, or from an inclusive position in the stream.
|
|
70
|
+
* @defaultValue END
|
|
71
|
+
*/
|
|
72
|
+
startFrom: typeof START | typeof END | bigint;
|
|
73
|
+
}
|
|
74
|
+
export interface PersistentSubscriptionToAllSettings extends PersistentSubscriptionSettingsGeneric {
|
|
75
|
+
/**
|
|
76
|
+
* Where to start the subscription from. This can be from the start of the stream, from the end of the stream at the time of creation, or from an inclusive position in the stream.
|
|
77
|
+
* @defaultValue END
|
|
78
|
+
*/
|
|
79
|
+
startFrom: typeof START | typeof END | Position;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Creates {@link PersistentSubscriptionToStreamSettings} from default settings.
|
|
83
|
+
* @param changes - Changes to apply to the default settings.
|
|
84
|
+
*/
|
|
85
|
+
export declare const persistentSubscriptionToStreamSettingsFromDefaults: (changes?: Partial<PersistentSubscriptionToStreamSettings>) => PersistentSubscriptionToStreamSettings;
|
|
86
|
+
/**
|
|
87
|
+
* Creates {@link PersistentSubscriptionToAllSettings} from default settings.
|
|
88
|
+
* @param changes - Changes to apply to the default settings.
|
|
89
|
+
*/
|
|
90
|
+
export declare const persistentSubscriptionToAllSettingsFromDefaults: (changes?: Partial<PersistentSubscriptionToAllSettings>) => PersistentSubscriptionToAllSettings;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.persistentSubscriptionToAllSettingsFromDefaults = exports.persistentSubscriptionToStreamSettingsFromDefaults = void 0;
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
5
|
+
const defaults = {
|
|
6
|
+
resolveLinkTos: false,
|
|
7
|
+
extraStatistics: false,
|
|
8
|
+
messageTimeout: 30_000,
|
|
9
|
+
maxRetryCount: 10,
|
|
10
|
+
checkPointAfter: 2_000,
|
|
11
|
+
checkPointLowerBound: 10,
|
|
12
|
+
checkPointUpperBound: 1_000,
|
|
13
|
+
maxSubscriberCount: constants_1.UNBOUNDED,
|
|
14
|
+
liveBufferSize: 500,
|
|
15
|
+
readBatchSize: 20,
|
|
16
|
+
historyBufferSize: 500,
|
|
17
|
+
consumerStrategyName: constants_1.ROUND_ROBIN,
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Creates {@link PersistentSubscriptionToStreamSettings} from default settings.
|
|
21
|
+
* @param changes - Changes to apply to the default settings.
|
|
22
|
+
*/
|
|
23
|
+
const persistentSubscriptionToStreamSettingsFromDefaults = (changes = {}) => ({
|
|
24
|
+
startFrom: constants_1.END,
|
|
25
|
+
...defaults,
|
|
26
|
+
...changes,
|
|
27
|
+
});
|
|
28
|
+
exports.persistentSubscriptionToStreamSettingsFromDefaults = persistentSubscriptionToStreamSettingsFromDefaults;
|
|
29
|
+
/**
|
|
30
|
+
* Creates {@link PersistentSubscriptionToAllSettings} from default settings.
|
|
31
|
+
* @param changes - Changes to apply to the default settings.
|
|
32
|
+
*/
|
|
33
|
+
const persistentSubscriptionToAllSettingsFromDefaults = (changes = {}) => ({
|
|
34
|
+
startFrom: constants_1.END,
|
|
35
|
+
...defaults,
|
|
36
|
+
...changes,
|
|
37
|
+
});
|
|
38
|
+
exports.persistentSubscriptionToAllSettingsFromDefaults = persistentSubscriptionToAllSettingsFromDefaults;
|
|
39
|
+
//# sourceMappingURL=persistentSubscriptionSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistentSubscriptionSettings.js","sourceRoot":"","sources":["../../../src/persistentSubscription/utils/persistentSubscriptionSettings.ts"],"names":[],"mappings":";;;AAAA,+CAAqE;AAiGrE,MAAM,QAAQ,GAA0C;IACtD,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,MAAM;IACtB,aAAa,EAAE,EAAE;IACjB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,EAAE;IACxB,oBAAoB,EAAE,KAAK;IAC3B,kBAAkB,EAAE,qBAAS;IAC7B,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,EAAE;IACjB,iBAAiB,EAAE,GAAG;IACtB,oBAAoB,EAAE,uBAAW;CAClC,CAAC;AAEF;;;GAGG;AACI,MAAM,kDAAkD,GAAG,CAChE,UAA2D,EAAE,EACrB,EAAE,CAAC,CAAC;IAC5C,SAAS,EAAE,eAAG;IACd,GAAG,QAAQ;IACX,GAAG,OAAO;CACX,CAAC,CAAC;AANU,QAAA,kDAAkD,sDAM5D;AAEH;;;GAGG;AACI,MAAM,+CAA+C,GAAG,CAC7D,UAAwD,EAAE,EACrB,EAAE,CAAC,CAAC;IACzC,SAAS,EAAE,eAAG;IACd,GAAG,QAAQ;IACX,GAAG,OAAO;CACX,CAAC,CAAC;AANU,QAAA,+CAA+C,mDAMzD"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { CreateReq, UpdateReq } from "../../../generated/persistent_pb";
|
|
2
|
+
import type { PersistentSubscriptionToStreamSettings, PersistentSubscriptionToAllSettings } from "./persistentSubscriptionSettings";
|
|
3
|
+
type GRPCSettings = typeof CreateReq.Settings | typeof UpdateReq.Settings;
|
|
4
|
+
export declare const settingsToGRPC: <T extends GRPCSettings>(settings: PersistentSubscriptionToStreamSettings | PersistentSubscriptionToAllSettings, ReqSettings: T) => InstanceType<T>;
|
|
5
|
+
export {};
|