@eventualize/types 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/DelayStrategy.d.ts +6 -0
  2. package/dist/DelayStrategy.js +18 -0
  3. package/dist/DelayStrategy.js.map +1 -0
  4. package/dist/EvDbContinuousFetchOptions.d.ts +10 -0
  5. package/dist/EvDbContinuousFetchOptions.js +16 -0
  6. package/dist/EvDbContinuousFetchOptions.js.map +1 -0
  7. package/dist/EvDbEvent.d.ts +12 -0
  8. package/dist/EvDbEvent.js +11 -0
  9. package/dist/EvDbEvent.js.map +1 -0
  10. package/dist/EvDbMessage.d.ts +21 -0
  11. package/dist/EvDbMessage.js +27 -0
  12. package/dist/EvDbMessage.js.map +1 -0
  13. package/dist/EvDbMessageFilter.d.ts +43 -0
  14. package/dist/EvDbMessageFilter.js +54 -0
  15. package/dist/EvDbMessageFilter.js.map +1 -0
  16. package/dist/EvDbMessagesProducer.d.ts +4 -0
  17. package/dist/EvDbMessagesProducer.js +2 -0
  18. package/dist/EvDbMessagesProducer.js.map +1 -0
  19. package/dist/EvDbSnapshotCursor.d.ts +24 -0
  20. package/dist/EvDbSnapshotCursor.js +58 -0
  21. package/dist/EvDbSnapshotCursor.js.map +1 -0
  22. package/dist/EvDbStoredSnapshotData.d.ts +24 -0
  23. package/dist/EvDbStoredSnapshotData.js +65 -0
  24. package/dist/EvDbStoredSnapshotData.js.map +1 -0
  25. package/dist/EvDbStoredSnapshotResult.d.ts +11 -0
  26. package/dist/EvDbStoredSnapshotResult.js +18 -0
  27. package/dist/EvDbStoredSnapshotResult.js.map +1 -0
  28. package/dist/EvDbStoredSnapshotResultBase.d.ts +6 -0
  29. package/dist/EvDbStoredSnapshotResultBase.js +9 -0
  30. package/dist/EvDbStoredSnapshotResultBase.js.map +1 -0
  31. package/dist/EvDbStreamAddress.d.ts +7 -0
  32. package/dist/EvDbStreamAddress.js +11 -0
  33. package/dist/EvDbStreamAddress.js.map +1 -0
  34. package/dist/EvDbStreamCursor.d.ts +19 -0
  35. package/dist/EvDbStreamCursor.js +45 -0
  36. package/dist/EvDbStreamCursor.js.map +1 -0
  37. package/dist/EvDbViewAddress.d.ts +5 -0
  38. package/dist/EvDbViewAddress.js +22 -0
  39. package/dist/EvDbViewAddress.js.map +1 -0
  40. package/dist/IEvDbChangeStream.d.ts +58 -0
  41. package/dist/IEvDbChangeStream.js +2 -0
  42. package/dist/IEvDbChangeStream.js.map +1 -0
  43. package/dist/IEvDbEventMetadata.d.ts +20 -0
  44. package/dist/IEvDbEventMetadata.js +2 -0
  45. package/dist/IEvDbEventMetadata.js.map +1 -0
  46. package/dist/IEvDbEventPayload.d.ts +6 -0
  47. package/dist/IEvDbEventPayload.js +2 -0
  48. package/dist/IEvDbEventPayload.js.map +1 -0
  49. package/dist/IEvDbEventsSet.d.ts +7 -0
  50. package/dist/IEvDbEventsSet.js +2 -0
  51. package/dist/IEvDbEventsSet.js.map +1 -0
  52. package/dist/IEvDbStorageAdmin.d.ts +30 -0
  53. package/dist/IEvDbStorageAdmin.js +2 -0
  54. package/dist/IEvDbStorageAdmin.js.map +1 -0
  55. package/dist/IEvDbStorageSnapshotAdapter.d.ts +26 -0
  56. package/dist/IEvDbStorageSnapshotAdapter.js +2 -0
  57. package/dist/IEvDbStorageSnapshotAdapter.js.map +1 -0
  58. package/dist/IEvDbStorageStreamAdapter.d.ts +34 -0
  59. package/dist/IEvDbStorageStreamAdapter.js +2 -0
  60. package/dist/IEvDbStorageStreamAdapter.js.map +1 -0
  61. package/dist/IEvDbStreamStore.d.ts +16 -0
  62. package/dist/IEvDbStreamStore.js +2 -0
  63. package/dist/IEvDbStreamStore.js.map +1 -0
  64. package/dist/IEvDbStreamStoreData.d.ts +20 -0
  65. package/dist/IEvDbStreamStoreData.js +2 -0
  66. package/dist/IEvDbStreamStoreData.js.map +1 -0
  67. package/dist/IEvDbView.d.ts +15 -0
  68. package/dist/IEvDbView.js +2 -0
  69. package/dist/IEvDbView.js.map +1 -0
  70. package/dist/IEvDbViewAppliesSet.d.ts +6 -0
  71. package/dist/IEvDbViewAppliesSet.js +2 -0
  72. package/dist/IEvDbViewAppliesSet.js.map +1 -0
  73. package/dist/IEvDbViewStore.d.ts +28 -0
  74. package/dist/IEvDbViewStore.js +2 -0
  75. package/dist/IEvDbViewStore.js.map +1 -0
  76. package/dist/OCCException.d.ts +13 -0
  77. package/dist/OCCException.js +26 -0
  78. package/dist/OCCException.js.map +1 -0
  79. package/dist/StreamStoreAffected.d.ts +11 -0
  80. package/dist/StreamStoreAffected.js +12 -0
  81. package/dist/StreamStoreAffected.js.map +1 -0
  82. package/dist/primitiveTypes.d.ts +7 -0
  83. package/dist/primitiveTypes.js +2 -0
  84. package/dist/primitiveTypes.js.map +1 -0
  85. package/package.json +27 -0
  86. package/src/DelayStrategy.ts +23 -0
  87. package/src/EvDbContinuousFetchOptions.ts +22 -0
  88. package/src/EvDbEvent.ts +15 -0
  89. package/src/EvDbMessage.ts +105 -0
  90. package/src/EvDbMessageFilter.ts +86 -0
  91. package/src/EvDbMessagesProducer.ts +5 -0
  92. package/src/EvDbSnapshotCursor.ts +91 -0
  93. package/src/EvDbStoredSnapshotData.ts +106 -0
  94. package/src/EvDbStoredSnapshotResult.ts +44 -0
  95. package/src/EvDbStoredSnapshotResultBase.ts +11 -0
  96. package/src/EvDbStreamAddress.ts +10 -0
  97. package/src/EvDbStreamCursor.ts +52 -0
  98. package/src/EvDbViewAddress.ts +26 -0
  99. package/src/IEvDbChangeStream.ts +92 -0
  100. package/src/IEvDbEventMetadata.ts +32 -0
  101. package/src/IEvDbEventPayload.ts +8 -0
  102. package/src/IEvDbEventsSet.ts +10 -0
  103. package/src/IEvDbStorageAdmin.ts +35 -0
  104. package/src/IEvDbStorageSnapshotAdapter.ts +29 -0
  105. package/src/IEvDbStorageStreamAdapter.ts +43 -0
  106. package/src/IEvDbStreamStore.ts +22 -0
  107. package/src/IEvDbStreamStoreData.ts +27 -0
  108. package/src/IEvDbView.ts +18 -0
  109. package/src/IEvDbViewAppliesSet.ts +8 -0
  110. package/src/IEvDbViewStore.ts +38 -0
  111. package/src/OCCException.ts +34 -0
  112. package/src/StreamStoreAffected.ts +20 -0
  113. package/src/primitiveTypes.ts +7 -0
  114. package/tsconfig.json +15 -0
