redis-smq 9.0.0-next.8 → 9.0.0-next.9

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 (42) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/src/errors/index.d.ts +1 -0
  3. package/dist/cjs/src/errors/index.d.ts.map +1 -1
  4. package/dist/cjs/src/errors/index.js +1 -0
  5. package/dist/cjs/src/errors/index.js.map +1 -1
  6. package/dist/cjs/src/errors/routing-key-required.error.d.ts +4 -0
  7. package/dist/cjs/src/errors/routing-key-required.error.d.ts.map +1 -0
  8. package/dist/cjs/src/errors/routing-key-required.error.js +8 -0
  9. package/dist/cjs/src/errors/routing-key-required.error.js.map +1 -0
  10. package/dist/cjs/src/producer/producer.d.ts +8 -8
  11. package/dist/cjs/src/producer/producer.d.ts.map +1 -1
  12. package/dist/cjs/src/producer/producer.js +104 -120
  13. package/dist/cjs/src/producer/producer.js.map +1 -1
  14. package/dist/cjs/src/producer/pub-sub-target-resolver.d.ts +27 -0
  15. package/dist/cjs/src/producer/pub-sub-target-resolver.d.ts.map +1 -0
  16. package/dist/cjs/src/producer/pub-sub-target-resolver.js +186 -0
  17. package/dist/cjs/src/producer/pub-sub-target-resolver.js.map +1 -0
  18. package/dist/esm/src/errors/index.d.ts +1 -0
  19. package/dist/esm/src/errors/index.d.ts.map +1 -1
  20. package/dist/esm/src/errors/index.js +1 -0
  21. package/dist/esm/src/errors/index.js.map +1 -1
  22. package/dist/esm/src/errors/routing-key-required.error.d.ts +4 -0
  23. package/dist/esm/src/errors/routing-key-required.error.d.ts.map +1 -0
  24. package/dist/esm/src/errors/routing-key-required.error.js +4 -0
  25. package/dist/esm/src/errors/routing-key-required.error.js.map +1 -0
  26. package/dist/esm/src/producer/producer.d.ts +8 -8
  27. package/dist/esm/src/producer/producer.d.ts.map +1 -1
  28. package/dist/esm/src/producer/producer.js +105 -121
  29. package/dist/esm/src/producer/producer.js.map +1 -1
  30. package/dist/esm/src/producer/pub-sub-target-resolver.d.ts +27 -0
  31. package/dist/esm/src/producer/pub-sub-target-resolver.d.ts.map +1 -0
  32. package/dist/esm/src/producer/pub-sub-target-resolver.js +184 -0
  33. package/dist/esm/src/producer/pub-sub-target-resolver.js.map +1 -0
  34. package/package.json +2 -2
  35. package/dist/cjs/src/producer/queue-consumer-groups-cache.d.ts +0 -27
  36. package/dist/cjs/src/producer/queue-consumer-groups-cache.d.ts.map +0 -1
  37. package/dist/cjs/src/producer/queue-consumer-groups-cache.js +0 -212
  38. package/dist/cjs/src/producer/queue-consumer-groups-cache.js.map +0 -1
  39. package/dist/esm/src/producer/queue-consumer-groups-cache.d.ts +0 -27
  40. package/dist/esm/src/producer/queue-consumer-groups-cache.d.ts.map +0 -1
  41. package/dist/esm/src/producer/queue-consumer-groups-cache.js +0 -211
  42. package/dist/esm/src/producer/queue-consumer-groups-cache.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,20 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [9.0.0-next.9](https://github.com/weyoss/redis-smq/compare/v9.0.0-next.8...v9.0.0-next.9) (2025-10-21)
7
+
8
+ ### 🐛 Bug Fixes
9
+
10
+ - **redis-smq:** add missing RoutingKeyRequiredError class ([2a76b66](https://github.com/weyoss/redis-smq/commit/2a76b668a698cd79f8cb437a642d5062067cd149))
11
+
12
+ ### 📝 Documentation
13
+
14
+ - **redis-smq:** update documentation and improve md formatting ([c659b9f](https://github.com/weyoss/redis-smq/commit/c659b9f8f4b026d731ddaf94228ce871ee56f14a))
15
+
16
+ ### ♻️ Code Refactoring
17
+
18
+ - **redis-smq:** rename QueueConsumerGroupsCache to PubSubTargetResolver, clean up Producer docs ([1ea5669](https://github.com/weyoss/redis-smq/commit/1ea566959e97b0b695cea85b9f2117903273320d))
19
+
6
20
  ## [9.0.0-next.8](https://github.com/weyoss/redis-smq/compare/v9.0.0-next.7...v9.0.0-next.8) (2025-10-18)
7
21
 
8
22
  ### ✨ Features
@@ -59,4 +59,5 @@ export * from './queue-has-bound-exchanges.error.js';
59
59
  export * from './namespace-mismatch.error.js';
60
60
  export * from './exchange-not-found.error.js';
61
61
  export * from './queue-already-bound.js';
62
+ export * from './routing-key-required.error.js';
62
63
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/errors/index.ts"],"names":[],"mappings":"AASA,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,kDAAkD,CAAC;AACjE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0CAA0C,CAAC;AACzD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,qBAAqB,CAAC;AACpC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+CAA+C,CAAC;AAC9D,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+CAA+C,CAAC;AAC9D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/errors/index.ts"],"names":[],"mappings":"AASA,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,kDAAkD,CAAC;AACjE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0CAA0C,CAAC;AACzD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,qBAAqB,CAAC;AACpC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+CAA+C,CAAC;AAC9D,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+CAA+C,CAAC;AAC9D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC"}
@@ -75,4 +75,5 @@ __exportStar(require("./queue-has-bound-exchanges.error.js"), exports);
75
75
  __exportStar(require("./namespace-mismatch.error.js"), exports);
76
76
  __exportStar(require("./exchange-not-found.error.js"), exports);
77
77
  __exportStar(require("./queue-already-bound.js"), exports);
78
+ __exportStar(require("./routing-key-required.error.js"), exports);
78
79
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/errors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AASA,sDAAoC;AACpC,kEAAgD;AAChD,0EAAwD;AACxD,uEAAqD;AACrD,uEAAqD;AACrD,0EAAwD;AACxD,gEAA8C;AAC9C,oFAAkE;AAClE,2EAAyD;AACzD,oEAAkD;AAClD,iEAA+C;AAC/C,+DAA6C;AAC7C,+DAA6C;AAC7C,+DAA6C;AAC7C,+DAA6C;AAC7C,6DAA2C;AAC3C,oEAAkD;AAClD,mFAAiE;AACjE,gFAA8D;AAC9D,qDAAmC;AACnC,8DAA4C;AAC5C,sDAAoC;AACpC,6DAA2C;AAC3C,2EAAyD;AACzD,gFAA8D;AAC9D,gFAA8D;AAC9D,uEAAqD;AACrD,6DAA2C;AAC3C,2EAAyD;AACzD,kEAAgD;AAChD,4EAA0D;AAC1D,6DAA2C;AAC3C,6DAA2C;AAC3C,2DAAyC;AACzC,sEAAoD;AACpD,6DAA2C;AAC3C,sEAAoD;AACpD,uEAAqD;AACrD,2EAAyD;AACzD,sDAAoC;AACpC,4EAA0D;AAC1D,qEAAmD;AACnD,6DAA2C;AAC3C,gFAA8D;AAC9D,kEAAgD;AAChD,sEAAoD;AACpD,2DAAyC;AACzC,gFAA8D;AAC9D,8EAA4D;AAC5D,qEAAmD;AACnD,4DAA0C;AAC1C,oEAAkD;AAClD,wDAAsC;AACtC,8DAA4C;AAC5C,yEAAuD;AACvD,gEAA8C;AAC9C,yEAAuD;AACvD,uEAAqD;AACrD,gEAA8C;AAC9C,gEAA8C;AAC9C,2DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/errors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AASA,sDAAoC;AACpC,kEAAgD;AAChD,0EAAwD;AACxD,uEAAqD;AACrD,uEAAqD;AACrD,0EAAwD;AACxD,gEAA8C;AAC9C,oFAAkE;AAClE,2EAAyD;AACzD,oEAAkD;AAClD,iEAA+C;AAC/C,+DAA6C;AAC7C,+DAA6C;AAC7C,+DAA6C;AAC7C,+DAA6C;AAC7C,6DAA2C;AAC3C,oEAAkD;AAClD,mFAAiE;AACjE,gFAA8D;AAC9D,qDAAmC;AACnC,8DAA4C;AAC5C,sDAAoC;AACpC,6DAA2C;AAC3C,2EAAyD;AACzD,gFAA8D;AAC9D,gFAA8D;AAC9D,uEAAqD;AACrD,6DAA2C;AAC3C,2EAAyD;AACzD,kEAAgD;AAChD,4EAA0D;AAC1D,6DAA2C;AAC3C,6DAA2C;AAC3C,2DAAyC;AACzC,sEAAoD;AACpD,6DAA2C;AAC3C,sEAAoD;AACpD,uEAAqD;AACrD,2EAAyD;AACzD,sDAAoC;AACpC,4EAA0D;AAC1D,qEAAmD;AACnD,6DAA2C;AAC3C,gFAA8D;AAC9D,kEAAgD;AAChD,sEAAoD;AACpD,2DAAyC;AACzC,gFAA8D;AAC9D,8EAA4D;AAC5D,qEAAmD;AACnD,4DAA0C;AAC1C,oEAAkD;AAClD,wDAAsC;AACtC,8DAA4C;AAC5C,yEAAuD;AACvD,gEAA8C;AAC9C,yEAAuD;AACvD,uEAAqD;AACrD,gEAA8C;AAC9C,gEAA8C;AAC9C,2DAAyC;AACzC,kEAAgD"}
@@ -0,0 +1,4 @@
1
+ import { ProducerError } from './producer.error.js';
2
+ export declare class RoutingKeyRequiredError extends ProducerError {
3
+ }
4
+ //# sourceMappingURL=routing-key-required.error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing-key-required.error.d.ts","sourceRoot":"","sources":["../../../../src/errors/routing-key-required.error.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,qBAAa,uBAAwB,SAAQ,aAAa;CAAG"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoutingKeyRequiredError = void 0;
4
+ const producer_error_js_1 = require("./producer.error.js");
5
+ class RoutingKeyRequiredError extends producer_error_js_1.ProducerError {
6
+ }
7
+ exports.RoutingKeyRequiredError = RoutingKeyRequiredError;
8
+ //# sourceMappingURL=routing-key-required.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing-key-required.error.js","sourceRoot":"","sources":["../../../../src/errors/routing-key-required.error.ts"],"names":[],"mappings":";;;AASA,2DAAoD;AAEpD,MAAa,uBAAwB,SAAQ,iCAAa;CAAG;AAA7D,0DAA6D"}
@@ -4,27 +4,27 @@ import { ExchangeDirect, ExchangeFanout, ExchangeTopic, IExchangeParsedParams }
4
4
  import { ProducibleMessage } from '../message/index.js';
5
5
  import { MessageEnvelope } from '../message/message-envelope.js';
6
6
  import { IQueueParams } from '../queue-manager/index.js';
7
- import { QueueConsumerGroupsCache } from './queue-consumer-groups-cache.js';
7
+ import { PubSubTargetResolver } from './pub-sub-target-resolver.js';
8
8
  export declare class Producer extends Runnable<TProducerEvent> {
9
9
  protected fanoutExchange: ExchangeFanout;
10
10
  protected directExchange: ExchangeDirect;
11
11
  protected topicExchange: ExchangeTopic;
12
12
  protected logger: ILogger;
13
- protected queueConsumerGroupsHandler: QueueConsumerGroupsCache | null;
13
+ protected pubSubTargetResolver: PubSubTargetResolver | null;
14
14
  protected redisClient: IRedisClient | null;
15
15
  constructor();
16
16
  produce(msg: ProducibleMessage, cb: ICallback<string[]>): void;
17
17
  protected getLogger(): ILogger;
18
18
  protected getRedisClient(): IRedisClient;
19
- protected initQueueConsumerGroupsHandler: (cb: ICallback) => void;
20
- protected shutDownQueueConsumerGroupsHandler: (cb: ICallback) => void;
19
+ protected _runPubSubTargetResolver: (cb: ICallback) => void;
20
+ protected _shutdownPubSubTargetResolver: (cb: ICallback) => void;
21
21
  protected goingUp(): ((cb: ICallback) => void)[];
22
22
  protected up(cb: ICallback<boolean>): void;
23
23
  protected goingDown(): ((cb: ICallback) => void)[];
24
24
  protected down(cb: ICallback<boolean>): void;
25
- protected getQueueConsumerGroupsHandler(): QueueConsumerGroupsCache;
26
- protected produceMessageItem(message: MessageEnvelope, queue: IQueueParams, cb: ICallback<string>): void;
27
- protected produceMessage(message: ProducibleMessage, queue: IQueueParams, cb: ICallback<string[]>): void;
28
- protected matchExchangeQueues(exchange: IExchangeParsedParams, routingKey: string | null, cb: ICallback<IQueueParams[]>): void;
25
+ protected getPubSubTargetResolver(): PubSubTargetResolver;
26
+ protected _dispatch(message: MessageEnvelope, queue: IQueueParams, cb: ICallback<string>): void;
27
+ protected _produceToQueue(message: ProducibleMessage, queue: IQueueParams, cb: ICallback<string[]>): void;
28
+ protected _matchExchangeQueues(exchange: IExchangeParsedParams, routingKey: string | null, cb: ICallback<IQueueParams[]>): void;
29
29
  }
30
30
  //# sourceMappingURL=producer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"producer.d.ts","sourceRoot":"","sources":["../../../../src/producer/producer.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,SAAS,EACT,OAAO,EACP,YAAY,EAEZ,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAWpD,OAAO,EAEL,cAAc,EACd,cAAc,EACd,aAAa,EACb,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAW5E,qBAAa,QAAS,SAAQ,QAAQ,CAAC,cAAc,CAAC;IACpD,SAAS,CAAC,cAAc,iBAAC;IACzB,SAAS,CAAC,cAAc,iBAAC;IACzB,SAAS,CAAC,aAAa,gBAAC;IACxB,SAAS,CAAC,MAAM,UAAC;IACjB,SAAS,CAAC,0BAA0B,EAAE,wBAAwB,GAAG,IAAI,CAAQ;IAC7E,SAAS,CAAC,WAAW,EAAE,YAAY,GAAG,IAAI,CAAQ;;IAqDlD,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;cAoF3C,SAAS,IAAI,OAAO;IAIvC,SAAS,CAAC,cAAc,IAAI,YAAY;IAUxC,SAAS,CAAC,8BAA8B,GAAI,IAAI,SAAS,KAAG,IAAI,CAgB9D;IAMF,SAAS,CAAC,kCAAkC,GAAI,IAAI,SAAS,KAAG,IAAI,CAclE;cAMiB,OAAO,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC,EAAE;cAgCtC,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC;cAezB,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC,EAAE;cAqBxC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI;IAoBrD,SAAS,CAAC,6BAA6B,IAAI,wBAAwB;IAWnE,SAAS,CAAC,kBAAkB,CAC1B,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,GACpB,IAAI;IAoEP,SAAS,CAAC,cAAc,CACtB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,GACtB,IAAI;IAiFP,SAAS,CAAC,mBAAmB,CAC3B,QAAQ,EAAE,qBAAqB,EAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,EAAE,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC,GAC5B,IAAI;CAaR"}
1
+ {"version":3,"file":"producer.d.ts","sourceRoot":"","sources":["../../../../src/producer/producer.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,SAAS,EACT,OAAO,EACP,YAAY,EAEZ,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAYpD,OAAO,EAEL,cAAc,EACd,cAAc,EACd,aAAa,EACb,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAoBpE,qBAAa,QAAS,SAAQ,QAAQ,CAAC,cAAc,CAAC;IACpD,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IACzC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IACzC,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACvC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAQ;IACnE,SAAS,CAAC,WAAW,EAAE,YAAY,GAAG,IAAI,CAAQ;;IAwElD,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;cAsF3C,SAAS,IAAI,OAAO;IAWvC,SAAS,CAAC,cAAc,IAAI,YAAY;IAiBxC,SAAS,CAAC,wBAAwB,GAAI,IAAI,SAAS,KAAG,IAAI,CAWxD;IAOF,SAAS,CAAC,6BAA6B,GAAI,IAAI,SAAS,KAAG,IAAI,CAW7D;cAQiB,OAAO,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC,EAAE;cA6BtC,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC;cAczB,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC,EAAE;cAyBxC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI;IAkBrD,SAAS,CAAC,uBAAuB,IAAI,oBAAoB;IA0BzD,SAAS,CAAC,SAAS,CACjB,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,GACpB,IAAI;IAsEP,SAAS,CAAC,eAAe,CACvB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,GACtB,IAAI;IAkFP,SAAS,CAAC,oBAAoB,CAC5B,QAAQ,EAAE,qBAAqB,EAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,EAAE,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC,GAC5B,IAAI;CAcR"}
@@ -10,98 +10,95 @@ const index_js_3 = require("../exchange/index.js");
10
10
  const message_envelope_js_1 = require("../message/message-envelope.js");
11
11
  const _publish_message_js_1 = require("./_/_publish-message.js");
12
12
  const event_bus_publisher_js_1 = require("./event-bus-publisher.js");
13
- const queue_consumer_groups_cache_js_1 = require("./queue-consumer-groups-cache.js");
13
+ const pub_sub_target_resolver_js_1 = require("./pub-sub-target-resolver.js");
14
14
  class Producer extends redis_smq_common_1.Runnable {
15
15
  constructor() {
16
16
  super();
17
- this.queueConsumerGroupsHandler = null;
17
+ this.pubSubTargetResolver = null;
18
18
  this.redisClient = null;
19
- this.initQueueConsumerGroupsHandler = (cb) => {
20
- this.logger.debug('Initializing queue consumer groups handler');
21
- this.queueConsumerGroupsHandler = new queue_consumer_groups_cache_js_1.QueueConsumerGroupsCache(this);
22
- this.queueConsumerGroupsHandler.run((err) => {
19
+ this._runPubSubTargetResolver = (cb) => {
20
+ this.logger.debug('Starting PubSubTargetResolver...');
21
+ this.pubSubTargetResolver = new pub_sub_target_resolver_js_1.PubSubTargetResolver(this);
22
+ this.pubSubTargetResolver.run((err) => {
23
23
  if (err) {
24
- this.logger.error('Failed to initialize queue consumer groups handler', err);
24
+ this.logger.error('Failed to start PubSubTargetResolver.', err);
25
25
  }
26
26
  else {
27
- this.logger.debug('Queue consumer groups handler initialized successfully');
27
+ this.logger.debug('PubSubTargetResolver has been started.');
28
28
  }
29
29
  cb(err);
30
30
  });
31
31
  };
32
- this.shutDownQueueConsumerGroupsHandler = (cb) => {
33
- if (this.queueConsumerGroupsHandler) {
34
- this.logger.debug('Shutting down queue consumer groups handler');
35
- this.queueConsumerGroupsHandler.shutdown(() => {
36
- this.logger.debug('Queue consumer groups handler shut down successfully');
37
- this.queueConsumerGroupsHandler = null;
32
+ this._shutdownPubSubTargetResolver = (cb) => {
33
+ if (this.pubSubTargetResolver) {
34
+ this.logger.debug('Shutting down PubSubTargetResolver...');
35
+ this.pubSubTargetResolver.shutdown(() => {
36
+ this.logger.debug('PubSubTargetResolver has been shut down.');
37
+ this.pubSubTargetResolver = null;
38
38
  cb();
39
39
  });
40
40
  }
41
41
  else {
42
- this.logger.debug('No queue consumer groups handler to shut down');
43
42
  cb();
44
43
  }
45
44
  };
46
- this.logger = (0, redis_smq_common_1.createLogger)(index_js_1.Configuration.getConfig().logger, this.constructor.name.toLowerCase());
47
- this.logger.info(`Producer instance created with ID: ${this.getId()}`);
45
+ this.logger = (0, redis_smq_common_1.createLogger)(index_js_1.Configuration.getConfig().logger, this.constructor.name);
46
+ this.logger.info(`Producer instance created [ID: ${this.getId()}]`);
48
47
  this.directExchange = new index_js_3.ExchangeDirect();
49
48
  this.topicExchange = new index_js_3.ExchangeTopic();
50
49
  this.fanoutExchange = new index_js_3.ExchangeFanout();
51
50
  if (index_js_1.Configuration.getConfig().eventBus.enabled) {
52
- this.logger.debug('Event bus is enabled, initializing eventBusPublisher...');
51
+ this.logger.debug('Event bus is enabled. Initializing event publisher.');
53
52
  (0, event_bus_publisher_js_1.eventBusPublisher)(this);
54
53
  }
55
54
  else {
56
- this.logger.debug('Event bus is disabled, skipping eventBusPublisher initialization');
55
+ this.logger.debug('Event bus is disabled. Skipping event publisher.');
57
56
  }
58
57
  }
59
58
  produce(msg, cb) {
60
59
  if (!this.isRunning()) {
61
- this.logger.error('Cannot produce message: Producer instance is not running');
60
+ this.logger.error('Cannot produce message. Producer is not running.');
62
61
  return cb(new index_js_2.ProducerNotRunningError());
63
62
  }
64
- const qp = msg.getQueue();
65
- if (qp) {
66
- return this.produceMessage(msg, qp, cb);
63
+ const queueParams = msg.getQueue();
64
+ if (queueParams) {
65
+ return this._produceToQueue(msg, queueParams, cb);
67
66
  }
68
- const ep = msg.getExchange();
69
- if (!ep) {
70
- this.logger.error('Cannot produce message: No exchange/queue parameters provided');
67
+ const exchangeParams = msg.getExchange();
68
+ if (!exchangeParams) {
69
+ this.logger.error('Message can not be produced without a queue or an exchange.');
71
70
  return cb(new index_js_2.MessageExchangeRequiredError());
72
71
  }
73
- this.logger.debug(`Producing message with exchange type name=${ep.name} ns=${ep.ns} type=${index_js_3.EExchangeType[ep.type]}`);
74
- this.logger.debug(`Getting queues for exchange name=${ep.name} ns=${ep.ns} type=${index_js_3.EExchangeType[ep.type]}`);
75
- this.matchExchangeQueues(ep, msg.getExchangeRoutingKey(), (err, queues) => {
72
+ this.logger.debug(`Looking up queues for exchange [${exchangeParams.name}@${exchangeParams.ns}]...`);
73
+ this._matchExchangeQueues(exchangeParams, msg.getExchangeRoutingKey(), (err, queues) => {
76
74
  if (err) {
77
- this.logger.error('Failed to get exchange queues', err);
75
+ this.logger.error('Failed to match queues for exchange.', err);
78
76
  return cb(err);
79
77
  }
80
78
  if (!(queues === null || queues === void 0 ? void 0 : queues.length)) {
81
- this.logger.error('No matching queues found for exchange');
79
+ this.logger.error(`No queues found for exchange [${exchangeParams.name}@${exchangeParams.ns}].`);
82
80
  return cb(new index_js_2.NoMatchedQueuesForMessageExchangeError());
83
81
  }
84
- this.logger.info(`Found ${queues.length} matching queues for exchange`);
82
+ this.logger.info(`Found [${queues.length}] matching queues for exchange.`);
85
83
  const messageIds = [];
86
84
  redis_smq_common_1.async.eachOf(queues, (queue, index, done) => {
87
- this.logger.debug(`Producing message for queue ${queue.name}@${queue.ns} (${index + 1}/${queues.length})`);
88
- this.produceMessage(msg, queue, (err, reply) => {
85
+ this.logger.debug(`Producing message to queue [${queue.name}@${queue.ns}] (${index + 1}/${queues.length}).`);
86
+ this._produceToQueue(msg, queue, (err, reply) => {
89
87
  if (err) {
90
- this.logger.error(`Failed to produce message for queue ${queue.name}@${queue.ns}`, err);
88
+ this.logger.error(`Failed to produce message to queue [${queue.name}@${queue.ns}].`, err);
91
89
  return done(err);
92
90
  }
93
91
  if (reply) {
94
- this.logger.debug(`Successfully produced ${reply.length} messages for queue ${queue.name}@${queue.ns}`);
95
92
  messageIds.push(...reply);
96
93
  }
97
94
  done();
98
95
  });
99
96
  }, (err) => {
100
97
  if (err) {
101
- this.logger.error('Failed to produce messages for some queues', err);
98
+ this.logger.error('An error occurred while producing messages to one or more queues.', err);
102
99
  return cb(err);
103
100
  }
104
- this.logger.info(`Successfully produced ${messageIds.length} messages across ${queues.length} queues`);
101
+ this.logger.info(`Successfully produced [${messageIds.length}] messages across [${queues.length}] queues.`);
105
102
  cb(null, messageIds);
106
103
  });
107
104
  });
@@ -111,38 +108,41 @@ class Producer extends redis_smq_common_1.Runnable {
111
108
  }
112
109
  getRedisClient() {
113
110
  if (!this.redisClient)
114
- throw new index_js_2.ProducerError('Redis Client is not running');
111
+ throw new index_js_2.ProducerError('Redis client is not available.');
115
112
  return this.redisClient;
116
113
  }
117
114
  goingUp() {
118
- this.logger.info(`Producer ${this.getId()} is starting up`);
115
+ this.logger.info(`Producer [ID: ${this.getId()}] is going up...`);
119
116
  return super.goingUp().concat([
120
117
  (cb) => {
121
- redis_smq_common_1.async.withCallback((cb) => redis_connection_pool_js_1.RedisConnectionPool.getInstance().acquire(connection_pool_js_1.ERedisConnectionAcquisitionMode.SHARED, cb), (redisClient, cb) => {
122
- this.redisClient = redisClient;
123
- cb();
124
- }, (err) => cb(err));
118
+ redis_connection_pool_js_1.RedisConnectionPool.getInstance().acquire(connection_pool_js_1.ERedisConnectionAcquisitionMode.SHARED, (err, client) => {
119
+ if (err)
120
+ cb(err);
121
+ else {
122
+ this.redisClient = client !== null && client !== void 0 ? client : null;
123
+ cb();
124
+ }
125
+ });
125
126
  },
126
127
  (cb) => {
127
- this.logger.debug(`Emitting producer.goingUp event for producer ${this.id}`);
128
128
  this.emit('producer.goingUp', this.id);
129
129
  cb();
130
130
  },
131
- this.initQueueConsumerGroupsHandler,
131
+ this._runPubSubTargetResolver,
132
132
  ]);
133
133
  }
134
134
  up(cb) {
135
135
  super.up(() => {
136
- this.logger.info(`Producer ${this.getId()} is now up and running`);
136
+ this.logger.info(`Producer [ID: ${this.getId()}] is up.`);
137
137
  this.emit('producer.up', this.id);
138
138
  cb(null, true);
139
139
  });
140
140
  }
141
141
  goingDown() {
142
- this.logger.info(`Producer ${this.getId()} is shutting down`);
142
+ this.logger.info(`Producer [ID: ${this.getId()}] is going down...`);
143
143
  this.emit('producer.goingDown', this.id);
144
144
  return [
145
- this.shutDownQueueConsumerGroupsHandler,
145
+ this._shutdownPubSubTargetResolver,
146
146
  (cb) => {
147
147
  if (this.redisClient) {
148
148
  redis_connection_pool_js_1.RedisConnectionPool.getInstance().release(this.redisClient);
@@ -154,44 +154,23 @@ class Producer extends redis_smq_common_1.Runnable {
154
154
  }
155
155
  down(cb) {
156
156
  super.down(() => {
157
- this.logger.info(`Producer ${this.getId()} is now down`);
157
+ this.logger.info(`Producer [ID: ${this.getId()}] is down.`);
158
158
  this.emit('producer.down', this.id);
159
159
  cb(null, true);
160
160
  });
161
161
  }
162
- getQueueConsumerGroupsHandler() {
163
- if (!this.queueConsumerGroupsHandler) {
164
- const error = new redis_smq_common_1.PanicError(`Expected an instance of QueueConsumerGroupsHandler`);
165
- this.logger.error('Queue consumer groups handler not initialized', error);
166
- throw error;
162
+ getPubSubTargetResolver() {
163
+ if (!this.pubSubTargetResolver) {
164
+ throw new redis_smq_common_1.PanicError('Expected PubSubTargetResolver to be running.');
167
165
  }
168
- return this.queueConsumerGroupsHandler;
166
+ return this.pubSubTargetResolver;
169
167
  }
170
- produceMessageItem(message, queue, cb) {
171
- const messageId = message
172
- .setDestinationQueue(queue)
173
- .getMessageState()
174
- .getId();
168
+ _dispatch(message, queue, cb) {
169
+ message.setDestinationQueue(queue);
170
+ const messageId = message.getId();
175
171
  const queueName = `${queue.name}@${queue.ns}`;
176
- this.logger.debug(`Producing message item ${messageId} for queue ${queueName}${message.isSchedulable() ? ' (scheduled)' : ''}`);
177
- const handleResult = (err) => {
178
- if (err) {
179
- this.logger.error(`Failed to produce message ${messageId} for queue ${queueName}`, err);
180
- cb(err);
181
- }
182
- else {
183
- const action = message.isSchedulable() ? 'scheduled' : 'published';
184
- this.logger.info(`Message (ID ${messageId}) has been ${action} to queue ${queueName}`);
185
- if (!message.isSchedulable()) {
186
- this.logger.debug(`Emitting messagePublished event for message ${messageId}`);
187
- this.emit('producer.messagePublished', messageId, { queueParams: queue, groupId: message.getConsumerGroupId() }, this.id);
188
- }
189
- cb(null, messageId);
190
- }
191
- };
192
172
  const ts = Date.now();
193
173
  if (message.isSchedulable()) {
194
- this.logger.debug(`Scheduling message ${messageId} for future delivery`);
195
174
  message
196
175
  .getMessageState()
197
176
  .setScheduledAt(ts)
@@ -199,76 +178,81 @@ class Producer extends redis_smq_common_1.Runnable {
199
178
  .incrScheduledTimes();
200
179
  }
201
180
  else {
202
- this.logger.debug(`Enqueueing message ${messageId} for immediate delivery`);
203
181
  message.getMessageState().setPublishedAt(ts);
204
182
  }
205
- (0, _publish_message_js_1._publishMessage)(this.getRedisClient(), message, this.logger, handleResult);
183
+ (0, _publish_message_js_1._publishMessage)(this.getRedisClient(), message, this.logger, (err) => {
184
+ if (err) {
185
+ this.logger.error(`Failed to dispatch message [${messageId}] to queue [${queueName}].`, err);
186
+ cb(err);
187
+ }
188
+ else {
189
+ const action = message.isSchedulable() ? 'scheduled' : 'published';
190
+ this.logger.info(`Message [${messageId}] has been ${action} to queue [${queueName}].`);
191
+ if (!message.isSchedulable()) {
192
+ this.emit('producer.messagePublished', messageId, {
193
+ queueParams: queue,
194
+ groupId: message.getConsumerGroupId(),
195
+ }, this.id);
196
+ }
197
+ cb(null, messageId);
198
+ }
199
+ });
206
200
  }
207
- produceMessage(message, queue, cb) {
201
+ _produceToQueue(message, queue, cb) {
208
202
  const queueName = `${queue.name}@${queue.ns}`;
209
- this.logger.debug(`Producing message for queue ${queueName}`);
210
- const { isPubSub, queueConsumerGroups } = this.getQueueConsumerGroupsHandler().getConsumerGroups(queue);
203
+ const { isPubSub, targets } = this.getPubSubTargetResolver().resolveTargets(queue);
211
204
  if (isPubSub) {
212
- this.logger.debug(`Queue ${queueName} has a Pub/Sub delivery model`);
213
- if (!queueConsumerGroups.length) {
214
- this.logger.error(`Queue ${queueName} has no consumer groups`);
215
- cb(new index_js_2.QueueHasNoConsumerGroupsError());
216
- return;
205
+ if (!targets.length) {
206
+ this.logger.error(`Queue [${queueName}] is PUB/SUB but has no consumer groups.`);
207
+ return cb(new index_js_2.QueueHasNoConsumerGroupsError());
217
208
  }
218
209
  const ids = [];
219
- this.logger.debug(`Producing message for ${queueConsumerGroups.length} consumer groups in queue ${queueName}`);
220
- redis_smq_common_1.async.eachOf(queueConsumerGroups, (group, _, done) => {
221
- this.logger.debug(`Producing message for consumer group ${group} in queue ${queueName}`);
222
- const msg = new message_envelope_js_1.MessageEnvelope(message).setConsumerGroupId(group);
223
- this.produceMessageItem(msg, queue, (err, reply) => {
224
- if (err) {
225
- this.logger.error(`Failed to produce message for consumer group ${group}`, err);
226
- done(err);
227
- }
228
- else {
229
- this.logger.debug(`Successfully produced message ${reply} for consumer group ${group}`);
230
- ids.push(String(reply));
231
- done();
232
- }
210
+ this.logger.debug(`Fanning out message to [${targets.length}] consumer groups for queue [${queueName}].`);
211
+ redis_smq_common_1.async.eachOf(targets, (groupId, _, done) => {
212
+ const msg = new message_envelope_js_1.MessageEnvelope(message).setConsumerGroupId(groupId);
213
+ this._dispatch(msg, queue, (err, reply) => {
214
+ if (err)
215
+ return done(err);
216
+ if (reply)
217
+ ids.push(reply);
218
+ done();
233
219
  });
234
220
  }, (err) => {
235
221
  if (err) {
236
- this.logger.error(`Failed to produce messages for some consumer groups in queue ${queueName}`, err);
237
- cb(err);
238
- }
239
- else {
240
- this.logger.info(`Successfully produced ${ids.length} messages for queue ${queueName}`);
241
- cb(null, ids);
222
+ this.logger.error(`Failed to produce messages to one or more consumer groups for queue [${queueName}].`, err);
223
+ return cb(err);
242
224
  }
225
+ this.logger.info(`Successfully produced [${ids.length}] messages to queue [${queueName}].`);
226
+ cb(null, ids);
243
227
  });
244
228
  }
245
229
  else {
246
- this.logger.debug(`Queue ${queueName} has no consumer groups, producing message directly`);
247
230
  const msg = new message_envelope_js_1.MessageEnvelope(message);
248
- this.produceMessageItem(msg, queue, (err, reply) => {
231
+ this._dispatch(msg, queue, (err, reply) => {
249
232
  if (err) {
250
- this.logger.error(`Failed to produce message for queue ${queueName}`, err);
251
- cb(err);
252
- }
253
- else {
254
- this.logger.info(`Successfully produced message ${reply} for queue ${queueName}`);
255
- cb(null, [String(reply)]);
233
+ this.logger.error(`Failed to produce message to queue [${queueName}].`, err);
234
+ return cb(err);
256
235
  }
236
+ this.logger.info(`Successfully produced message [${reply}] to queue [${queueName}].`);
237
+ cb(null, reply ? [reply] : []);
257
238
  });
258
239
  }
259
240
  }
260
- matchExchangeQueues(exchange, routingKey, cb) {
241
+ _matchExchangeQueues(exchange, routingKey, cb) {
261
242
  if (exchange.type === index_js_3.EExchangeType.DIRECT) {
262
243
  if (!routingKey)
263
- return cb(new index_js_2.ProducerError('A routing key is required.'));
244
+ return cb(new index_js_2.RoutingKeyRequiredError());
264
245
  return this.directExchange.matchQueues(exchange, routingKey, cb);
265
246
  }
266
247
  if (exchange.type === index_js_3.EExchangeType.TOPIC) {
267
248
  if (!routingKey)
268
- return cb(new index_js_2.ProducerError('A routing key is required.'));
249
+ return cb(new index_js_2.RoutingKeyRequiredError());
269
250
  return this.topicExchange.matchQueues(exchange, routingKey, cb);
270
251
  }
271
- this.fanoutExchange.matchQueues(exchange, cb);
252
+ if (exchange.type === index_js_3.EExchangeType.FANOUT) {
253
+ return this.fanoutExchange.matchQueues(exchange, cb);
254
+ }
255
+ cb(new index_js_2.ProducerError(`Unsupported exchange type.`));
272
256
  }
273
257
  }
274
258
  exports.Producer = Producer;
@@ -1 +1 @@
1
- {"version":3,"file":"producer.js","sourceRoot":"","sources":["../../../../src/producer/producer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"producer.js","sourceRoot":"","sources":["../../../../src/producer/producer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { EventBusRedis, ICallback, ILogger, Runnable, TRedisClientEvent } from 'redis-smq-common';
2
+ import { IQueueParams, IQueueProperties } from '../queue-manager/index.js';
3
+ import { Producer } from './producer.js';
4
+ export declare class PubSubTargetResolver extends Runnable<Pick<TRedisClientEvent, 'error'>> {
5
+ protected eventBus: EventBusRedis<import("redis-smq-common").TEventBusEvent>;
6
+ protected producerId: string;
7
+ protected logger: ILogger;
8
+ protected pubSubTargets: Record<string, string[]>;
9
+ constructor(producer: Producer);
10
+ resolveTargets(queue: IQueueParams): {
11
+ isPubSub: boolean;
12
+ targets: string[];
13
+ };
14
+ protected getLogger(): ILogger;
15
+ protected goingUp(): ((cb: ICallback<void>) => void)[];
16
+ protected goingDown(): ((cb: ICallback<void>) => void)[];
17
+ protected onConsumerGroupCreated: (queue: IQueueParams, groupId: string) => void;
18
+ protected onConsumerGroupDeleted: (queue: IQueueParams, groupId: string) => void;
19
+ protected onQueueCreated: (queue: IQueueParams, properties: IQueueProperties) => void;
20
+ protected onQueueDeleted: (queue: IQueueParams) => void;
21
+ protected subscribeToEvents: (cb: ICallback<void>) => void;
22
+ protected unsubscribeFromEvents: (cb: ICallback) => void;
23
+ protected loadAndCacheInitialTargets: (cb: ICallback<void>) => void;
24
+ protected clearCache: (cb: ICallback<void>) => void;
25
+ private getQueueKey;
26
+ }
27
+ //# sourceMappingURL=pub-sub-target-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pub-sub-target-resolver.d.ts","sourceRoot":"","sources":["../../../../src/producer/pub-sub-target-resolver.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,aAAa,EACb,SAAS,EACT,OAAO,EACP,QAAQ,EACR,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAEL,YAAY,EACZ,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAgBzC,qBAAa,oBAAqB,SAAQ,QAAQ,CAChD,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CACjC;IACC,SAAS,CAAC,QAAQ,2DAAC;IACnB,SAAS,CAAC,UAAU,SAAC;IACrB,SAAS,CAAC,MAAM,UAAC;IAQjB,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAM;gBAE3C,QAAQ,EAAE,QAAQ;IAgC9B,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG;QACnC,QAAQ,EAAE,OAAO,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB;cAsBkB,SAAS,IAAI,OAAO;cAIpB,OAAO,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;cAW5C,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;IAajE,SAAS,CAAC,sBAAsB,GAAI,OAAO,YAAY,EAAE,SAAS,MAAM,UAgBtE;IAMF,SAAS,CAAC,sBAAsB,GAAI,OAAO,YAAY,EAAE,SAAS,MAAM,UAgBtE;IAMF,SAAS,CAAC,cAAc,GACtB,OAAO,YAAY,EACnB,YAAY,gBAAgB,UAW5B;IAMF,SAAS,CAAC,cAAc,GAAI,OAAO,YAAY,UAO7C;IAKF,SAAS,CAAC,iBAAiB,GAAI,IAAI,SAAS,CAAC,IAAI,CAAC,KAAG,IAAI,CAQvD;IAKF,SAAS,CAAC,qBAAqB,GAAI,IAAI,SAAS,KAAG,IAAI,CAcrD;IAWF,SAAS,CAAC,0BAA0B,GAAI,IAAI,SAAS,CAAC,IAAI,CAAC,KAAG,IAAI,CA2EhE;IAKF,SAAS,CAAC,UAAU,GAAI,IAAI,SAAS,CAAC,IAAI,CAAC,KAAG,IAAI,CAMhD;IAOF,OAAO,CAAC,WAAW;CAGpB"}