node-cqrs 1.0.0 → 1.1.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.
Files changed (273) hide show
  1. package/CHANGELOG.md +30 -1
  2. package/README.md +115 -101
  3. package/dist/cjs/AbstractProjection.js +43 -18
  4. package/dist/cjs/AbstractProjection.js.map +1 -1
  5. package/dist/cjs/AggregateCommandHandler.js +27 -13
  6. package/dist/cjs/AggregateCommandHandler.js.map +1 -1
  7. package/dist/cjs/CqrsContainerBuilder.js +6 -1
  8. package/dist/cjs/CqrsContainerBuilder.js.map +1 -1
  9. package/dist/cjs/EventDispatchPipeline.js +12 -2
  10. package/dist/cjs/EventDispatchPipeline.js.map +1 -1
  11. package/dist/cjs/EventDispatcher.js +39 -10
  12. package/dist/cjs/EventDispatcher.js.map +1 -1
  13. package/dist/cjs/EventStore.js +7 -2
  14. package/dist/cjs/EventStore.js.map +1 -1
  15. package/dist/cjs/SagaEventHandler.js +54 -40
  16. package/dist/cjs/SagaEventHandler.js.map +1 -1
  17. package/dist/cjs/in-memory/InMemoryEventStorage.js +39 -24
  18. package/dist/cjs/in-memory/InMemoryEventStorage.js.map +1 -1
  19. package/dist/cjs/in-memory/InMemoryMessageBus.js +11 -5
  20. package/dist/cjs/in-memory/InMemoryMessageBus.js.map +1 -1
  21. package/dist/cjs/interfaces/IDispatchPipelineProcessor.js.map +1 -1
  22. package/dist/cjs/interfaces/IMessageMeta.js +3 -0
  23. package/dist/cjs/interfaces/IMessageMeta.js.map +1 -0
  24. package/dist/cjs/interfaces/IObservable.js.map +1 -1
  25. package/dist/cjs/interfaces/index.js +1 -0
  26. package/dist/cjs/interfaces/index.js.map +1 -1
  27. package/dist/cjs/mongodb/AbstractMongoAccessor.js +51 -0
  28. package/dist/cjs/mongodb/AbstractMongoAccessor.js.map +1 -0
  29. package/dist/cjs/mongodb/AbstractMongoObjectProjection.js +26 -0
  30. package/dist/cjs/mongodb/AbstractMongoObjectProjection.js.map +1 -0
  31. package/dist/cjs/mongodb/AbstractMongoView.js +57 -0
  32. package/dist/cjs/mongodb/AbstractMongoView.js.map +1 -0
  33. package/dist/cjs/mongodb/IContainer.js +3 -0
  34. package/dist/cjs/mongodb/IContainer.js.map +1 -0
  35. package/dist/cjs/mongodb/MongoEventLocker.js +104 -0
  36. package/dist/cjs/mongodb/MongoEventLocker.js.map +1 -0
  37. package/dist/cjs/mongodb/MongoEventStorage.js +200 -0
  38. package/dist/cjs/mongodb/MongoEventStorage.js.map +1 -0
  39. package/dist/cjs/mongodb/MongoObjectStorage.js +101 -0
  40. package/dist/cjs/mongodb/MongoObjectStorage.js.map +1 -0
  41. package/dist/cjs/mongodb/MongoObjectView.js +41 -0
  42. package/dist/cjs/mongodb/MongoObjectView.js.map +1 -0
  43. package/dist/cjs/mongodb/MongoProjectionDataParams.js +3 -0
  44. package/dist/cjs/mongodb/MongoProjectionDataParams.js.map +1 -0
  45. package/dist/cjs/mongodb/MongoViewLocker.js +136 -0
  46. package/dist/cjs/mongodb/MongoViewLocker.js.map +1 -0
  47. package/dist/cjs/mongodb/index.js +28 -0
  48. package/dist/cjs/mongodb/index.js.map +1 -0
  49. package/dist/cjs/mongodb/registerExitCleanup.js +28 -0
  50. package/dist/cjs/mongodb/registerExitCleanup.js.map +1 -0
  51. package/dist/cjs/mongodb/utils/getEventId.js +14 -0
  52. package/dist/cjs/mongodb/utils/getEventId.js.map +1 -0
  53. package/dist/cjs/mongodb/utils/index.js +18 -0
  54. package/dist/cjs/mongodb/utils/index.js.map +1 -0
  55. package/dist/cjs/rabbitmq/RabbitMqCommandBus.js +21 -8
  56. package/dist/cjs/rabbitmq/RabbitMqCommandBus.js.map +1 -1
  57. package/dist/cjs/rabbitmq/RabbitMqEventBus.js +2 -2
  58. package/dist/cjs/rabbitmq/RabbitMqEventBus.js.map +1 -1
  59. package/dist/cjs/rabbitmq/RabbitMqGateway.js +89 -64
  60. package/dist/cjs/rabbitmq/RabbitMqGateway.js.map +1 -1
  61. package/dist/cjs/redis/AbstractRedisAccessor.js +51 -0
  62. package/dist/cjs/redis/AbstractRedisAccessor.js.map +1 -0
  63. package/dist/cjs/redis/AbstractRedisProjection.js +26 -0
  64. package/dist/cjs/redis/AbstractRedisProjection.js.map +1 -0
  65. package/dist/cjs/redis/IContainer.js +3 -0
  66. package/dist/cjs/redis/IContainer.js.map +1 -0
  67. package/dist/cjs/redis/RedisEventLocker.js +96 -0
  68. package/dist/cjs/redis/RedisEventLocker.js.map +1 -0
  69. package/dist/cjs/redis/RedisObjectStorage.js +125 -0
  70. package/dist/cjs/redis/RedisObjectStorage.js.map +1 -0
  71. package/dist/cjs/redis/RedisProjectionDataParams.js +3 -0
  72. package/dist/cjs/redis/RedisProjectionDataParams.js.map +1 -0
  73. package/dist/cjs/redis/RedisView.js +81 -0
  74. package/dist/cjs/redis/RedisView.js.map +1 -0
  75. package/dist/cjs/redis/RedisViewLocker.js +111 -0
  76. package/dist/cjs/redis/RedisViewLocker.js.map +1 -0
  77. package/dist/cjs/redis/index.js +30 -0
  78. package/dist/cjs/redis/index.js.map +1 -0
  79. package/dist/cjs/redis/utils/getEventId.js +14 -0
  80. package/dist/cjs/redis/utils/getEventId.js.map +1 -0
  81. package/dist/cjs/redis/utils/index.js +18 -0
  82. package/dist/cjs/redis/utils/index.js.map +1 -0
  83. package/dist/cjs/sqlite/AbstractSqliteView.js.map +1 -1
  84. package/dist/cjs/sqlite/SqliteEventStorage.js +215 -0
  85. package/dist/cjs/sqlite/SqliteEventStorage.js.map +1 -0
  86. package/dist/cjs/sqlite/SqliteObjectStorage.js +6 -6
  87. package/dist/cjs/sqlite/SqliteObjectStorage.js.map +1 -1
  88. package/dist/cjs/sqlite/SqliteObjectView.js.map +1 -1
  89. package/dist/cjs/sqlite/index.js +1 -0
  90. package/dist/cjs/sqlite/index.js.map +1 -1
  91. package/dist/cjs/sqlite/utils/bufferToGuid.js +9 -0
  92. package/dist/cjs/sqlite/utils/bufferToGuid.js.map +1 -0
  93. package/dist/cjs/sqlite/utils/getEventId.js +2 -5
  94. package/dist/cjs/sqlite/utils/getEventId.js.map +1 -1
  95. package/dist/cjs/sqlite/utils/guid.js +1 -1
  96. package/dist/cjs/sqlite/utils/guid.js.map +1 -1
  97. package/dist/cjs/sqlite/utils/index.js +1 -0
  98. package/dist/cjs/sqlite/utils/index.js.map +1 -1
  99. package/dist/cjs/telemetry/index.js +20 -0
  100. package/dist/cjs/telemetry/index.js.map +1 -0
  101. package/dist/cjs/telemetry/recordSpanError.js +19 -0
  102. package/dist/cjs/telemetry/recordSpanError.js.map +1 -0
  103. package/dist/cjs/telemetry/spanAttributes.js +26 -0
  104. package/dist/cjs/telemetry/spanAttributes.js.map +1 -0
  105. package/dist/cjs/telemetry/spanContext.js +25 -0
  106. package/dist/cjs/telemetry/spanContext.js.map +1 -0
  107. package/dist/cjs/utils/MapAssertable.js +25 -1
  108. package/dist/cjs/utils/MapAssertable.js.map +1 -1
  109. package/dist/esm/AbstractProjection.js +32 -7
  110. package/dist/esm/AbstractProjection.js.map +1 -1
  111. package/dist/esm/AggregateCommandHandler.js +22 -8
  112. package/dist/esm/AggregateCommandHandler.js.map +1 -1
  113. package/dist/esm/CqrsContainerBuilder.js +6 -1
  114. package/dist/esm/CqrsContainerBuilder.js.map +1 -1
  115. package/dist/esm/EventDispatchPipeline.js +12 -2
  116. package/dist/esm/EventDispatchPipeline.js.map +1 -1
  117. package/dist/esm/EventDispatcher.js +33 -4
  118. package/dist/esm/EventDispatcher.js.map +1 -1
  119. package/dist/esm/EventStore.js +7 -2
  120. package/dist/esm/EventStore.js.map +1 -1
  121. package/dist/esm/SagaEventHandler.js +42 -28
  122. package/dist/esm/SagaEventHandler.js.map +1 -1
  123. package/dist/esm/in-memory/InMemoryEventStorage.js +25 -10
  124. package/dist/esm/in-memory/InMemoryEventStorage.js.map +1 -1
  125. package/dist/esm/in-memory/InMemoryMessageBus.js +11 -5
  126. package/dist/esm/in-memory/InMemoryMessageBus.js.map +1 -1
  127. package/dist/esm/interfaces/IDispatchPipelineProcessor.js.map +1 -1
  128. package/dist/esm/interfaces/IMessageMeta.js +2 -0
  129. package/dist/esm/interfaces/IMessageMeta.js.map +1 -0
  130. package/dist/esm/interfaces/IObservable.js.map +1 -1
  131. package/dist/esm/interfaces/index.js +1 -0
  132. package/dist/esm/interfaces/index.js.map +1 -1
  133. package/dist/esm/mongodb/AbstractMongoAccessor.js +47 -0
  134. package/dist/esm/mongodb/AbstractMongoAccessor.js.map +1 -0
  135. package/dist/esm/mongodb/AbstractMongoObjectProjection.js +22 -0
  136. package/dist/esm/mongodb/AbstractMongoObjectProjection.js.map +1 -0
  137. package/dist/esm/mongodb/AbstractMongoView.js +53 -0
  138. package/dist/esm/mongodb/AbstractMongoView.js.map +1 -0
  139. package/dist/esm/mongodb/IContainer.js +2 -0
  140. package/dist/esm/mongodb/IContainer.js.map +1 -0
  141. package/dist/esm/mongodb/MongoEventLocker.js +100 -0
  142. package/dist/esm/mongodb/MongoEventLocker.js.map +1 -0
  143. package/dist/esm/mongodb/MongoEventStorage.js +196 -0
  144. package/dist/esm/mongodb/MongoEventStorage.js.map +1 -0
  145. package/dist/esm/mongodb/MongoObjectStorage.js +97 -0
  146. package/dist/esm/mongodb/MongoObjectStorage.js.map +1 -0
  147. package/dist/esm/mongodb/MongoObjectView.js +37 -0
  148. package/dist/esm/mongodb/MongoObjectView.js.map +1 -0
  149. package/dist/esm/mongodb/MongoProjectionDataParams.js +2 -0
  150. package/dist/esm/mongodb/MongoProjectionDataParams.js.map +1 -0
  151. package/dist/esm/mongodb/MongoViewLocker.js +132 -0
  152. package/dist/esm/mongodb/MongoViewLocker.js.map +1 -0
  153. package/dist/esm/mongodb/index.js +12 -0
  154. package/dist/esm/mongodb/index.js.map +1 -0
  155. package/dist/esm/mongodb/registerExitCleanup.js +24 -0
  156. package/dist/esm/mongodb/registerExitCleanup.js.map +1 -0
  157. package/dist/esm/mongodb/utils/getEventId.js +10 -0
  158. package/dist/esm/mongodb/utils/getEventId.js.map +1 -0
  159. package/dist/esm/mongodb/utils/index.js +2 -0
  160. package/dist/esm/mongodb/utils/index.js.map +1 -0
  161. package/dist/esm/rabbitmq/RabbitMqCommandBus.js +21 -8
  162. package/dist/esm/rabbitmq/RabbitMqCommandBus.js.map +1 -1
  163. package/dist/esm/rabbitmq/RabbitMqEventBus.js +2 -2
  164. package/dist/esm/rabbitmq/RabbitMqEventBus.js.map +1 -1
  165. package/dist/esm/rabbitmq/RabbitMqGateway.js +69 -44
  166. package/dist/esm/rabbitmq/RabbitMqGateway.js.map +1 -1
  167. package/dist/esm/redis/AbstractRedisAccessor.js +47 -0
  168. package/dist/esm/redis/AbstractRedisAccessor.js.map +1 -0
  169. package/dist/esm/redis/AbstractRedisProjection.js +22 -0
  170. package/dist/esm/redis/AbstractRedisProjection.js.map +1 -0
  171. package/dist/esm/redis/IContainer.js +2 -0
  172. package/dist/esm/redis/IContainer.js.map +1 -0
  173. package/dist/esm/redis/RedisEventLocker.js +92 -0
  174. package/dist/esm/redis/RedisEventLocker.js.map +1 -0
  175. package/dist/esm/redis/RedisObjectStorage.js +121 -0
  176. package/dist/esm/redis/RedisObjectStorage.js.map +1 -0
  177. package/dist/esm/redis/RedisProjectionDataParams.js +2 -0
  178. package/dist/esm/redis/RedisProjectionDataParams.js.map +1 -0
  179. package/dist/esm/redis/RedisView.js +77 -0
  180. package/dist/esm/redis/RedisView.js.map +1 -0
  181. package/dist/esm/redis/RedisViewLocker.js +107 -0
  182. package/dist/esm/redis/RedisViewLocker.js.map +1 -0
  183. package/dist/esm/redis/index.js +14 -0
  184. package/dist/esm/redis/index.js.map +1 -0
  185. package/dist/esm/redis/utils/getEventId.js +10 -0
  186. package/dist/esm/redis/utils/getEventId.js.map +1 -0
  187. package/dist/esm/redis/utils/index.js +2 -0
  188. package/dist/esm/redis/utils/index.js.map +1 -0
  189. package/dist/esm/sqlite/AbstractSqliteView.js.map +1 -1
  190. package/dist/esm/sqlite/SqliteEventStorage.js +211 -0
  191. package/dist/esm/sqlite/SqliteEventStorage.js.map +1 -0
  192. package/dist/esm/sqlite/SqliteObjectStorage.js +7 -7
  193. package/dist/esm/sqlite/SqliteObjectStorage.js.map +1 -1
  194. package/dist/esm/sqlite/SqliteObjectView.js.map +1 -1
  195. package/dist/esm/sqlite/index.js +1 -0
  196. package/dist/esm/sqlite/index.js.map +1 -1
  197. package/dist/esm/sqlite/utils/bufferToGuid.js +5 -0
  198. package/dist/esm/sqlite/utils/bufferToGuid.js.map +1 -0
  199. package/dist/esm/sqlite/utils/getEventId.js +2 -2
  200. package/dist/esm/sqlite/utils/getEventId.js.map +1 -1
  201. package/dist/esm/sqlite/utils/guid.js +1 -1
  202. package/dist/esm/sqlite/utils/guid.js.map +1 -1
  203. package/dist/esm/sqlite/utils/index.js +1 -0
  204. package/dist/esm/sqlite/utils/index.js.map +1 -1
  205. package/dist/esm/telemetry/index.js +4 -0
  206. package/dist/esm/telemetry/index.js.map +1 -0
  207. package/dist/esm/telemetry/recordSpanError.js +16 -0
  208. package/dist/esm/telemetry/recordSpanError.js.map +1 -0
  209. package/dist/esm/telemetry/spanAttributes.js +23 -0
  210. package/dist/esm/telemetry/spanAttributes.js.map +1 -0
  211. package/dist/esm/telemetry/spanContext.js +22 -0
  212. package/dist/esm/telemetry/spanContext.js.map +1 -0
  213. package/dist/esm/utils/MapAssertable.js +25 -1
  214. package/dist/esm/utils/MapAssertable.js.map +1 -1
  215. package/dist/types/AbstractProjection.d.ts +3 -1
  216. package/dist/types/AggregateCommandHandler.d.ts +3 -3
  217. package/dist/types/EventDispatchPipeline.d.ts +3 -1
  218. package/dist/types/EventDispatcher.d.ts +9 -1
  219. package/dist/types/EventStore.d.ts +4 -2
  220. package/dist/types/SagaEventHandler.d.ts +3 -3
  221. package/dist/types/in-memory/InMemoryEventStorage.d.ts +2 -1
  222. package/dist/types/in-memory/InMemoryMessageBus.d.ts +3 -3
  223. package/dist/types/interfaces/ICommandBus.d.ts +3 -2
  224. package/dist/types/interfaces/IContainer.d.ts +7 -0
  225. package/dist/types/interfaces/IDispatchPipelineProcessor.d.ts +2 -0
  226. package/dist/types/interfaces/IEventDispatcher.d.ts +3 -0
  227. package/dist/types/interfaces/IMessageMeta.d.ts +4 -0
  228. package/dist/types/interfaces/IObservable.d.ts +2 -1
  229. package/dist/types/interfaces/index.d.ts +1 -0
  230. package/dist/types/mongodb/AbstractMongoAccessor.d.ts +26 -0
  231. package/dist/types/mongodb/AbstractMongoObjectProjection.d.ts +8 -0
  232. package/dist/types/mongodb/AbstractMongoView.d.ts +25 -0
  233. package/dist/types/mongodb/IContainer.d.ts +11 -0
  234. package/dist/types/mongodb/MongoEventLocker.d.ts +47 -0
  235. package/dist/types/mongodb/MongoEventStorage.d.ts +27 -0
  236. package/dist/types/mongodb/MongoObjectStorage.d.ts +26 -0
  237. package/dist/types/mongodb/MongoObjectView.d.ts +16 -0
  238. package/dist/types/mongodb/MongoProjectionDataParams.d.ts +14 -0
  239. package/dist/types/mongodb/MongoViewLocker.d.ts +43 -0
  240. package/dist/types/mongodb/index.d.ts +11 -0
  241. package/dist/types/mongodb/registerExitCleanup.d.ts +10 -0
  242. package/dist/types/mongodb/utils/getEventId.d.ts +5 -0
  243. package/dist/types/mongodb/utils/index.d.ts +1 -0
  244. package/dist/types/rabbitmq/IContainer.d.ts +2 -2
  245. package/dist/types/rabbitmq/RabbitMqCommandBus.d.ts +5 -4
  246. package/dist/types/rabbitmq/RabbitMqEventBus.d.ts +2 -2
  247. package/dist/types/rabbitmq/RabbitMqGateway.d.ts +4 -4
  248. package/dist/types/redis/AbstractRedisAccessor.d.ts +26 -0
  249. package/dist/types/redis/AbstractRedisProjection.d.ts +8 -0
  250. package/dist/types/redis/IContainer.d.ts +7 -0
  251. package/dist/types/redis/RedisEventLocker.d.ts +36 -0
  252. package/dist/types/redis/RedisObjectStorage.d.ts +26 -0
  253. package/dist/types/redis/RedisProjectionDataParams.d.ts +21 -0
  254. package/dist/types/redis/RedisView.d.ts +33 -0
  255. package/dist/types/redis/RedisViewLocker.d.ts +35 -0
  256. package/dist/types/redis/index.d.ts +13 -0
  257. package/dist/types/redis/utils/getEventId.d.ts +5 -0
  258. package/dist/types/redis/utils/index.d.ts +1 -0
  259. package/dist/types/sqlite/AbstractSqliteView.d.ts +2 -2
  260. package/dist/types/sqlite/SqliteEventStorage.d.ts +18 -0
  261. package/dist/types/sqlite/SqliteObjectStorage.d.ts +7 -7
  262. package/dist/types/sqlite/SqliteObjectView.d.ts +7 -7
  263. package/dist/types/sqlite/index.d.ts +1 -0
  264. package/dist/types/sqlite/utils/bufferToGuid.d.ts +4 -0
  265. package/dist/types/sqlite/utils/getEventId.d.ts +1 -1
  266. package/dist/types/sqlite/utils/guid.d.ts +2 -1
  267. package/dist/types/sqlite/utils/index.d.ts +1 -0
  268. package/dist/types/telemetry/index.d.ts +3 -0
  269. package/dist/types/telemetry/recordSpanError.d.ts +6 -0
  270. package/dist/types/telemetry/spanAttributes.d.ts +14 -0
  271. package/dist/types/telemetry/spanContext.d.ts +12 -0
  272. package/dist/types/utils/MapAssertable.d.ts +8 -0
  273. package/package.json +43 -13
