@bgord/bun 1.12.11 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/dist/event-finder-noop.adapter.d.ts +9 -0
  2. package/dist/event-finder-noop.adapter.d.ts.map +1 -0
  3. package/dist/event-finder-noop.adapter.js +10 -0
  4. package/dist/event-finder-noop.adapter.js.map +1 -0
  5. package/dist/event-finder.port.d.ts +6 -0
  6. package/dist/event-finder.port.d.ts.map +1 -0
  7. package/dist/event-finder.port.js +2 -0
  8. package/dist/event-finder.port.js.map +1 -0
  9. package/dist/event-inserter-noop.adapter.d.ts +6 -0
  10. package/dist/event-inserter-noop.adapter.d.ts.map +1 -0
  11. package/dist/event-inserter-noop.adapter.js +6 -0
  12. package/dist/event-inserter-noop.adapter.js.map +1 -0
  13. package/dist/event-inserter.port.d.ts +5 -0
  14. package/dist/event-inserter.port.d.ts.map +1 -0
  15. package/dist/event-inserter.port.js +2 -0
  16. package/dist/event-inserter.port.js.map +1 -0
  17. package/dist/event-revision-assigner.adapter.d.ts +7 -0
  18. package/dist/event-revision-assigner.adapter.d.ts.map +1 -0
  19. package/dist/event-revision-assigner.adapter.js +7 -0
  20. package/dist/event-revision-assigner.adapter.js.map +1 -0
  21. package/dist/event-revision-assigner.port.d.ts +5 -0
  22. package/dist/event-revision-assigner.port.d.ts.map +1 -0
  23. package/dist/event-revision-assigner.port.js +2 -0
  24. package/dist/event-revision-assigner.port.js.map +1 -0
  25. package/dist/event-serializer-collecting.adapter.d.ts +8 -0
  26. package/dist/event-serializer-collecting.adapter.d.ts.map +1 -0
  27. package/dist/event-serializer-collecting.adapter.js +13 -0
  28. package/dist/event-serializer-collecting.adapter.js.map +1 -0
  29. package/dist/event-serializer-json.adapter.d.ts +6 -0
  30. package/dist/event-serializer-json.adapter.d.ts.map +1 -0
  31. package/dist/event-serializer-json.adapter.js +9 -0
  32. package/dist/event-serializer-json.adapter.js.map +1 -0
  33. package/dist/event-serializer.port.d.ts +5 -0
  34. package/dist/event-serializer.port.d.ts.map +1 -0
  35. package/dist/event-serializer.port.js +2 -0
  36. package/dist/event-serializer.port.js.map +1 -0
  37. package/dist/event-store-collecting.adapter.d.ts +10 -0
  38. package/dist/event-store-collecting.adapter.d.ts.map +1 -0
  39. package/dist/event-store-collecting.adapter.js +11 -0
  40. package/dist/event-store-collecting.adapter.js.map +1 -0
  41. package/dist/event-store-dispatching.adapter.d.ts +17 -0
  42. package/dist/event-store-dispatching.adapter.d.ts.map +1 -0
  43. package/dist/event-store-dispatching.adapter.js +15 -0
  44. package/dist/event-store-dispatching.adapter.js.map +1 -0
  45. package/dist/event-store-noop.adapter.d.ts +9 -0
  46. package/dist/event-store-noop.adapter.d.ts.map +1 -0
  47. package/dist/event-store-noop.adapter.js +9 -0
  48. package/dist/event-store-noop.adapter.js.map +1 -0
  49. package/dist/event-store.adapter.d.ts +20 -0
  50. package/dist/event-store.adapter.d.ts.map +1 -0
  51. package/dist/event-store.adapter.js +27 -0
  52. package/dist/event-store.adapter.js.map +1 -0
  53. package/dist/event-store.port.d.ts +8 -0
  54. package/dist/event-store.port.d.ts.map +1 -0
  55. package/dist/event-store.port.js +2 -0
  56. package/dist/event-store.port.js.map +1 -0
  57. package/dist/event-validator-registry-zod.adapter.d.ts +24 -0
  58. package/dist/event-validator-registry-zod.adapter.d.ts.map +1 -0
  59. package/dist/event-validator-registry-zod.adapter.js +25 -0
  60. package/dist/event-validator-registry-zod.adapter.js.map +1 -0
  61. package/dist/event-validator-registry.port.d.ts +7 -0
  62. package/dist/event-validator-registry.port.d.ts.map +1 -0
  63. package/dist/event-validator-registry.port.js +2 -0
  64. package/dist/event-validator-registry.port.js.map +1 -0
  65. package/dist/event.types.d.ts +13 -14
  66. package/dist/event.types.d.ts.map +1 -1
  67. package/dist/index.d.ts +22 -13
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +22 -13
  70. package/dist/index.js.map +1 -1
  71. package/dist/message-handler-bare.strategy.d.ts +8 -0
  72. package/dist/message-handler-bare.strategy.d.ts.map +1 -0
  73. package/dist/message-handler-bare.strategy.js +6 -0
  74. package/dist/message-handler-bare.strategy.js.map +1 -0
  75. package/dist/message-handler-noop.strategy.d.ts +8 -0
  76. package/dist/message-handler-noop.strategy.d.ts.map +1 -0
  77. package/dist/message-handler-noop.strategy.js +6 -0
  78. package/dist/message-handler-noop.strategy.js.map +1 -0
  79. package/dist/message-handler-with-logger.strategy.d.ts +17 -0
  80. package/dist/message-handler-with-logger.strategy.d.ts.map +1 -0
  81. package/dist/{event-handler-with-logger.strategy.js → message-handler-with-logger.strategy.js} +7 -7
  82. package/dist/message-handler-with-logger.strategy.js.map +1 -0
  83. package/dist/message-handler.strategy.d.ts +7 -0
  84. package/dist/message-handler.strategy.d.ts.map +1 -0
  85. package/dist/message-handler.strategy.js +2 -0
  86. package/dist/message-handler.strategy.js.map +1 -0
  87. package/dist/modules/preferences/command-handlers/handleSetUserLanguageCommand.d.ts +2 -2
  88. package/dist/modules/preferences/command-handlers/handleSetUserLanguageCommand.d.ts.map +1 -1
  89. package/dist/modules/system/services/passage-of-time-hourly.service.d.ts +2 -2
  90. package/dist/modules/system/services/passage-of-time-hourly.service.d.ts.map +1 -1
  91. package/dist/modules/system/services/passage-of-time-minute.service.d.ts +2 -2
  92. package/dist/modules/system/services/passage-of-time-minute.service.d.ts.map +1 -1
  93. package/dist/security-countermeasure-ban.strategy.d.ts +2 -2
  94. package/dist/security-countermeasure-ban.strategy.d.ts.map +1 -1
  95. package/dist/sse-hono.handler.d.ts +20 -0
  96. package/dist/sse-hono.handler.d.ts.map +1 -0
  97. package/dist/sse-hono.handler.js +35 -0
  98. package/dist/sse-hono.handler.js.map +1 -0
  99. package/dist/sse-registry-collecting.adapter.d.ts +6 -6
  100. package/dist/sse-registry-collecting.adapter.d.ts.map +1 -1
  101. package/dist/sse-registry-collecting.adapter.js +4 -4
  102. package/dist/sse-registry-collecting.adapter.js.map +1 -1
  103. package/dist/sse-registry-noop.adapter.d.ts +5 -5
  104. package/dist/sse-registry-noop.adapter.d.ts.map +1 -1
  105. package/dist/sse-registry-noop.adapter.js +3 -3
  106. package/dist/sse-registry-noop.adapter.js.map +1 -1
  107. package/dist/sse-registry-with-logger.adapter.d.ts +5 -5
  108. package/dist/sse-registry-with-logger.adapter.d.ts.map +1 -1
  109. package/dist/sse-registry-with-logger.adapter.js +11 -11
  110. package/dist/sse-registry-with-logger.adapter.js.map +1 -1
  111. package/dist/sse-registry.adapter.d.ts +6 -6
  112. package/dist/sse-registry.adapter.d.ts.map +1 -1
  113. package/dist/sse-registry.adapter.js +10 -10
  114. package/dist/sse-registry.adapter.js.map +1 -1
  115. package/dist/sse-registry.port.d.ts +5 -4
  116. package/dist/sse-registry.port.d.ts.map +1 -1
  117. package/dist/tsconfig.tsbuildinfo +1 -1
  118. package/package.json +8 -8
  119. package/readme.md +21 -12
  120. package/src/event-finder-noop.adapter.ts +14 -0
  121. package/src/event-finder.port.ts +9 -0
  122. package/src/event-inserter-noop.adapter.ts +10 -0
  123. package/src/event-inserter.port.ts +5 -0
  124. package/src/event-revision-assigner.adapter.ts +13 -0
  125. package/src/event-revision-assigner.port.ts +8 -0
  126. package/src/event-serializer-collecting.adapter.ts +19 -0
  127. package/src/event-serializer-json.adapter.ts +11 -0
  128. package/src/event-serializer.port.ts +4 -0
  129. package/src/event-store-collecting.adapter.ts +21 -0
  130. package/src/event-store-dispatching.adapter.ts +29 -0
  131. package/src/event-store-noop.adapter.ts +17 -0
  132. package/src/event-store.adapter.ts +49 -0
  133. package/src/event-store.port.ts +12 -0
  134. package/src/event-validator-registry-zod.adapter.ts +47 -0
  135. package/src/event-validator-registry.port.ts +7 -0
  136. package/src/event.types.ts +12 -15
  137. package/src/index.ts +22 -13
  138. package/src/message-handler-bare.strategy.ts +11 -0
  139. package/src/message-handler-noop.strategy.ts +11 -0
  140. package/src/message-handler-with-logger.strategy.ts +32 -0
  141. package/src/message-handler.strategy.ts +8 -0
  142. package/src/modules/preferences/command-handlers/handleSetUserLanguageCommand.ts +2 -2
  143. package/src/modules/system/services/passage-of-time-hourly.service.ts +2 -2
  144. package/src/modules/system/services/passage-of-time-minute.service.ts +2 -2
  145. package/src/security-countermeasure-ban.strategy.ts +2 -2
  146. package/src/sse-hono.handler.ts +52 -0
  147. package/src/sse-registry-collecting.adapter.ts +7 -7
  148. package/src/sse-registry-noop.adapter.ts +5 -5
  149. package/src/sse-registry-with-logger.adapter.ts +13 -13
  150. package/src/sse-registry.adapter.ts +11 -11
  151. package/src/sse-registry.port.ts +6 -4
  152. package/dist/dispatching-event-store.d.ts +0 -15
  153. package/dist/dispatching-event-store.d.ts.map +0 -1
  154. package/dist/dispatching-event-store.js +0 -16
  155. package/dist/dispatching-event-store.js.map +0 -1
  156. package/dist/event-handler-bare.strategy.d.ts +0 -6
  157. package/dist/event-handler-bare.strategy.d.ts.map +0 -1
  158. package/dist/event-handler-bare.strategy.js +0 -6
  159. package/dist/event-handler-bare.strategy.js.map +0 -1
  160. package/dist/event-handler-noop.strategy.d.ts +0 -6
  161. package/dist/event-handler-noop.strategy.d.ts.map +0 -1
  162. package/dist/event-handler-noop.strategy.js +0 -6
  163. package/dist/event-handler-noop.strategy.js.map +0 -1
  164. package/dist/event-handler-with-logger.strategy.d.ts +0 -15
  165. package/dist/event-handler-with-logger.strategy.d.ts.map +0 -1
  166. package/dist/event-handler-with-logger.strategy.js.map +0 -1
  167. package/dist/event-handler.strategy.d.ts +0 -5
  168. package/dist/event-handler.strategy.d.ts.map +0 -1
  169. package/dist/event-handler.strategy.js +0 -2
  170. package/dist/event-handler.strategy.js.map +0 -1
  171. package/dist/event-store-like.types.d.ts +0 -5
  172. package/dist/event-store-like.types.d.ts.map +0 -1
  173. package/dist/event-store-like.types.js +0 -2
  174. package/dist/event-store-like.types.js.map +0 -1
  175. package/dist/event-store.d.ts +0 -22
  176. package/dist/event-store.d.ts.map +0 -1
  177. package/dist/event-store.js +0 -37
  178. package/dist/event-store.js.map +0 -1
  179. package/dist/sse-connection-hono.adapter.d.ts +0 -19
  180. package/dist/sse-connection-hono.adapter.d.ts.map +0 -1
  181. package/dist/sse-connection-hono.adapter.js +0 -38
  182. package/dist/sse-connection-hono.adapter.js.map +0 -1
  183. package/dist/sse-connection-hono.handler.d.ts +0 -17
  184. package/dist/sse-connection-hono.handler.d.ts.map +0 -1
  185. package/dist/sse-connection-hono.handler.js +0 -19
  186. package/dist/sse-connection-hono.handler.js.map +0 -1
  187. package/dist/sse-connection-noop.adapter.d.ts +0 -7
  188. package/dist/sse-connection-noop.adapter.d.ts.map +0 -1
  189. package/dist/sse-connection-noop.adapter.js +0 -5
  190. package/dist/sse-connection-noop.adapter.js.map +0 -1
  191. package/dist/sse-connection-with-logger.adapter.d.ts +0 -16
  192. package/dist/sse-connection-with-logger.adapter.d.ts.map +0 -1
  193. package/dist/sse-connection-with-logger.adapter.js +0 -27
  194. package/dist/sse-connection-with-logger.adapter.js.map +0 -1
  195. package/dist/sse-connection.port.d.ts +0 -6
  196. package/dist/sse-connection.port.d.ts.map +0 -1
  197. package/dist/sse-connection.port.js +0 -2
  198. package/dist/sse-connection.port.js.map +0 -1
  199. package/src/dispatching-event-store.ts +0 -34
  200. package/src/event-handler-bare.strategy.ts +0 -8
  201. package/src/event-handler-noop.strategy.ts +0 -8
  202. package/src/event-handler-with-logger.strategy.ts +0 -29
  203. package/src/event-handler.strategy.ts +0 -5
  204. package/src/event-store-like.types.ts +0 -5
  205. package/src/event-store.ts +0 -64
  206. package/src/sse-connection-hono.adapter.ts +0 -49
  207. package/src/sse-connection-hono.handler.ts +0 -22
  208. package/src/sse-connection-noop.adapter.ts +0 -8
  209. package/src/sse-connection-with-logger.adapter.ts +0 -34
  210. package/src/sse-connection.port.ts +0 -7