@@ -0,0 +1,6 @@
1
+ export default class DelayStrategy {
2
+ startDuration: number;
3
+ incrementalLogic: (lastDelay: number, attempt: number) => number;
4
+ constructor(init?: Partial<DelayStrategy>);
5
+ private defaultNextDelay;
6
+ }
@@ -0,0 +1,18 @@
1
+ export default class DelayStrategy {
2
+ constructor(init) {
3
+ this.startDuration = init?.startDuration ?? 200; // 200 ms default
4
+ this.incrementalLogic = init?.incrementalLogic ?? this.defaultNextDelay.bind(this);
5
+ }
6
+ defaultNextDelay(lastDelay, attempt) {
7
+ if (attempt <= 5) {
8
+ return this.startDuration;
9
+ }
10
+ // When lastDelay == 0 → return 50ms
11
+ if (lastDelay === 0) {
12
+ return 50;
13
+ }
14
+ // Exponential growth: double the last delay
15
+ return lastDelay * 2;
16
+ }
17
+ }
18
+ //# sourceMappingURL=DelayStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DelayStrategy.js","sourceRoot":"","sources":["../src/DelayStrategy.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,aAAa;IAI9B,YAAY,IAA6B;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,aAAa,IAAI,GAAG,CAAC,CAAC,iBAAiB;QAClE,IAAI,CAAC,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvF,CAAC;IAEO,gBAAgB,CAAC,SAAiB,EAAE,OAAe;QACvD,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,aAAa,CAAC;QAC9B,CAAC;QAED,oCAAoC;QACpC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,4CAA4C;QAC5C,OAAO,SAAS,GAAG,CAAC,CAAC;IACzB,CAAC;CACJ"}
@@ -0,0 +1,10 @@
1
+ import DelayStrategy from "./DelayStrategy.js";
2
+ export default class EvDbContinuousFetchOptions {
3
+ private static readonly MAX_DELAY_SEC;
4
+ static readonly CompleteIfEmpty: EvDbContinuousFetchOptions;
5
+ static readonly ContinueWhenEmpty: EvDbContinuousFetchOptions;
6
+ completeWhenEmpty: boolean;
7
+ delayWhenEmpty: DelayStrategy;
8
+ maxDelayWhenEmpty: number;
9
+ constructor(init?: Partial<EvDbContinuousFetchOptions>);
10
+ }
@@ -0,0 +1,16 @@
1
+ import DelayStrategy from "./DelayStrategy.js";
2
+ class EvDbContinuousFetchOptions {
3
+ constructor(init) {
4
+ this.completeWhenEmpty = init?.completeWhenEmpty ?? false;
5
+ this.delayWhenEmpty = init?.delayWhenEmpty ?? new DelayStrategy();
6
+ this.maxDelayWhenEmpty = init?.maxDelayWhenEmpty
7
+ ?? EvDbContinuousFetchOptions.MAX_DELAY_SEC * 1000;
8
+ }
9
+ }
10
+ EvDbContinuousFetchOptions.MAX_DELAY_SEC = 3;
11
+ EvDbContinuousFetchOptions.CompleteIfEmpty = new EvDbContinuousFetchOptions({
12
+ completeWhenEmpty: true
13
+ });
14
+ EvDbContinuousFetchOptions.ContinueWhenEmpty = new EvDbContinuousFetchOptions();
15
+ export default EvDbContinuousFetchOptions;
16
+ //# sourceMappingURL=EvDbContinuousFetchOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvDbContinuousFetchOptions.js","sourceRoot":"","sources":["../src/EvDbContinuousFetchOptions.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAqB,0BAA0B;IAa3C,YAAY,IAA0C;QAClD,IAAI,CAAC,iBAAiB,GAAG,IAAI,EAAE,iBAAiB,IAAI,KAAK,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,IAAI,IAAI,aAAa,EAAE,CAAC;QAClE,IAAI,CAAC,iBAAiB,GAAG,IAAI,EAAE,iBAAiB;eACzC,0BAA0B,CAAC,aAAa,GAAG,IAAI,CAAC;IAC3D,CAAC;;AAjBuB,wCAAa,GAAG,CAAC,CAAC;AAE1B,0CAAe,GAAG,IAAI,0BAA0B,CAAC;IAC7D,iBAAiB,EAAE,IAAI;CAC1B,CAAC,CAAC;AAEa,4CAAiB,GAAG,IAAI,0BAA0B,EAAE,CAAC;eAPpD,0BAA0B"}
@@ -0,0 +1,12 @@
1
+ import EvDbStreamCursor from "./EvDbStreamCursor.js";
2
+ import IEvDbEventMetadata from "./IEvDbEventMetadata.js";
3
+ import IEvDbEventPayload from "./IEvDbEventPayload.js";
4
+ export default class EvDbEvent implements IEvDbEventMetadata {
5
+ readonly eventType: string;
6
+ readonly streamCursor: EvDbStreamCursor;
7
+ readonly payload: IEvDbEventPayload;
8
+ readonly capturedAt: Date;
9
+ readonly capturedBy: string;
10
+ readonly storedAt?: Date | undefined;
11
+ constructor(eventType: string, streamCursor: EvDbStreamCursor, payload: IEvDbEventPayload, capturedAt?: Date, capturedBy?: string, storedAt?: Date | undefined);
12
+ }
@@ -0,0 +1,11 @@
1
+ export default class EvDbEvent {
2
+ constructor(eventType, streamCursor, payload, capturedAt = new Date(Date.now()), capturedBy = 'N/A', storedAt) {
3
+ this.eventType = eventType;
4
+ this.streamCursor = streamCursor;
5
+ this.payload = payload;
6
+ this.capturedAt = capturedAt;
7
+ this.capturedBy = capturedBy;
8
+ this.storedAt = storedAt;
9
+ }
10
+ }
11
+ //# sourceMappingURL=EvDbEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvDbEvent.js","sourceRoot":"","sources":["../src/EvDbEvent.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,OAAO,SAAS;IAE1B,YACoB,SAAiB,EACjB,YAA8B,EAC9B,OAA0B,EAC1B,aAAmB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EACvC,aAAqB,KAAK,EAC1B,QAAe;QALf,cAAS,GAAT,SAAS,CAAQ;QACjB,iBAAY,GAAZ,YAAY,CAAkB;QAC9B,YAAO,GAAP,OAAO,CAAmB;QAC1B,eAAU,GAAV,UAAU,CAA6B;QACvC,eAAU,GAAV,UAAU,CAAgB;QAC1B,aAAQ,GAAR,QAAQ,CAAO;IAC/B,CAAC;CACR"}
@@ -0,0 +1,21 @@
1
+ import EvDbEvent from "./EvDbEvent.js";
2
+ import EvDbStreamCursor from "./EvDbStreamCursor.js";
3
+ import IEvDbEventPayload, { IEvDbPayloadData } from "./IEvDbEventPayload.js";
4
+ export default class EvDbMessage {
5
+ readonly id: string;
6
+ readonly eventType: string;
7
+ readonly channel: string;
8
+ readonly shardName: string;
9
+ readonly messageType: string;
10
+ readonly serializeType: string;
11
+ readonly capturedAt: Date;
12
+ readonly capturedBy: string;
13
+ readonly streamCursor: EvDbStreamCursor;
14
+ readonly payload: IEvDbPayloadData;
15
+ readonly storedAt?: Date | undefined;
16
+ static readonly Empty: EvDbMessage;
17
+ private constructor();
18
+ static createWithId(id: string, eventType: string, channel: string, shardName: string, messageType: string, serializeType: string, capturedAt: Date, capturedBy: string, streamCursor: EvDbStreamCursor, payload: any): EvDbMessage;
19
+ static create(eventType: string, channel: string, shardName: string, messageType: string, serializeType: string, capturedAt: Date, capturedBy: string, streamCursor: EvDbStreamCursor, payload: any): EvDbMessage;
20
+ static createFromEvent(event: EvDbEvent, payload: IEvDbEventPayload, channel?: string, serializeType?: string): EvDbMessage;
21
+ }
@@ -0,0 +1,27 @@
1
+ class EvDbMessage {
2
+ constructor(id, eventType, channel, shardName, messageType, serializeType, capturedAt, capturedBy, streamCursor, payload, storedAt) {
3
+ this.id = id;
4
+ this.eventType = eventType;
5
+ this.channel = channel;
6
+ this.shardName = shardName;
7
+ this.messageType = messageType;
8
+ this.serializeType = serializeType;
9
+ this.capturedAt = capturedAt;
10
+ this.capturedBy = capturedBy;
11
+ this.streamCursor = streamCursor;
12
+ this.payload = payload;
13
+ this.storedAt = storedAt;
14
+ }
15
+ static createWithId(id, eventType, channel, shardName, messageType, serializeType, capturedAt, capturedBy, streamCursor, payload) {
16
+ return new EvDbMessage(id, eventType, channel, shardName, messageType, serializeType, capturedAt, capturedBy, streamCursor, payload);
17
+ }
18
+ static create(eventType, channel, shardName, messageType, serializeType, capturedAt, capturedBy, streamCursor, payload) {
19
+ return new EvDbMessage(crypto.randomUUID(), eventType, channel, shardName, messageType, serializeType, capturedAt, capturedBy, streamCursor, payload);
20
+ }
21
+ static createFromEvent(event, payload, channel = 'default', serializeType = 'json') {
22
+ return new EvDbMessage(crypto.randomUUID(), event.eventType, channel, 'default', payload.payloadType, serializeType, event.capturedAt, event.capturedBy, event.streamCursor, payload);
23
+ }
24
+ }
25
+ EvDbMessage.Empty = EvDbMessage.createWithId('', '', '', '', '', '', new Date(0), '', {}, undefined);
26
+ export default EvDbMessage;
27
+ //# sourceMappingURL=EvDbMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvDbMessage.js","sourceRoot":"","sources":["../src/EvDbMessage.ts"],"names":[],"mappings":"AAIA,MAAqB,WAAW;IAgB5B,YACoB,EAAU,EACV,SAAiB,EACjB,OAAe,EACf,SAAiB,EACjB,WAAmB,EACnB,aAAqB,EACrB,UAAgB,EAChB,UAAkB,EAClB,YAA8B,EAC9B,OAAyB,EACzB,QAAe;QAVf,OAAE,GAAF,EAAE,CAAQ;QACV,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAQ;QACjB,gBAAW,GAAX,WAAW,CAAQ;QACnB,kBAAa,GAAb,aAAa,CAAQ;QACrB,eAAU,GAAV,UAAU,CAAM;QAChB,eAAU,GAAV,UAAU,CAAQ;QAClB,iBAAY,GAAZ,YAAY,CAAkB;QAC9B,YAAO,GAAP,OAAO,CAAkB;QACzB,aAAQ,GAAR,QAAQ,CAAO;IAC/B,CAAC;IAEE,MAAM,CAAC,YAAY,CACtB,EAAU,EACV,SAAiB,EACjB,OAAe,EACf,SAAiB,EACjB,WAAmB,EACnB,aAAqB,EACrB,UAAgB,EAChB,UAAkB,EAClB,YAA8B,EAC9B,OAAY;QAEZ,OAAO,IAAI,WAAW,CAClB,EAAE,EACF,SAAS,EACT,OAAO,EACP,SAAS,EACT,WAAW,EACX,aAAa,EACb,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,CACV,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,MAAM,CAChB,SAAiB,EACjB,OAAe,EACf,SAAiB,EACjB,WAAmB,EACnB,aAAqB,EACrB,UAAgB,EAChB,UAAkB,EAClB,YAA8B,EAC9B,OAAY;QAEZ,OAAO,IAAI,WAAW,CAClB,MAAM,CAAC,UAAU,EAAE,EACnB,SAAS,EACT,OAAO,EACP,SAAS,EACT,WAAW,EACX,aAAa,EACb,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,CACV,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,eAAe,CACzB,KAAgB,EAChB,OAA0B,EAC1B,UAAkB,SAAS,EAC3B,gBAAwB,MAAM;QAE9B,OAAO,IAAI,WAAW,CAClB,MAAM,CAAC,UAAU,EAAE,EACnB,KAAK,CAAC,SAAS,EACf,OAAO,EACP,SAAS,EACT,OAAO,CAAC,WAAW,EACnB,aAAa,EACb,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,YAAY,EAClB,OAAO,CACV,CAAC;IACN,CAAC;;AAhGsB,iBAAK,GAAgB,WAAW,CAAC,YAAY,CAChE,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,IAAI,IAAI,CAAC,CAAC,CAAC,EACX,EAAE,EACF,EAAsB,EACtB,SAAS,CACZ,CAAC;eAde,WAAW"}
@@ -0,0 +1,43 @@
1
+ import { EvDbChannelName, EvDbMessageTypeName } from "../../types/src/primitiveTypes.js";
2
+ export default class EvDbMessageFilter {
3
+ readonly since: Date;
4
+ readonly channels: ReadonlyArray<EvDbChannelName>;
5
+ readonly messageTypes: ReadonlyArray<EvDbMessageTypeName>;
6
+ constructor(since?: Date, channels?: ReadonlyArray<EvDbChannelName>, messageTypes?: ReadonlyArray<EvDbMessageTypeName>);
7
+ /**
8
+ * Creates a filter with the specified since date
9
+ */
10
+ static create(since: Date): EvDbMessageFilter;
11
+ /**
12
+ * Creates a filter from a Date
13
+ */
14
+ static fromDate(date: Date): EvDbMessageFilter;
15
+ /**
16
+ * Creates a filter from a channel name
17
+ */
18
+ static fromChannel(channel: EvDbChannelName): EvDbMessageFilter;
19
+ /**
20
+ * Creates a filter from a message type name
21
+ */
22
+ static fromMessageType(messageType: EvDbMessageTypeName): EvDbMessageFilter;
23
+ /**
24
+ * Adds a channel to the filter
25
+ * Restrict the messages to those that match the specified channels.
26
+ * Ignore this property if you want to get all messages.
27
+ */
28
+ addChannel(channel: EvDbChannelName): EvDbMessageFilter;
29
+ /**
30
+ * Adds a message type to the filter
31
+ * Restrict the messages to those that match the specified message-types.
32
+ * Ignore this property if you want to get all messages.
33
+ */
34
+ addMessageType(messageType: EvDbMessageTypeName): EvDbMessageFilter;
35
+ /**
36
+ * Creates a new filter with updated properties (similar to C# 'with' expression)
37
+ */
38
+ with(updates: {
39
+ since?: Date;
40
+ channels?: ReadonlyArray<EvDbChannelName>;
41
+ messageTypes?: ReadonlyArray<EvDbMessageTypeName>;
42
+ }): EvDbMessageFilter;
43
+ }
@@ -0,0 +1,54 @@
1
+ export default class EvDbMessageFilter {
2
+ constructor(since = new Date(0), channels = [], messageTypes = []) {
3
+ this.since = since;
4
+ this.channels = channels;
5
+ this.messageTypes = messageTypes;
6
+ }
7
+ /**
8
+ * Creates a filter with the specified since date
9
+ */
10
+ static create(since) {
11
+ return new EvDbMessageFilter(since);
12
+ }
13
+ /**
14
+ * Creates a filter from a Date
15
+ */
16
+ static fromDate(date) {
17
+ return new EvDbMessageFilter(date);
18
+ }
19
+ /**
20
+ * Creates a filter from a channel name
21
+ */
22
+ static fromChannel(channel) {
23
+ return new EvDbMessageFilter(new Date(0), [channel]);
24
+ }
25
+ /**
26
+ * Creates a filter from a message type name
27
+ */
28
+ static fromMessageType(messageType) {
29
+ return new EvDbMessageFilter(new Date(0), [], [messageType]);
30
+ }
31
+ /**
32
+ * Adds a channel to the filter
33
+ * Restrict the messages to those that match the specified channels.
34
+ * Ignore this property if you want to get all messages.
35
+ */
36
+ addChannel(channel) {
37
+ return new EvDbMessageFilter(this.since, [...this.channels, channel], this.messageTypes);
38
+ }
39
+ /**
40
+ * Adds a message type to the filter
41
+ * Restrict the messages to those that match the specified message-types.
42
+ * Ignore this property if you want to get all messages.
43
+ */
44
+ addMessageType(messageType) {
45
+ return new EvDbMessageFilter(this.since, this.channels, [...this.messageTypes, messageType]);
46
+ }
47
+ /**
48
+ * Creates a new filter with updated properties (similar to C# 'with' expression)
49
+ */
50
+ with(updates) {
51
+ return new EvDbMessageFilter(updates.since ?? this.since, updates.channels ?? this.channels, updates.messageTypes ?? this.messageTypes);
52
+ }
53
+ }
54
+ //# sourceMappingURL=EvDbMessageFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvDbMessageFilter.js","sourceRoot":"","sources":["../src/EvDbMessageFilter.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAKpC,YACE,QAAc,IAAI,IAAI,CAAC,CAAC,CAAC,EACzB,WAA2C,EAAE,EAC7C,eAAmD,EAAE;QAErD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,MAAM,CAAC,KAAW;QAC9B,OAAO,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,QAAQ,CAAC,IAAU;QAC/B,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,WAAW,CAAC,OAAwB;QAChD,OAAO,IAAI,iBAAiB,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,eAAe,CAAC,WAAgC;QAC5D,OAAO,IAAI,iBAAiB,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACI,UAAU,CAAC,OAAwB;QACxC,OAAO,IAAI,iBAAiB,CAC1B,IAAI,CAAC,KAAK,EACV,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAC3B,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,WAAgC;QACpD,OAAO,IAAI,iBAAiB,CAC1B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,QAAQ,EACb,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CACpC,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,IAAI,CAAC,OAIX;QACC,OAAO,IAAI,iBAAiB,CAC1B,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAC3B,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EACjC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAC1C,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ import EvDbEvent from "./EvDbEvent.js";
2
+ import EvDbMessage from "./EvDbMessage.js";
3
+ type EVDbMessagesProducer = (event: EvDbEvent, viewStates: Readonly<Record<string, unknown>>) => EvDbMessage[];
4
+ export default EVDbMessagesProducer;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=EvDbMessagesProducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvDbMessagesProducer.js","sourceRoot":"","sources":["../src/EvDbMessagesProducer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ import EvDbStreamAddress from "./EvDbStreamAddress.js";
2
+ export default class EvDbSnapshotCursor {
3
+ readonly streamType: string;
4
+ readonly streamId: string;
5
+ readonly viewName: string;
6
+ readonly offset: number;
7
+ constructor(streamType: string, streamId: string, viewName: string, offset?: number);
8
+ static readonly Empty: EvDbSnapshotCursor;
9
+ static fromStreamAddress(address: EvDbStreamAddress, viewName: string, offset?: number): EvDbSnapshotCursor;
10
+ private equalsViewAddress;
11
+ private equalsStreamAddress;
12
+ equalsAddress(address: any): boolean;
13
+ toStreamAddress(): {
14
+ streamType: string;
15
+ streamId: string;
16
+ };
17
+ toViewAddress(): {
18
+ streamType: string;
19
+ streamId: string;
20
+ viewName: string;
21
+ };
22
+ toString(): string;
23
+ toFilterString(): string;
24
+ }
@@ -0,0 +1,58 @@
1
+ import EvDbStreamAddress from "./EvDbStreamAddress.js";
2
+ import EvDbViewAddress from "@eventualize/types/EvDbViewAddress";
3
+ class EvDbSnapshotCursor {
4
+ constructor(streamType, streamId, viewName, offset = 0) {
5
+ this.streamType = streamType;
6
+ this.streamId = streamId;
7
+ this.viewName = viewName;
8
+ this.offset = offset;
9
+ Object.freeze(this); // mimic C# record struct immutability
10
+ }
11
+ // Alternative constructor: (EvDbStreamAddress, viewName, offset)
12
+ static fromStreamAddress(address, viewName, offset = 0) {
13
+ return new EvDbSnapshotCursor(address.streamType, address.streamId, viewName, offset);
14
+ }
15
+ // --------------------------
16
+ // Equality helpers
17
+ // --------------------------
18
+ equalsViewAddress(address) {
19
+ return (this.streamType === address.streamType &&
20
+ this.streamId === address.streamId &&
21
+ this.viewName === address.viewName);
22
+ }
23
+ equalsStreamAddress(address) {
24
+ return (this.streamType === address.streamType &&
25
+ this.streamId === address.streamId);
26
+ }
27
+ // C# operator == equivalents
28
+ equalsAddress(address) {
29
+ if ("viewName" in address)
30
+ return this.equalsViewAddress(address);
31
+ return this.equalsStreamAddress(address);
32
+ }
33
+ // --------------------------
34
+ // "Implicit cast" equivalents
35
+ // --------------------------
36
+ toStreamAddress() {
37
+ return new EvDbStreamAddress(this.streamType, this.streamId);
38
+ }
39
+ toViewAddress() {
40
+ return new EvDbViewAddress(new EvDbStreamAddress(this.streamType, this.streamId), this.viewName);
41
+ }
42
+ // --------------------------
43
+ // toString & filter string
44
+ // --------------------------
45
+ toString() {
46
+ // Format: Type:Id:View:000_000_000_000
47
+ const formattedOffset = this.offset.toString().padStart(12, "0");
48
+ return `${this.streamType}:${this.streamId}:${this.viewName}:${formattedOffset}`;
49
+ }
50
+ toFilterString() {
51
+ // Format without offset: Type:Id:View:
52
+ return `${this.streamType}:${this.streamId}:${this.viewName}:`;
53
+ }
54
+ }
55
+ // Equivalent to: public static readonly EvDbSnapshotCursor Empty
56
+ EvDbSnapshotCursor.Empty = new EvDbSnapshotCursor("N/A", "N/A", "N/A", 0);
57
+ export default EvDbSnapshotCursor;
58
+ //# sourceMappingURL=EvDbSnapshotCursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvDbSnapshotCursor.js","sourceRoot":"","sources":["../src/EvDbSnapshotCursor.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,eAAe,MAAM,oCAAoC,CAAC;AAGjE,MAAqB,kBAAkB;IAMnC,YACI,UAAkB,EAClB,QAAgB,EAChB,QAAgB,EAChB,SAAiB,CAAC;QAElB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAsC;IAC/D,CAAC;IAKD,iEAAiE;IACjE,MAAM,CAAC,iBAAiB,CACpB,OAA0B,EAC1B,QAAgB,EAChB,SAAiB,CAAC;QAElB,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1F,CAAC;IAED,6BAA6B;IAC7B,mBAAmB;IACnB,6BAA6B;IAErB,iBAAiB,CAAC,OAAwB;QAC9C,OAAO,CACH,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU;YACtC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;YAClC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,CACrC,CAAC;IACN,CAAC;IAEO,mBAAmB,CAAC,OAA0B;QAClD,OAAO,CACH,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU;YACtC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,CACrC,CAAC;IACN,CAAC;IAED,6BAA6B;IAC7B,aAAa,CAAC,OAAY;QACtB,IAAI,UAAU,IAAI,OAAO;YAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,6BAA6B;IAC7B,8BAA8B;IAC9B,6BAA6B;IAE7B,eAAe;QACX,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED,aAAa;QACT,OAAO,IAAI,eAAe,CACtB,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EACrD,IAAI,CAAC,QAAQ,CAChB,CAAC;IACN,CAAC;IAED,6BAA6B;IAC7B,2BAA2B;IAC3B,6BAA6B;IAE7B,QAAQ;QACJ,uCAAuC;QACvC,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACjE,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,eAAe,EAAE,CAAC;IACrF,CAAC;IAED,cAAc;QACV,uCAAuC;QACvC,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC;IACnE,CAAC;;AAjED,iEAAiE;AACjD,wBAAK,GAAG,IAAI,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;eArBtD,kBAAkB"}
@@ -0,0 +1,24 @@
1
+ import EvDbStreamAddress from "./EvDbStreamAddress.js";
2
+ import { EvDbStoredSnapshotResultRaw } from "./EvDbStoredSnapshotResult";
3
+ import EvDbViewAddress from "./EvDbViewAddress";
4
+ export declare abstract class EvDbStoredSnapshotDataBase {
5
+ readonly id: string;
6
+ readonly streamType: string;
7
+ readonly streamId: string;
8
+ readonly viewName: string;
9
+ readonly offset: number;
10
+ readonly storeOffset: number;
11
+ readonly storedAt: Date;
12
+ constructor(id: string, streamType: string, streamId: string, viewName: string, offset: number, storeOffset: number, storedAt?: Date);
13
+ toStreamAddress(): EvDbStreamAddress;
14
+ }
15
+ export declare class EvDbStoredSnapshotData extends EvDbStoredSnapshotDataBase {
16
+ readonly state: any;
17
+ constructor(id: string, streamType: string, streamId: string, viewName: string, offset: number, storeOffset: number, state: any);
18
+ static fromAddress(address: EvDbViewAddress, offset: number, storeOffset: number, state: any): EvDbStoredSnapshotData;
19
+ private isEquals;
20
+ equalsSnapshotResult(result: EvDbStoredSnapshotResultRaw): boolean;
21
+ equalsStreamAddress(address: EvDbStreamAddress): boolean;
22
+ equalsViewAddress(address: EvDbViewAddress): boolean;
23
+ toSnapshotResult(): EvDbStoredSnapshotResultRaw;
24
+ }
@@ -0,0 +1,65 @@
1
+ import EvDbStreamAddress from "./EvDbStreamAddress.js";
2
+ // Base class equivalent
3
+ export class EvDbStoredSnapshotDataBase {
4
+ constructor(id, streamType, streamId, viewName, offset, storeOffset, storedAt = new Date()) {
5
+ this.id = id;
6
+ this.streamType = streamType;
7
+ this.streamId = streamId;
8
+ this.viewName = viewName;
9
+ this.offset = offset;
10
+ this.storeOffset = storeOffset;
11
+ this.storedAt = storedAt;
12
+ }
13
+ toStreamAddress() {
14
+ return new EvDbStreamAddress(this.streamType, this.streamId);
15
+ }
16
+ }
17
+ export class EvDbStoredSnapshotData extends EvDbStoredSnapshotDataBase {
18
+ // Primary constructor equivalent
19
+ constructor(id, streamType, streamId, viewName, offset, storeOffset, state) {
20
+ super(id, streamType, streamId, viewName, offset, storeOffset);
21
+ this.state = state;
22
+ }
23
+ // Secondary constructor (overload)
24
+ static fromAddress(address, offset, storeOffset, state) {
25
+ return new EvDbStoredSnapshotData(crypto.randomUUID(), address.streamType, address.streamId, address.viewName, offset, storeOffset, state);
26
+ }
27
+ // ------------------------------------------------------------------------------------
28
+ // Equality helpers (TypeScript cannot overload ==, so explicit methods are used)
29
+ // ------------------------------------------------------------------------------------
30
+ isEquals(obj) {
31
+ if (this.offset !== obj.offset)
32
+ return false;
33
+ // Compare any references (same as C# byte[] reference equality)
34
+ if (this.state !== obj.state)
35
+ return false;
36
+ return true;
37
+ }
38
+ equalsSnapshotResult(result) {
39
+ return this.isEquals(result);
40
+ }
41
+ // TODO: is this needed?
42
+ // equalsSnapshotCursor(cursor: EvDbSnapshotCursor): boolean {
43
+ // return this.isEquals(cursor);
44
+ // }
45
+ equalsStreamAddress(address) {
46
+ return (this.streamType === address.streamType &&
47
+ this.streamId === address.streamId);
48
+ }
49
+ equalsViewAddress(address) {
50
+ return (this.streamType === address.streamType &&
51
+ this.streamId === address.streamId &&
52
+ this.viewName === address.viewName);
53
+ }
54
+ // ------------------------------------------------------------------------------------
55
+ // Casting Overload (implicit operator in C# → explicit method in TS)
56
+ // ------------------------------------------------------------------------------------
57
+ toSnapshotResult() {
58
+ return {
59
+ offset: this.offset,
60
+ storedAt: this.storedAt,
61
+ state: this.state
62
+ };
63
+ }
64
+ }
65
+ //# sourceMappingURL=EvDbStoredSnapshotData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvDbStoredSnapshotData.js","sourceRoot":"","sources":["../src/EvDbStoredSnapshotData.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAMvD,wBAAwB;AACxB,MAAM,OAAgB,0BAA0B;IAC5C,YACoB,EAAU,EACV,UAAkB,EAClB,QAAgB,EAChB,QAAgB,EAChB,MAAc,EACd,WAAmB,EACnB,WAAiB,IAAI,IAAI,EAAE;QAN3B,OAAE,GAAF,EAAE,CAAQ;QACV,eAAU,GAAV,UAAU,CAAQ;QAClB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAQ;QACnB,aAAQ,GAAR,QAAQ,CAAmB;IAC3C,CAAC;IAEL,eAAe;QACX,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC;CACJ;AAED,MAAM,OAAO,sBAAuB,SAAQ,0BAA0B;IAGlE,iCAAiC;IACjC,YACI,EAAU,EACV,UAAkB,EAClB,QAAgB,EAChB,QAAgB,EAChB,MAAc,EACd,WAAmB,EACnB,KAAU;QAEV,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,mCAAmC;IACnC,MAAM,CAAC,WAAW,CACd,OAAwB,EACxB,MAAc,EACd,WAAmB,EACnB,KAAU;QAEV,OAAO,IAAI,sBAAsB,CAC7B,MAAM,CAAC,UAAU,EAAE,EACnB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,QAAQ,EAChB,MAAM,EACN,WAAW,EACX,KAAK,CACR,CAAC;IACN,CAAC;IAED,uFAAuF;IACvF,iFAAiF;IACjF,uFAAuF;IAE/E,QAAQ,CAAC,GAAgC;QAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE7C,gEAAgE;QAChE,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAE3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oBAAoB,CAAC,MAAmC;QACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,wBAAwB;IACxB,8DAA8D;IAC9D,oCAAoC;IACpC,IAAI;IAEJ,mBAAmB,CAAC,OAA0B;QAC1C,OAAO,CACH,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU;YACtC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,CACrC,CAAC;IACN,CAAC;IAED,iBAAiB,CAAC,OAAwB;QACtC,OAAO,CACH,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU;YACtC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;YAClC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,CACrC,CAAC;IACN,CAAC;IAED,uFAAuF;IACvF,qEAAqE;IACrE,uFAAuF;IACvF,gBAAgB;QACZ,OAAO;YACH,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,11 @@
1
+ import EvDbStoredSnapshotResultBase from "./EvDbStoredSnapshotResultBase.js";
2
+ export declare class EvDbStoredSnapshotResultRaw extends EvDbStoredSnapshotResultBase {
3
+ readonly state: any;
4
+ constructor(offset: number, storedAt: Date | undefined, state: any);
5
+ static readonly Empty: EvDbStoredSnapshotResultRaw;
6
+ }
7
+ export declare class EvDbStoredSnapshotResult<TState> extends EvDbStoredSnapshotResultBase {
8
+ readonly state: TState;
9
+ constructor(offset: number, storedAt: Date | undefined, state: TState);
10
+ static getEmptyState<TState>(): EvDbStoredSnapshotResult<TState>;
11
+ }
@@ -0,0 +1,18 @@
1
+ import EvDbStoredSnapshotResultBase from "./EvDbStoredSnapshotResultBase.js";
2
+ export class EvDbStoredSnapshotResultRaw extends EvDbStoredSnapshotResultBase {
3
+ constructor(offset, storedAt, state) {
4
+ super(offset, storedAt);
5
+ this.state = state;
6
+ }
7
+ }
8
+ EvDbStoredSnapshotResultRaw.Empty = new EvDbStoredSnapshotResultRaw(0, undefined, undefined);
9
+ export class EvDbStoredSnapshotResult extends EvDbStoredSnapshotResultBase {
10
+ constructor(offset, storedAt, state) {
11
+ super(offset, storedAt);
12
+ this.state = state;
13
+ }
14
+ static getEmptyState() {
15
+ return new EvDbStoredSnapshotResult(0, undefined, undefined);
16
+ }
17
+ }
18
+ //# sourceMappingURL=EvDbStoredSnapshotResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvDbStoredSnapshotResult.js","sourceRoot":"","sources":["../src/EvDbStoredSnapshotResult.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,MAAM,mCAAmC,CAAA;AAE5E,MAAM,OAAO,2BAA4B,SAAQ,4BAA4B;IAGzE,YACI,MAAc,EACd,QAA0B,EAC1B,KAAU;QAEV,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;;AAEe,iCAAK,GAAG,IAAI,2BAA2B,CACnD,CAAC,EACD,SAAS,EACT,SAAS,CACZ,CAAC;AAIN,MAAM,OAAO,wBACT,SAAQ,4BAA4B;IAIpC,YACI,MAAc,EACd,QAA0B,EAC1B,KAAa;QAEb,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,aAAa;QAChB,OAAO,IAAI,wBAAwB,CAC/B,CAAC,EACD,SAAS,EACT,SAA8B,CACjC,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,6 @@
1
+ export default class EvDbStoredSnapshotResultBase {
2
+ readonly offset: number;
3
+ readonly storedAt: Date | undefined;
4
+ protected constructor(offset: number, storedAt: Date | undefined);
5
+ static readonly None: EvDbStoredSnapshotResultBase;
6
+ }
@@ -0,0 +1,9 @@
1
+ class EvDbStoredSnapshotResultBase {
2
+ constructor(offset, storedAt) {
3
+ this.offset = offset;
4
+ this.storedAt = storedAt;
5
+ }
6
+ }
7
+ EvDbStoredSnapshotResultBase.None = new EvDbStoredSnapshotResultBase(0, undefined);
8
+ export default EvDbStoredSnapshotResultBase;
9
+ //# sourceMappingURL=EvDbStoredSnapshotResultBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvDbStoredSnapshotResultBase.js","sourceRoot":"","sources":["../src/EvDbStoredSnapshotResultBase.ts"],"names":[],"mappings":"AAAA,MAAqB,4BAA4B;IAI7C,YAAsB,MAAc,EAAE,QAA0B;QAC5D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;;AAEe,iCAAI,GAAG,IAAI,4BAA4B,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;eATrD,4BAA4B"}
@@ -0,0 +1,7 @@
1
+ import EvDbStreamCursor from "./EvDbStreamCursor.js";
2
+ export default class EvDbStreamAddress {
3
+ readonly streamType: string;
4
+ readonly streamId: string;
5
+ constructor(streamType: string, streamId: string);
6
+ equals(other: EvDbStreamCursor): boolean;
7
+ }
@@ -0,0 +1,11 @@
1
+ export default class EvDbStreamAddress {
2
+ constructor(streamType, streamId) {
3
+ this.streamType = streamType;
4
+ this.streamId = streamId;
5
+ }
6
+ equals(other) {
7
+ return this.streamType === other.streamType &&
8
+ this.streamId === other.streamId;
9
+ }
10
+ }
11
+ //# sourceMappingURL=EvDbStreamAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvDbStreamAddress.js","sourceRoot":"","sources":["../src/EvDbStreamAddress.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAClC,YAA4B,UAAkB,EAAkB,QAAgB;QAApD,eAAU,GAAV,UAAU,CAAQ;QAAkB,aAAQ,GAAR,QAAQ,CAAQ;IAAI,CAAC;IAErF,MAAM,CAAC,KAAuB;QAC1B,OAAO,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;YACvC,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC;IACzC,CAAC;CACJ"}
@@ -0,0 +1,19 @@
1
+ import EvDbStreamAddress from "./EvDbStreamAddress.js";
2
+ export default class EvDbStreamCursor extends EvDbStreamAddress {
3
+ readonly offset: number;
4
+ constructor(streamType: string, streamId: string, offset: number);
5
+ constructor(streamAddress: EvDbStreamAddress, offset: number);
6
+ /**
7
+ * Checks if cursor matches the given stream type
8
+ */
9
+ equals(other: EvDbStreamCursor): boolean;
10
+ isEqualsStreamType(streamType: string): boolean;
11
+ /**
12
+ * Checks if cursor matches the given stream address
13
+ */
14
+ isEqualsAddress(address: EvDbStreamAddress): boolean;
15
+ /**
16
+ * Converts cursor to stream address
17
+ */
18
+ toStreamAddress(): EvDbStreamAddress;
19
+ }
@@ -0,0 +1,45 @@
1
+ import EvDbStreamAddress from "./EvDbStreamAddress.js";
2
+ export default class EvDbStreamCursor extends EvDbStreamAddress {
3
+ constructor(streamTypeOrAddress, streamIdOrOffset, offset) {
4
+ if (typeof streamTypeOrAddress === 'string' && typeof streamIdOrOffset === 'string' && (!offset || typeof offset === 'number')) {
5
+ const streamType = streamTypeOrAddress;
6
+ const streamId = streamIdOrOffset;
7
+ super(streamType, streamId);
8
+ this.offset = offset ?? 0;
9
+ }
10
+ else if (streamTypeOrAddress instanceof EvDbStreamAddress && (!streamIdOrOffset || typeof streamIdOrOffset === 'number')) {
11
+ const streamType = streamTypeOrAddress.streamType;
12
+ const streamId = streamTypeOrAddress.streamId;
13
+ super(streamType, streamId);
14
+ this.offset = streamIdOrOffset ?? 0;
15
+ }
16
+ else {
17
+ throw new Error('Invalid constructor arguments for EvDbStreamCursor');
18
+ }
19
+ }
20
+ /**
21
+ * Checks if cursor matches the given stream type
22
+ */
23
+ equals(other) {
24
+ return this.streamType === other.streamType &&
25
+ this.streamId === other.streamId &&
26
+ this.offset === other.offset;
27
+ }
28
+ isEqualsStreamType(streamType) {
29
+ return this.streamType === streamType;
30
+ }
31
+ /**
32
+ * Checks if cursor matches the given stream address
33
+ */
34
+ isEqualsAddress(address) {
35
+ return this.streamType === address.streamType &&
36
+ this.streamId === address.streamId;
37
+ }
38
+ /**
39
+ * Converts cursor to stream address
40
+ */
41
+ toStreamAddress() {
42
+ return new EvDbStreamAddress(this.streamType, this.streamId);
43
+ }
44
+ }
45
+ //# sourceMappingURL=EvDbStreamCursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvDbStreamCursor.js","sourceRoot":"","sources":["../src/EvDbStreamCursor.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,iBAAiB;IAM3D,YAAY,mBAA+C,EAAE,gBAAiC,EAAE,MAAe;QAC3G,IAAI,OAAO,mBAAmB,KAAK,QAAQ,IAAI,OAAO,gBAAgB,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC7H,MAAM,UAAU,GAAG,mBAAmB,CAAC;YACvC,MAAM,QAAQ,GAAG,gBAAgB,CAAC;YAClC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,mBAAmB,YAAY,iBAAiB,IAAI,CAAC,CAAC,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,CAAC,EAAE,CAAC;YACzH,MAAM,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC;YAClD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC;YAC9C,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,gBAA0B,IAAI,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAC1E,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAuB;QAC1B,OAAO,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;YACvC,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;YAChC,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;IACrC,CAAC;IAEM,kBAAkB,CAAC,UAAkB;QACxC,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,OAA0B;QAC7C,OAAO,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU;YACzC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC;IAC3C,CAAC;IAED;;OAEG;IACI,eAAe;QAClB,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC;CACJ"}
@@ -0,0 +1,5 @@
1
+ import EvDbStreamAddress from "@eventualize/types/EvDbStreamAddress";
2
+ export default class EvDbViewAddress extends EvDbStreamAddress {
3
+ readonly viewName: string;
4
+ constructor(streamAddressOrType: EvDbStreamAddress | string, viewNameOrStreamId: string, viewName?: string);
5
+ }