@@ -6,7 +6,9 @@ const index_ts_2 = require("./utils/index.js");
6
6
  async function resolveConfig(provider) {
7
7
  const {
8
8
  // eslint-disable-next-line no-use-before-define
9
- exchange = RabbitMqCommandBus.DEFAULT_EXCHANGE, ignoreOwn = false, concurrentLimit, handlerProcessTimeout, queueName, queueExpires } = await (0, index_ts_2.resolveProvider)(provider) ?? {};
9
+ exchange = RabbitMqCommandBus.DEFAULT_EXCHANGE,
10
+ // eslint-disable-next-line no-use-before-define
11
+ queueName = RabbitMqCommandBus.DEFAULT_QUEUE_NAME, ignoreOwn = false, concurrentLimit, handlerProcessTimeout, queueExpires } = await (0, index_ts_2.resolveProvider)(provider) ?? {};
10
12
  (0, index_ts_1.assertString)(exchange, 'rabbitMqCommandConfig.exchange');
11
13
  (0, index_ts_1.assertString)(queueName, 'rabbitMqCommandConfig.queueName');
12
14
  (0, index_ts_1.assertBoolean)(ignoreOwn, 'rabbitMqCommandConfig.ignoreOwn');
@@ -26,6 +28,7 @@ async function resolveConfig(provider) {
26
28
  */
27
29
  class RabbitMqCommandBus {
28
30
  static DEFAULT_EXCHANGE = 'node-cqrs.commands';
31
+ static DEFAULT_QUEUE_NAME = 'node-cqrs.commands.default';
29
32
  #gateway;
30
33
  #configProvider;
31
34
  #config;
@@ -38,17 +41,27 @@ class RabbitMqCommandBus {
38
41
  this.#config ??= await resolveConfig(this.#configProvider);
39
42
  return this.#config;
40
43
  }
41
- async send(commandOrType, aggregateId, options) {
42
- const command = typeof commandOrType === 'string'
43
- ? { type: commandOrType, aggregateId, ...options }
44
- : commandOrType;
44
+ async send(commandOrType, aggregateIdOrMeta, options) {
45
+ let command;
46
+ let meta;
47
+ if (typeof commandOrType === 'string') {
48
+ const { span, ...commandOptions } = options ?? {};
49
+ command = { type: commandOrType, aggregateId: aggregateIdOrMeta, ...commandOptions };
50
+ if (span)
51
+ meta = { span };
52
+ }
53
+ else {
54
+ command = commandOrType;
55
+ if (aggregateIdOrMeta && typeof aggregateIdOrMeta === 'object')
56
+ meta = aggregateIdOrMeta;
57
+ }
45
58
  (0, index_ts_1.assertMessage)(command, 'command');
46
59
  const { exchange } = await this.#resolveConfig();
47
- await this.#gateway.publish(exchange, command);
60
+ await this.#gateway.publish(exchange, command, meta);
48
61
  }
49
62
  /** @deprecated Use {@link send} */
50
- sendRaw(command) {
51
- return this.send(command);
63
+ sendRaw(command, meta) {
64
+ return this.send(command, meta);
52
65
  }
53
66
  /**
54
67
  * Registers a message handler for a specific message type on the durable queue.
@@ -1 +1 @@
1
- {"version":3,"file":"RabbitMqCommandBus.js","sourceRoot":"","sources":["../../../src/rabbitmq/RabbitMqCommandBus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RabbitMqCommandBus.js","sourceRoot":"","sources":["../../../src/rabbitmq/RabbitMqCommandBus.ts"],"names":[],"mappings":"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"}
@@ -54,9 +54,9 @@ class RabbitMqEventBus {
54
54
  * Publishes a message to the event exchange.
55
55
  * The message will be delivered to all subscribers.
56
56
  */
57
- async publish(message) {
57
+ async publish(message, meta) {
58
58
  const { exchange } = await this.#resolveConfig();
59
- await this.#gateway.publish(exchange, message);
59
+ await this.#gateway.publish(exchange, message, meta);
60
60
  }
61
61
  /**
62
62
  * Registers a message handler for a specific message type.
@@ -1 +1 @@
1
- {"version":3,"file":"RabbitMqEventBus.js","sourceRoot":"","sources":["../../../src/rabbitmq/RabbitMqEventBus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RabbitMqEventBus.js","sourceRoot":"","sources":["../../../src/rabbitmq/RabbitMqEventBus.ts"],"names":[],"mappings":"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"}
@@ -35,9 +35,11 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  var _a;
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
37
  exports.RabbitMqGateway = void 0;
38
+ const api_1 = require("@opentelemetry/api");
38
39
  const Event = __importStar(require("../Event.js"));
39
- const index_ts_1 = require("../utils/index.js");
40
- const index_ts_2 = require("./utils/index.js");
40
+ const index_ts_1 = require("../telemetry/index.js");
41
+ const index_ts_2 = require("../utils/index.js");
42
+ const index_ts_3 = require("./utils/index.js");
41
43
  const events_1 = require("events");
42
44
  /** Generate a short pseudo-unique identifier using a truncated timestamp and random component */
43
45
  const getRandomAppId = () => `${Date.now().toString(36).slice(-4)}.${Math.random().toString(36).slice(2, 6)}`.toUpperCase();
@@ -67,8 +69,9 @@ class RabbitMqGateway {
67
69
  #appId;
68
70
  #logger;
69
71
  #emitter;
72
+ #tracer;
70
73
  #desiredState = 'disconnected';
71
- #stateChangeLock = new index_ts_1.Lock();
74
+ #stateChangeLock = new index_ts_2.Lock();
72
75
  /**
73
76
  * Established connection to RabbitMQ.
74
77
  * If empty, the gateway is not connected.
@@ -85,21 +88,22 @@ class RabbitMqGateway {
85
88
  isConnected() {
86
89
  return !!this.#connection;
87
90
  }
88
- constructor({ rabbitMqConnectionFactory, rabbitMqAppId = getRandomAppId(), eventEmitterFactory, logger, process }) {
89
- (0, index_ts_1.assertFunction)(rabbitMqConnectionFactory, 'rabbitMqConnectionFactory');
90
- (0, index_ts_1.assertDefined)(rabbitMqAppId, 'rabbitMqAppId');
91
+ constructor({ rabbitMqConnectionFactory, rabbitMqAppId = getRandomAppId(), eventEmitterFactory, logger, process, tracerFactory }) {
92
+ (0, index_ts_2.assertFunction)(rabbitMqConnectionFactory, 'rabbitMqConnectionFactory');
93
+ (0, index_ts_2.assertDefined)(rabbitMqAppId, 'rabbitMqAppId');
91
94
  this.#emitter = eventEmitterFactory?.() ?? new events_1.EventEmitter();
92
95
  this.#connectionFactory = rabbitMqConnectionFactory;
93
96
  this.#appIdProvider = rabbitMqAppId;
97
+ this.#tracer = tracerFactory?.(new.target.name);
94
98
  this.#logger = logger && 'child' in logger ?
95
99
  logger.child({ service: new.target.name }) :
96
100
  logger;
97
- (0, index_ts_2.registerExitCleanup)(process, () => this.disconnect());
101
+ (0, index_ts_3.registerExitCleanup)(process, () => this.disconnect());
98
102
  }
99
103
  /** Returns this gateway's app id from `rabbitMqAppIdProvider` */
100
104
  async getAppId() {
101
- this.#appId ??= await (0, index_ts_2.resolveProvider)(this.#appIdProvider);
102
- (0, index_ts_1.assertString)(this.#appId, 'appId');
105
+ this.#appId ??= await (0, index_ts_3.resolveProvider)(this.#appIdProvider);
106
+ (0, index_ts_2.assertString)(this.#appId, 'appId');
103
107
  return this.#appId;
104
108
  }
105
109
  /**
@@ -140,7 +144,7 @@ class RabbitMqGateway {
140
144
  }
141
145
  catch (err) {
142
146
  this.#logger?.error('Connection attempt failed', {
143
- error: (0, index_ts_1.extractErrorDetails)(err)
147
+ error: (0, index_ts_2.extractErrorDetails)(err)
144
148
  });
145
149
  if (this.#desiredState === 'connected')
146
150
  this.#scheduleReconnect();
@@ -194,7 +198,7 @@ class RabbitMqGateway {
194
198
  }
195
199
  catch (err) {
196
200
  this.#logger?.error('Failed to disconnect from RabbitMQ', {
197
- error: (0, index_ts_1.extractErrorDetails)(err)
201
+ error: (0, index_ts_2.extractErrorDetails)(err)
198
202
  });
199
203
  }
200
204
  finally {
@@ -212,7 +216,7 @@ class RabbitMqGateway {
212
216
  }
213
217
  catch (err) {
214
218
  this.#logger?.error(`Failed to cancel consumer "${consumerTag}" for queue "${queueName}"`, {
215
- error: (0, index_ts_1.extractErrorDetails)(err)
219
+ error: (0, index_ts_2.extractErrorDetails)(err)
216
220
  });
217
221
  }
218
222
  });
@@ -221,7 +225,7 @@ class RabbitMqGateway {
221
225
  }
222
226
  #onConnectionError(err) {
223
227
  this.#logger?.error('Connection error', {
224
- error: (0, index_ts_1.extractErrorDetails)(err)
228
+ error: (0, index_ts_2.extractErrorDetails)(err)
225
229
  });
226
230
  }
227
231
  #onConnectionClosed(connection) {
@@ -276,11 +280,11 @@ class RabbitMqGateway {
276
280
  */
277
281
  async subscribe(subscription) {
278
282
  if (subscription.handlerProcessTimeout !== undefined)
279
- (0, index_ts_1.assertNonNegativeInteger)(subscription.handlerProcessTimeout, 'subscription.handlerProcessTimeout');
283
+ (0, index_ts_2.assertNonNegativeInteger)(subscription.handlerProcessTimeout, 'subscription.handlerProcessTimeout');
280
284
  if (subscription.queueExpires !== undefined)
281
- (0, index_ts_1.assertNonNegativeInteger)(subscription.queueExpires, 'subscription.queueExpires');
285
+ (0, index_ts_2.assertNonNegativeInteger)(subscription.queueExpires, 'subscription.queueExpires');
282
286
  if (!subscription.queueName)
283
- (0, index_ts_1.assertNotDefined)(subscription.queueExpires, 'subscription.queueExpires');
287
+ (0, index_ts_2.assertNotDefined)(subscription.queueExpires, 'subscription.queueExpires');
284
288
  this.#desiredState = 'connected';
285
289
  this.#clearReconnectTimer();
286
290
  const lease = await this.#stateChangeLock.acquire();
@@ -415,7 +419,7 @@ class RabbitMqGateway {
415
419
  if (this.#queueConsumers.has(queueGivenName))
416
420
  return false;
417
421
  if (options?.concurrentLimit !== undefined) {
418
- (0, index_ts_1.assertNonNegativeInteger)(options.concurrentLimit, 'options.concurrentLimit');
422
+ (0, index_ts_2.assertNonNegativeInteger)(options.concurrentLimit, 'options.concurrentLimit');
419
423
  await channel.prefetch(options.concurrentLimit);
420
424
  }
421
425
  const c = await channel.consume(queueGivenName, async (msg) => {
@@ -434,13 +438,16 @@ class RabbitMqGateway {
434
438
  messageFinalized = true;
435
439
  }, handlerProcessTimeout)
436
440
  : null;
441
+ this.#logger?.debug('Message received', {
442
+ queueName: queueGivenName,
443
+ msg: extractMessageMeta(msg)
444
+ });
445
+ const jsonContent = msg.content.toString();
446
+ const message = JSON.parse(jsonContent);
447
+ // Extract OTel trace context from AMQP headers to continue the distributed trace
448
+ const parentContext = api_1.propagation.extract(api_1.context.active(), msg.properties?.headers ?? {});
449
+ const span = this.#tracer?.startSpan(`RabbitMqGateway.consume ${message.type}`, (0, index_ts_1.spanAttributes)('rabbitmq', message, ['type', 'aggregateId']), parentContext);
437
450
  try {
438
- this.#logger?.debug('Message received', {
439
- queueName: queueGivenName,
440
- msg: extractMessageMeta(msg)
441
- });
442
- const jsonContent = msg.content.toString();
443
- const message = JSON.parse(jsonContent);
444
451
  const handlers = this.#getHandlers(queueGivenName, message.type);
445
452
  if (!handlers.length && !isSystemQueue(queueGivenName))
446
453
  throw new Error(`Message from queue "${queueGivenName}" was delivered to a consumer that does not handle type "${message.type}"`);
@@ -448,7 +455,7 @@ class RabbitMqGateway {
448
455
  for (const { handler, ignoreOwn } of handlers) {
449
456
  if (ignoreOwn && msg.properties.appId === ownAppId)
450
457
  continue;
451
- await handler(message);
458
+ await handler(message, { span });
452
459
  }
453
460
  if (messageFinalized) {
454
461
  this.#logger?.error('Handler resolved, but message has already been finalized', {
@@ -462,10 +469,11 @@ class RabbitMqGateway {
462
469
  }
463
470
  catch (err) {
464
471
  this.#logger?.error('Message processing failed', {
465
- error: (0, index_ts_1.extractErrorDetails)(err),
472
+ error: (0, index_ts_2.extractErrorDetails)(err),
466
473
  queueName: queueGivenName,
467
474
  msg: extractMessageMeta(msg)
468
475
  });
476
+ (0, index_ts_1.recordSpanError)(span, err);
469
477
  if (!messageFinalized) {
470
478
  this.#rejectMessage(channel, msg);
471
479
  messageFinalized = true;
@@ -474,6 +482,7 @@ class RabbitMqGateway {
474
482
  finally {
475
483
  if (keepAliveTimeout !== null)
476
484
  clearTimeout(keepAliveTimeout);
485
+ span?.end();
477
486
  }
478
487
  }, {
479
488
  noAck: options?.noAck
@@ -492,7 +501,7 @@ class RabbitMqGateway {
492
501
  }
493
502
  catch (err) {
494
503
  this.#logger?.warn('Failed to reject message', {
495
- error: (0, index_ts_1.extractErrorDetails)(err),
504
+ error: (0, index_ts_2.extractErrorDetails)(err),
496
505
  msg: extractMessageMeta(msg)
497
506
  });
498
507
  }
@@ -520,45 +529,61 @@ class RabbitMqGateway {
520
529
  * Publishes an event to the fanout exchange.
521
530
  * The event will be delivered to all subscribers, except this instance's own consumer.
522
531
  */
523
- async publish(exchange, message) {
524
- (0, index_ts_1.assertString)(exchange, 'exchange');
525
- (0, index_ts_1.assertMessage)(message, 'message');
526
- if (!this.#pubChannel) {
527
- const connection = await this.#assertConnection();
528
- this.#pubChannel = await connection.createConfirmChannel();
529
- await this.#pubChannel.assertExchange(exchange, 'topic', { durable: true });
532
+ async publish(exchange, message, meta) {
533
+ (0, index_ts_2.assertString)(exchange, 'exchange');
534
+ (0, index_ts_2.assertMessage)(message, 'message');
535
+ const span = this.#tracer?.startSpan(`RabbitMqGateway.publish ${message.type}`, (0, index_ts_1.spanAttributes)('rabbitmq', message, ['type', 'aggregateId']), (0, index_ts_1.spanContext)(meta));
536
+ try {
537
+ if (!this.#pubChannel) {
538
+ const connection = await this.#assertConnection();
539
+ this.#pubChannel = await connection.createConfirmChannel();
540
+ await this.#pubChannel.assertExchange(exchange, 'topic', { durable: true });
541
+ }
542
+ const content = Buffer.from(JSON.stringify(message), 'utf8');
543
+ const sagaCorrelationId = (() => {
544
+ const sagaOrigins = message.sagaOrigins;
545
+ if (!sagaOrigins || typeof sagaOrigins !== 'object')
546
+ return undefined;
547
+ const sagaDescriptors = Object.keys(sagaOrigins);
548
+ if (sagaDescriptors.length !== 1)
549
+ return undefined;
550
+ return sagaOrigins[sagaDescriptors[0]];
551
+ })();
552
+ // Inject OTel trace context into AMQP headers so consumers can continue the trace
553
+ const headers = {};
554
+ const parentContext = span ?
555
+ (0, index_ts_1.spanContext)({ span }) :
556
+ (0, index_ts_1.spanContext)(meta);
557
+ api_1.propagation.inject(parentContext, headers);
558
+ const properties = {
559
+ contentType: 'application/json',
560
+ contentEncoding: 'utf8',
561
+ persistent: true,
562
+ timestamp: message.context?.ts ?? Date.now(),
563
+ appId: await this.getAppId(),
564
+ type: message.type,
565
+ messageId: 'id' in message && typeof message.id === 'string' ?
566
+ message.id :
567
+ undefined,
568
+ correlationId: sagaCorrelationId,
569
+ headers
570
+ };
571
+ return await new Promise((resolve, reject) => {
572
+ if (!this.#pubChannel)
573
+ throw new Error('No channel available for publishing');
574
+ this.#logger?.debug(`Publishing message "${Event.describe(message)}" to exchange "${exchange}"`);
575
+ const published = this.#pubChannel.publish(exchange, message.type, content, properties, err => (err ? reject(err) : resolve()));
576
+ if (!published)
577
+ throw new Error(`Failed to send event ${Event.describe(message)}, channel buffer is full`);
578
+ });
579
+ }
580
+ catch (error) {
581
+ (0, index_ts_1.recordSpanError)(span, error);
582
+ throw error;
583
+ }
584
+ finally {
585
+ span?.end();
530
586
  }
531
- const content = Buffer.from(JSON.stringify(message), 'utf8');
532
- const sagaCorrelationId = (() => {
533
- const sagaOrigins = message.sagaOrigins;
534
- if (!sagaOrigins || typeof sagaOrigins !== 'object')
535
- return undefined;
536
- const sagaDescriptors = Object.keys(sagaOrigins);
537
- if (sagaDescriptors.length !== 1)
538
- return undefined;
539
- return sagaOrigins[sagaDescriptors[0]];
540
- })();
541
- const appId = await this.getAppId();
542
- const properties = {
543
- contentType: 'application/json',
544
- contentEncoding: 'utf8',
545
- persistent: true,
546
- timestamp: message.context?.ts ?? Date.now(),
547
- appId,
548
- type: message.type,
549
- messageId: 'id' in message && typeof message.id === 'string' ?
550
- message.id :
551
- undefined,
552
- correlationId: sagaCorrelationId
553
- };
554
- return new Promise((resolve, reject) => {
555
- if (!this.#pubChannel)
556
- throw new Error('No channel available for publishing');
557
- this.#logger?.debug(`Publishing message "${Event.describe(message)}" to exchange "${exchange}"`);
558
- const published = this.#pubChannel.publish(exchange, message.type, content, properties, err => (err ? reject(err) : resolve()));
559
- if (!published)
560
- throw new Error(`Failed to send event ${Event.describe(message)}, channel buffer is full`);
561
- });
562
587
  }
563
588
  on(event, fn) {
564
589
  this.#emitter.on(event, fn);
@@ -1 +1 @@
1
- {"version":3,"file":"RabbitMqGateway.js","sourceRoot":"","sources":["../../../src/rabbitmq/RabbitMqGateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RabbitMqGateway.js","sourceRoot":"","sources":["../../../src/rabbitmq/RabbitMqGateway.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractRedisAccessor = void 0;
4
+ const index_ts_1 = require("../utils/index.js");
5
+ /**
6
+ * Abstract base class for accessing a Redis instance.
7
+ *
8
+ * Manages the Redis client lifecycle, ensuring initialization via `assertConnection`.
9
+ * Supports providing a Redis instance directly or a factory function for lazy initialization.
10
+ *
11
+ * Subclasses must implement the `initialize` method for specific setup tasks
12
+ * (e.g. registering Lua commands with `defineCommand`).
13
+ */
14
+ class AbstractRedisAccessor {
15
+ redis;
16
+ #redisFactory;
17
+ #initLocker = new index_ts_1.Lock();
18
+ #initialized = false;
19
+ constructor(c) {
20
+ if (!c.viewModelRedis && !c.viewModelRedisFactory)
21
+ throw new TypeError('either viewModelRedis or viewModelRedisFactory argument required');
22
+ this.redis = c.viewModelRedis;
23
+ this.#redisFactory = c.viewModelRedisFactory;
24
+ }
25
+ /**
26
+ * Ensures that the Redis connection is initialized.
27
+ * Uses a lock to prevent race conditions during concurrent initialization attempts.
28
+ * If the client is not already set, it creates one using the provided factory
29
+ * and then calls the `initialize` method.
30
+ *
31
+ * This method is idempotent and safe to call multiple times.
32
+ */
33
+ async assertConnection() {
34
+ if (this.#initialized)
35
+ return;
36
+ try {
37
+ await this.#initLocker.acquire();
38
+ if (this.#initialized)
39
+ return;
40
+ if (!this.redis)
41
+ this.redis = await this.#redisFactory();
42
+ await this.initialize(this.redis);
43
+ this.#initialized = true;
44
+ }
45
+ finally {
46
+ this.#initLocker.release();
47
+ }
48
+ }
49
+ }
50
+ exports.AbstractRedisAccessor = AbstractRedisAccessor;
51
+ //# sourceMappingURL=AbstractRedisAccessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractRedisAccessor.js","sourceRoot":"","sources":["../../../src/redis/AbstractRedisAccessor.ts"],"names":[],"mappings":";;;AAEA,gDAAyC;AAEzC;;;;;;;;GAQG;AACH,MAAsB,qBAAqB;IAEhC,KAAK,CAAoB;IACnC,aAAa,CAA6C;IAC1D,WAAW,GAAG,IAAI,eAAI,EAAE,CAAC;IACzB,YAAY,GAAG,KAAK,CAAC;IAErB,YAAY,CAAwE;QACnF,IAAI,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,qBAAqB;YAChD,MAAM,IAAI,SAAS,CAAC,kEAAkE,CAAC,CAAC;QAEzF,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,qBAAqB,CAAC;IAC9C,CAAC;IAID;;;;;;;OAOG;IACH,KAAK,CAAC,gBAAgB;QACrB,IAAI,IAAI,CAAC,YAAY;YACpB,OAAO;QAER,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,YAAY;gBACpB,OAAO;YAER,IAAI,CAAC,IAAI,CAAC,KAAK;gBACd,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,aAAc,EAAE,CAAC;YAE1C,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAElC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC1B,CAAC;gBACO,CAAC;YACR,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC;IACF,CAAC;CACD;AA7CD,sDA6CC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractRedisProjection = void 0;
4
+ const AbstractProjection_ts_1 = require("../AbstractProjection.js");
5
+ const RedisView_ts_1 = require("./RedisView.js");
6
+ class AbstractRedisProjection extends AbstractProjection_ts_1.AbstractProjection {
7
+ static get tableName() {
8
+ throw new Error('tableName is not defined');
9
+ }
10
+ static get schemaVersion() {
11
+ throw new Error('schemaVersion is not defined');
12
+ }
13
+ constructor({ viewModelRedis, viewModelRedisFactory, logger }) {
14
+ super({ logger });
15
+ this.view = new RedisView_ts_1.RedisView({
16
+ schemaVersion: new.target.schemaVersion,
17
+ projectionName: new.target.name,
18
+ viewModelRedis,
19
+ viewModelRedisFactory,
20
+ tableNamePrefix: new.target.tableName,
21
+ logger
22
+ });
23
+ }
24
+ }
25
+ exports.AbstractRedisProjection = AbstractRedisProjection;
26
+ //# sourceMappingURL=AbstractRedisProjection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractRedisProjection.js","sourceRoot":"","sources":["../../../src/redis/AbstractRedisProjection.ts"],"names":[],"mappings":";;;AACA,oEAA8D;AAC9D,iDAA2C;AAE3C,MAAsB,uBAA2B,SAAQ,0CAAgC;IAExF,MAAM,KAAK,SAAS;QACnB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,KAAK,aAAa;QACvB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACjD,CAAC;IAED,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,EACsB;QAEhF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAElB,IAAI,CAAC,IAAI,GAAG,IAAI,wBAAS,CAAC;YACzB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,aAAa;YACvC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI;YAC/B,cAAc;YACd,qBAAqB;YACrB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS;YACrC,MAAM;SACN,CAAC,CAAC;IACJ,CAAC;CACD;AAxBD,0DAwBC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IContainer.js","sourceRoot":"","sources":["../../../src/redis/IContainer.ts"],"names":[],"mappings":""}