@@ -0,0 +1,9 @@
1
+ import type { GenericEvent, GenericEventSerialized } from "./event.types";
2
+ import type { EventFinderPort } from "./event-finder.port";
3
+ import type { EventStreamType } from "./event-stream.vo";
4
+ export declare class EventFinderNoopAdapter implements EventFinderPort {
5
+ private readonly events;
6
+ constructor(events: ReadonlyArray<GenericEventSerialized>);
7
+ find(_stream: EventStreamType, _names: ReadonlyArray<GenericEvent["name"]>): Promise<ReadonlyArray<GenericEventSerialized>>;
8
+ }
9
+ //# sourceMappingURL=event-finder-noop.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-finder-noop.adapter.d.ts","sourceRoot":"","sources":["../src/event-finder-noop.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,qBAAa,sBAAuB,YAAW,eAAe;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa,CAAC,sBAAsB,CAAC;IAEpE,IAAI,CACR,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAC1C,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;CAGlD"}
@@ -0,0 +1,10 @@
1
+ export class EventFinderNoopAdapter {
2
+ events;
3
+ constructor(events) {
4
+ this.events = events;
5
+ }
6
+ async find(_stream, _names) {
7
+ return this.events;
8
+ }
9
+ }
10
+ //# sourceMappingURL=event-finder-noop.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-finder-noop.adapter.js","sourceRoot":"","sources":["../src/event-finder-noop.adapter.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,sBAAsB;IACJ;IAA7B,YAA6B,MAA6C;QAA7C,WAAM,GAAN,MAAM,CAAuC;IAAG,CAAC;IAE9E,KAAK,CAAC,IAAI,CACR,OAAwB,EACxB,MAA2C;QAE3C,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import type { GenericEvent, GenericEventSerialized } from "./event.types";
2
+ import type { EventStreamType } from "./event-stream.vo";
3
+ export interface EventFinderPort {
4
+ find(stream: EventStreamType, names: ReadonlyArray<GenericEvent["name"]>): Promise<ReadonlyArray<GenericEventSerialized>>;
5
+ }
6
+ //# sourceMappingURL=event-finder.port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-finder.port.d.ts","sourceRoot":"","sources":["../src/event-finder.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,WAAW,eAAe;IAC9B,IAAI,CACF,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GACzC,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC;CACnD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=event-finder.port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-finder.port.js","sourceRoot":"","sources":["../src/event-finder.port.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { GenericEventSerialized } from "./event.types";
2
+ import type { EventInserterPort } from "./event-inserter.port";
3
+ export declare class EventInserterNoopAdapter implements EventInserterPort {
4
+ insert(events: ReadonlyArray<GenericEventSerialized>): Promise<ReadonlyArray<GenericEventSerialized>>;
5
+ }
6
+ //# sourceMappingURL=event-inserter-noop.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-inserter-noop.adapter.d.ts","sourceRoot":"","sources":["../src/event-inserter-noop.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,qBAAa,wBAAyB,YAAW,iBAAiB;IAC1D,MAAM,CACV,MAAM,EAAE,aAAa,CAAC,sBAAsB,CAAC,GAC5C,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;CAGlD"}
@@ -0,0 +1,6 @@
1
+ export class EventInserterNoopAdapter {
2
+ async insert(events) {
3
+ return events;
4
+ }
5
+ }
6
+ //# sourceMappingURL=event-inserter-noop.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-inserter-noop.adapter.js","sourceRoot":"","sources":["../src/event-inserter-noop.adapter.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,wBAAwB;IACnC,KAAK,CAAC,MAAM,CACV,MAA6C;QAE7C,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import type { GenericEventSerialized } from "./event.types";
2
+ export interface EventInserterPort {
3
+ insert(events: ReadonlyArray<GenericEventSerialized>): Promise<ReadonlyArray<GenericEventSerialized>>;
4
+ }
5
+ //# sourceMappingURL=event-inserter.port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-inserter.port.d.ts","sourceRoot":"","sources":["../src/event-inserter.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC;CACvG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=event-inserter.port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-inserter.port.js","sourceRoot":"","sources":["../src/event-inserter.port.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { GenericEventSerialized } from "./event.types";
2
+ import type { EventRevisionAssignerPort } from "./event-revision-assigner.port";
3
+ export declare class EventRevisionAssignerAdapter implements EventRevisionAssignerPort {
4
+ static readonly EMPTY_STREAM_REVISION = -1;
5
+ assign(events: ReadonlyArray<GenericEventSerialized>, currentMax: number): ReadonlyArray<GenericEventSerialized>;
6
+ }
7
+ //# sourceMappingURL=event-revision-assigner.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-revision-assigner.adapter.d.ts","sourceRoot":"","sources":["../src/event-revision-assigner.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAEhF,qBAAa,4BAA6B,YAAW,yBAAyB;IAC5E,MAAM,CAAC,QAAQ,CAAC,qBAAqB,MAAM;IAE3C,MAAM,CACJ,MAAM,EAAE,aAAa,CAAC,sBAAsB,CAAC,EAC7C,UAAU,EAAE,MAAM,GACjB,aAAa,CAAC,sBAAsB,CAAC;CAGzC"}
@@ -0,0 +1,7 @@
1
+ export class EventRevisionAssignerAdapter {
2
+ static EMPTY_STREAM_REVISION = -1;
3
+ assign(events, currentMax) {
4
+ return events.map((event, index) => ({ ...event, revision: currentMax + index + 1 }));
5
+ }
6
+ }
7
+ //# sourceMappingURL=event-revision-assigner.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-revision-assigner.adapter.js","sourceRoot":"","sources":["../src/event-revision-assigner.adapter.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,4BAA4B;IACvC,MAAM,CAAU,qBAAqB,GAAG,CAAC,CAAC,CAAC;IAE3C,MAAM,CACJ,MAA6C,EAC7C,UAAkB;QAElB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,UAAU,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACxF,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { GenericEventSerialized } from "./event.types";
2
+ export interface EventRevisionAssignerPort {
3
+ assign(events: ReadonlyArray<GenericEventSerialized>, currentMax: number): ReadonlyArray<GenericEventSerialized>;
4
+ }
5
+ //# sourceMappingURL=event-revision-assigner.port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-revision-assigner.port.d.ts","sourceRoot":"","sources":["../src/event-revision-assigner.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,WAAW,yBAAyB;IACxC,MAAM,CACJ,MAAM,EAAE,aAAa,CAAC,sBAAsB,CAAC,EAC7C,UAAU,EAAE,MAAM,GACjB,aAAa,CAAC,sBAAsB,CAAC,CAAC;CAC1C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=event-revision-assigner.port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-revision-assigner.port.js","sourceRoot":"","sources":["../src/event-revision-assigner.port.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { EventSerializerPort } from "./event-serializer.port";
2
+ export declare class EventSerializerCollectingAdapter implements EventSerializerPort {
3
+ readonly serialized: Array<unknown>;
4
+ readonly deserialized: Array<string>;
5
+ serialize(payload: unknown): string;
6
+ deserialize(raw: string): unknown;
7
+ }
8
+ //# sourceMappingURL=event-serializer-collecting.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-serializer-collecting.adapter.d.ts","sourceRoot":"","sources":["../src/event-serializer-collecting.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,qBAAa,gCAAiC,YAAW,mBAAmB;IAC1E,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAM;IAEzC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAE1C,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAMnC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAKlC"}
@@ -0,0 +1,13 @@
1
+ export class EventSerializerCollectingAdapter {
2
+ serialized = [];
3
+ deserialized = [];
4
+ serialize(payload) {
5
+ this.serialized.push(payload);
6
+ return JSON.stringify(payload);
7
+ }
8
+ deserialize(raw) {
9
+ this.deserialized.push(raw);
10
+ return JSON.parse(raw);
11
+ }
12
+ }
13
+ //# sourceMappingURL=event-serializer-collecting.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-serializer-collecting.adapter.js","sourceRoot":"","sources":["../src/event-serializer-collecting.adapter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,gCAAgC;IAClC,UAAU,GAAmB,EAAE,CAAC;IAEhC,YAAY,GAAkB,EAAE,CAAC;IAE1C,SAAS,CAAC,OAAgB;QACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE9B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import type { EventSerializerPort } from "./event-serializer.port";
2
+ export declare class EventSerializerJsonAdapter implements EventSerializerPort {
3
+ serialize(payload: unknown): string;
4
+ deserialize(raw: string): unknown;
5
+ }
6
+ //# sourceMappingURL=event-serializer-json.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-serializer-json.adapter.d.ts","sourceRoot":"","sources":["../src/event-serializer-json.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,qBAAa,0BAA2B,YAAW,mBAAmB;IACpE,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAInC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAGlC"}
@@ -0,0 +1,9 @@
1
+ export class EventSerializerJsonAdapter {
2
+ serialize(payload) {
3
+ return JSON.stringify(payload);
4
+ }
5
+ deserialize(raw) {
6
+ return JSON.parse(raw);
7
+ }
8
+ }
9
+ //# sourceMappingURL=event-serializer-json.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-serializer-json.adapter.js","sourceRoot":"","sources":["../src/event-serializer-json.adapter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,0BAA0B;IACrC,SAAS,CAAC,OAAgB;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ export interface EventSerializerPort {
2
+ serialize(payload: unknown): string;
3
+ deserialize(raw: string): unknown;
4
+ }
5
+ //# sourceMappingURL=event-serializer.port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-serializer.port.d.ts","sourceRoot":"","sources":["../src/event-serializer.port.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IACpC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=event-serializer.port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-serializer.port.js","sourceRoot":"","sources":["../src/event-serializer.port.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import type { GenericEvent } from "./event.types";
2
+ import type { EventStorePort } from "./event-store.port";
3
+ import type { EventStreamType } from "./event-stream.vo";
4
+ import type { EventValidatorRegistryPort } from "./event-validator-registry.port";
5
+ export declare class EventStoreCollectingAdapter<TEvent extends GenericEvent> implements EventStorePort<TEvent> {
6
+ readonly saved: Array<TEvent>;
7
+ find<FoundEvent extends TEvent>(_registry: EventValidatorRegistryPort<FoundEvent>, _stream: EventStreamType): Promise<ReadonlyArray<FoundEvent>>;
8
+ save(events: ReadonlyArray<TEvent>): Promise<ReadonlyArray<TEvent>>;
9
+ }
10
+ //# sourceMappingURL=event-store-collecting.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-store-collecting.adapter.d.ts","sourceRoot":"","sources":["../src/event-store-collecting.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAElF,qBAAa,2BAA2B,CAAC,MAAM,SAAS,YAAY,CAAE,YAAW,cAAc,CAAC,MAAM,CAAC;IACrG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAE7B,IAAI,CAAC,UAAU,SAAS,MAAM,EAClC,SAAS,EAAE,0BAA0B,CAAC,UAAU,CAAC,EACjD,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAI/B,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;CAK1E"}
@@ -0,0 +1,11 @@
1
+ export class EventStoreCollectingAdapter {
2
+ saved = [];
3
+ async find(_registry, _stream) {
4
+ return [];
5
+ }
6
+ async save(events) {
7
+ this.saved.push(...events);
8
+ return [...events];
9
+ }
10
+ }
11
+ //# sourceMappingURL=event-store-collecting.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-store-collecting.adapter.js","sourceRoot":"","sources":["../src/event-store-collecting.adapter.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,2BAA2B;IAC7B,KAAK,GAAkB,EAAE,CAAC;IAEnC,KAAK,CAAC,IAAI,CACR,SAAiD,EACjD,OAAwB;QAExB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAA6B;QACtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QAE3B,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;IACrB,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import type { GenericEvent } from "./event.types";
2
+ import type { EventStorePort } from "./event-store.port";
3
+ import type { EventStreamType } from "./event-stream.vo";
4
+ import type { EventValidatorRegistryPort } from "./event-validator-registry.port";
5
+ import type { EventBusPort } from "./message-bus.port";
6
+ type Dependencies<TEvent extends GenericEvent> = {
7
+ inner: EventStorePort<TEvent>;
8
+ EventBus: EventBusPort<TEvent>;
9
+ };
10
+ export declare class EventStoreDispatchingAdapter<Event extends GenericEvent> implements EventStorePort<Event> {
11
+ private readonly deps;
12
+ constructor(deps: Dependencies<Event>);
13
+ find<FoundEvent extends Event>(registry: EventValidatorRegistryPort<FoundEvent>, stream: EventStreamType): Promise<ReadonlyArray<FoundEvent>>;
14
+ save(events: ReadonlyArray<Event>): Promise<ReadonlyArray<Event>>;
15
+ }
16
+ export {};
17
+ //# sourceMappingURL=event-store-dispatching.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-store-dispatching.adapter.d.ts","sourceRoot":"","sources":["../src/event-store-dispatching.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,KAAK,YAAY,CAAC,MAAM,SAAS,YAAY,IAAI;IAC/C,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CAChC,CAAC;AAEF,qBAAa,4BAA4B,CAAC,KAAK,SAAS,YAAY,CAAE,YAAW,cAAc,CAAC,KAAK,CAAC;IACxF,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;IAEhD,IAAI,CAAC,UAAU,SAAS,KAAK,EACjC,QAAQ,EAAE,0BAA0B,CAAC,UAAU,CAAC,EAChD,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAI/B,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAOxE"}
@@ -0,0 +1,15 @@
1
+ export class EventStoreDispatchingAdapter {
2
+ deps;
3
+ constructor(deps) {
4
+ this.deps = deps;
5
+ }
6
+ async find(registry, stream) {
7
+ return this.deps.inner.find(registry, stream);
8
+ }
9
+ async save(events) {
10
+ const saved = await this.deps.inner.save(events);
11
+ await Promise.all(saved.map((event) => this.deps.EventBus.emit(event)));
12
+ return saved;
13
+ }
14
+ }
15
+ //# sourceMappingURL=event-store-dispatching.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-store-dispatching.adapter.js","sourceRoot":"","sources":["../src/event-store-dispatching.adapter.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,4BAA4B;IACV;IAA7B,YAA6B,IAAyB;QAAzB,SAAI,GAAJ,IAAI,CAAqB;IAAG,CAAC;IAE1D,KAAK,CAAC,IAAI,CACR,QAAgD,EAChD,MAAuB;QAEvB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAA4B;QACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjD,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAExE,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import type { GenericEvent } from "./event.types";
2
+ import type { EventStorePort } from "./event-store.port";
3
+ import type { EventStreamType } from "./event-stream.vo";
4
+ import type { EventValidatorRegistryPort } from "./event-validator-registry.port";
5
+ export declare class EventStoreNoopAdapter<Event extends GenericEvent> implements EventStorePort<Event> {
6
+ find<FoundEvent extends Event>(_registry: EventValidatorRegistryPort<FoundEvent>, _stream: EventStreamType): Promise<ReadonlyArray<FoundEvent>>;
7
+ save(_events: ReadonlyArray<Event>): Promise<ReadonlyArray<Event>>;
8
+ }
9
+ //# sourceMappingURL=event-store-noop.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-store-noop.adapter.d.ts","sourceRoot":"","sources":["../src/event-store-noop.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAElF,qBAAa,qBAAqB,CAAC,KAAK,SAAS,YAAY,CAAE,YAAW,cAAc,CAAC,KAAK,CAAC;IACvF,IAAI,CAAC,UAAU,SAAS,KAAK,EACjC,SAAS,EAAE,0BAA0B,CAAC,UAAU,CAAC,EACjD,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAI/B,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAGzE"}
@@ -0,0 +1,9 @@
1
+ export class EventStoreNoopAdapter {
2
+ async find(_registry, _stream) {
3
+ return [];
4
+ }
5
+ async save(_events) {
6
+ return [];
7
+ }
8
+ }
9
+ //# sourceMappingURL=event-store-noop.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-store-noop.adapter.js","sourceRoot":"","sources":["../src/event-store-noop.adapter.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,qBAAqB;IAChC,KAAK,CAAC,IAAI,CACR,SAAiD,EACjD,OAAwB;QAExB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAA6B;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import type { GenericEvent } from "./event.types";
2
+ import type { EventFinderPort } from "./event-finder.port";
3
+ import type { EventInserterPort } from "./event-inserter.port";
4
+ import type { EventSerializerPort } from "./event-serializer.port";
5
+ import type { EventStorePort } from "./event-store.port";
6
+ import type { EventStreamType } from "./event-stream.vo";
7
+ import type { EventValidatorRegistryPort } from "./event-validator-registry.port";
8
+ type Config = {
9
+ finder: EventFinderPort;
10
+ inserter: EventInserterPort;
11
+ serializer: EventSerializerPort;
12
+ };
13
+ export declare class EventStoreAdapter<Event extends GenericEvent> implements EventStorePort<Event> {
14
+ private readonly config;
15
+ constructor(config: Config);
16
+ find<FoundEvent extends Event>(registry: EventValidatorRegistryPort<FoundEvent>, stream: EventStreamType): Promise<ReadonlyArray<FoundEvent>>;
17
+ save(events: ReadonlyArray<Event>): Promise<ReadonlyArray<Event>>;
18
+ }
19
+ export {};
20
+ //# sourceMappingURL=event-store.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-store.adapter.d.ts","sourceRoot":"","sources":["../src/event-store.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAElF,KAAK,MAAM,GAAG;IACZ,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAIF,qBAAa,iBAAiB,CAAC,KAAK,SAAS,YAAY,CAAE,YAAW,cAAc,CAAC,KAAK,CAAC;IAC7E,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAErC,IAAI,CAAC,UAAU,SAAS,KAAK,EACjC,QAAQ,EAAE,0BAA0B,CAAC,UAAU,CAAC,EAChD,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAQ/B,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAkBxE"}
@@ -0,0 +1,27 @@
1
+ const EventStoreAdapterError = { UniqueStream: "event.store.adapter.error.unique.stream" };
2
+ export class EventStoreAdapter {
3
+ config;
4
+ constructor(config) {
5
+ this.config = config;
6
+ }
7
+ async find(registry, stream) {
8
+ const events = await this.config.finder.find(stream, registry.names);
9
+ return events
10
+ .map((event) => ({ ...event, payload: this.config.serializer.deserialize(event.payload) }))
11
+ .map((event) => registry.validate(event));
12
+ }
13
+ async save(events) {
14
+ if (!events[0])
15
+ return [];
16
+ const stream = events[0].stream;
17
+ if (!events.every((event) => event.stream === stream)) {
18
+ throw new Error(EventStoreAdapterError.UniqueStream);
19
+ }
20
+ const serialized = await this.config.inserter.insert(events.map((event) => ({ ...event, payload: this.config.serializer.serialize(event.payload) })));
21
+ return serialized.map((event) => ({
22
+ ...event,
23
+ payload: this.config.serializer.deserialize(event.payload),
24
+ }));
25
+ }
26
+ }
27
+ //# sourceMappingURL=event-store.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-store.adapter.js","sourceRoot":"","sources":["../src/event-store.adapter.ts"],"names":[],"mappings":"AAcA,MAAM,sBAAsB,GAAG,EAAE,YAAY,EAAE,yCAAyC,EAAE,CAAC;AAE3F,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C,KAAK,CAAC,IAAI,CACR,QAAgD,EAChD,MAAuB;QAEvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAErE,OAAO,MAAM;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aAC1F,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAA4B;QACrC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAE1B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAEhC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAClD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAChG,CAAC;QAEF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChC,GAAG,KAAK;YACR,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;SAC3D,CAAC,CAAiB,CAAC;IACtB,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import type { GenericEvent } from "./event.types";
2
+ import type { EventStreamType } from "./event-stream.vo";
3
+ import type { EventValidatorRegistryPort } from "./event-validator-registry.port";
4
+ export interface EventStorePort<Event extends GenericEvent> {
5
+ find<FoundEvent extends Event>(registry: EventValidatorRegistryPort<FoundEvent>, stream: EventStreamType): Promise<ReadonlyArray<FoundEvent>>;
6
+ save(events: ReadonlyArray<Event>): Promise<ReadonlyArray<Event>>;
7
+ }
8
+ //# sourceMappingURL=event-store.port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-store.port.d.ts","sourceRoot":"","sources":["../src/event-store.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAElF,MAAM,WAAW,cAAc,CAAC,KAAK,SAAS,YAAY;IACxD,IAAI,CAAC,UAAU,SAAS,KAAK,EAC3B,QAAQ,EAAE,0BAA0B,CAAC,UAAU,CAAC,EAChD,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;IAEtC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;CACnE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=event-store.port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-store.port.js","sourceRoot":"","sources":["../src/event-store.port.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ import type * as z from "zod/v4";
2
+ import type { GenericEvent } from "./event.types";
3
+ import type { EventValidatorRegistryPort } from "./event-validator-registry.port";
4
+ export type GenericEventSchema = z.ZodObject<{
5
+ id: z.ZodType<string>;
6
+ correlationId: z.ZodType<string>;
7
+ createdAt: z.ZodType<number>;
8
+ stream: z.ZodString;
9
+ revision: z.ZodOptional<z.ZodType<number>>;
10
+ name: z.ZodLiteral<string>;
11
+ version: z.ZodLiteral<number>;
12
+ payload: z.ZodType<any>;
13
+ }>;
14
+ export type GenericParsedEventSchema = z.ZodObject<Omit<GenericEventSchema["shape"], "payload"> & {
15
+ payload: z.ZodString;
16
+ }>;
17
+ export declare class EventValidatorRegistryZodAdapter<TEvent> implements EventValidatorRegistryPort<TEvent> {
18
+ private readonly map;
19
+ readonly names: ReadonlyArray<GenericEvent["name"]>;
20
+ constructor(schemas: ReadonlyArray<GenericEventSchema>);
21
+ accepts(name: GenericEvent["name"]): boolean;
22
+ validate(raw: unknown): TEvent;
23
+ }
24
+ //# sourceMappingURL=event-validator-registry-zod.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-validator-registry-zod.adapter.d.ts","sourceRoot":"","sources":["../src/event-validator-registry-zod.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAElF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,SAAS,CAAC;IAC3C,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC;IACpB,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,SAAS,CAChD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAA;CAAE,CACxE,CAAC;AAOF,qBAAa,gCAAgC,CAAC,MAAM,CAAE,YAAW,0BAA0B,CAAC,MAAM,CAAC;IACjG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgD;IACpE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;gBAExC,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC;IAKtD,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,OAAO;IAI5C,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;CAS/B"}
@@ -0,0 +1,25 @@
1
+ const EventValidatorRegistryZodAdapterError = {
2
+ MissingName: "event.validator.registry.zod.adapter.error.missing.name",
3
+ UnknownEvent: "event.validator.registry.zod.adapter.error.unknown.event",
4
+ };
5
+ export class EventValidatorRegistryZodAdapter {
6
+ map;
7
+ names;
8
+ constructor(schemas) {
9
+ this.map = new Map(schemas.map((schema) => [schema.shape.name.value, schema]));
10
+ this.names = [...this.map.keys()];
11
+ }
12
+ accepts(name) {
13
+ return this.map.has(name);
14
+ }
15
+ validate(raw) {
16
+ const name = raw.name;
17
+ if (!name)
18
+ throw new Error(EventValidatorRegistryZodAdapterError.MissingName);
19
+ const schema = this.map.get(name);
20
+ if (!schema)
21
+ throw new Error(EventValidatorRegistryZodAdapterError.UnknownEvent);
22
+ return schema.parse(raw);
23
+ }
24
+ }
25
+ //# sourceMappingURL=event-validator-registry-zod.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-validator-registry-zod.adapter.js","sourceRoot":"","sources":["../src/event-validator-registry-zod.adapter.ts"],"names":[],"mappings":"AAmBA,MAAM,qCAAqC,GAAG;IAC5C,WAAW,EAAE,yDAAyD;IACtE,YAAY,EAAE,0DAA0D;CACzE,CAAC;AAEF,MAAM,OAAO,gCAAgC;IAC1B,GAAG,CAAgD;IAC3D,KAAK,CAAsC;IAEpD,YAAY,OAA0C;QACpD,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,IAA0B;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,GAAY;QACnB,MAAM,IAAI,GAAI,GAAuC,CAAC,IAAI,CAAC;QAC3D,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,WAAW,CAAC,CAAC;QAE9E,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,YAAY,CAAC,CAAC;QAEjF,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAW,CAAC;IACrC,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import type { GenericEvent } from "./event.types";
2
+ export interface EventValidatorRegistryPort<TEvent> {
3
+ readonly names: ReadonlyArray<GenericEvent["name"]>;
4
+ accepts(name: GenericEvent["name"]): boolean;
5
+ validate(raw: unknown): TEvent;
6
+ }
7
+ //# sourceMappingURL=event-validator-registry.port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-validator-registry.port.d.ts","sourceRoot":"","sources":["../src/event-validator-registry.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,WAAW,0BAA0B,CAAC,MAAM;IAChD,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;IAC7C,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC;CAChC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=event-validator-registry.port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-validator-registry.port.js","sourceRoot":"","sources":["../src/event-validator-registry.port.ts"],"names":[],"mappings":""}
@@ -1,15 +1,14 @@
1
- import type * as z from "zod/v4";
2
- export type GenericEventSchema = z.ZodObject<{
3
- id: z.ZodType<string>;
4
- correlationId: z.ZodType<string>;
5
- createdAt: z.ZodType<number>;
6
- stream: z.ZodString;
7
- revision: z.ZodOptional<z.ZodType<number>>;
8
- name: z.ZodLiteral<string>;
9
- version: z.ZodLiteral<number>;
10
- payload: z.ZodType<any>;
11
- }>;
12
- export type GenericParsedEventSchema = z.ZodObject<Omit<GenericEventSchema["shape"], "payload"> & {
13
- payload: z.ZodString;
14
- }>;
1
+ export type GenericEvent = {
2
+ id: string;
3
+ correlationId: string;
4
+ createdAt: number;
5
+ stream: string;
6
+ revision?: number;
7
+ name: string;
8
+ version: number;
9
+ payload: unknown;
10
+ };
11
+ export type GenericEventSerialized = Omit<GenericEvent, "payload"> & {
12
+ payload: string;
13
+ };
15
14
  //# sourceMappingURL=event.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event.types.d.ts","sourceRoot":"","sources":["../src/event.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,QAAQ,CAAC;AAEjC,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,SAAS,CAAC;IAC3C,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC;IACpB,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,SAAS,CAChD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAA;CAAE,CACxE,CAAC"}
1
+ {"version":3,"file":"event.types.d.ts","sourceRoot":"","sources":["../src/event.types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -68,7 +68,6 @@ export * from "./directory-ensurer-noop.adapter";
68
68
  export * from "./disk-space-checker.port";
69
69
  export * from "./disk-space-checker-noop.adapter";
70
70
  export * from "./disk-space-checker-shell.adapter";
71
- export * from "./dispatching-event-store";
72
71
  export * from "./dynamic-import.service";
73
72
  export * from "./encryption.port";
74
73
  export * from "./encryption-aes-gcm.adapter";
@@ -85,15 +84,26 @@ export * from "./etag-extractor.middleware";
85
84
  export * from "./etag-extractor-hono.middleware";
86
85
  export * from "./event.types";
87
86
  export * from "./event-envelope";
88
- export * from "./event-handler.strategy";
89
- export * from "./event-handler-bare.strategy";
90
- export * from "./event-handler-noop.strategy";
91
- export * from "./event-handler-with-logger.strategy";
87
+ export * from "./event-finder.port";
88
+ export * from "./event-finder-noop.adapter";
89
+ export * from "./event-inserter.port";
90
+ export * from "./event-inserter-noop.adapter";
92
91
  export * from "./event-loop-lag.service";
93
92
  export * from "./event-loop-utilization.service";
94
- export * from "./event-store";
95
- export * from "./event-store-like.types";
93
+ export * from "./event-revision-assigner.adapter";
94
+ export * from "./event-revision-assigner.port";
95
+ export * from "./event-serializer.port";
96
+ export * from "./event-serializer-collecting.adapter";
97
+ export * from "./event-serializer-json.adapter";
98
+ export * from "./event-store.adapter";
99
+ export * from "./event-store.port";
100
+ export * from "./event-store-collecting.adapter";
101
+ export * from "./event-store-collecting.adapter";
102
+ export * from "./event-store-dispatching.adapter";
103
+ export * from "./event-store-noop.adapter";
96
104
  export * from "./event-stream.vo";
105
+ export * from "./event-validator-registry.port";
106
+ export * from "./event-validator-registry-zod.adapter";
97
107
  export * from "./file-cleaner.adapter";
98
108
  export * from "./file-cleaner.port";
99
109
  export * from "./file-cleaner-forgiving.adapter";
@@ -221,6 +231,10 @@ export * from "./message-bus-collecting.adapter";
221
231
  export * from "./message-bus-emittery.adapter";
222
232
  export * from "./message-bus-noop.adapter";
223
233
  export * from "./message-bus-with-logger.adapter";
234
+ export * from "./message-handler.strategy";
235
+ export * from "./message-handler-bare.strategy";
236
+ export * from "./message-handler-noop.strategy";
237
+ export * from "./message-handler-with-logger.strategy";
224
238
  export * from "./middleware-hono.port";
225
239
  export * from "./middleware-hono-noop.adapter";
226
240
  export * as History from "./modules/history";
@@ -345,12 +359,7 @@ export * from "./smtp-host.vo";
345
359
  export * from "./smtp-pass.vo";
346
360
  export * from "./smtp-port.vo";
347
361
  export * from "./smtp-user.vo";
348
- export * from "./sse-connection.port";
349
- export * from "./sse-connection-hono.adapter";
350
- export * from "./sse-connection-hono.handler";
351
- export * from "./sse-connection-hono.handler";
352
- export * from "./sse-connection-noop.adapter";
353
- export * from "./sse-connection-with-logger.adapter";
362
+ export * from "./sse-hono.handler";
354
363
  export * from "./sse-registry.adapter";
355
364
  export * from "./sse-registry.port";
356
365
  export * from "./sse-registry-collecting.adapter";