@amqp-contract/worker 0.21.0 → 0.23.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.
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { ConsumerDefinition, ConsumerEntry, ContractDefinition, InferConsumerNames, MessageDefinition } from "@amqp-contract/contract";
1
+ import { ConsumerDefinition, ConsumerEntry, ContractDefinition, InferConsumerNames, InferRpcNames, MessageDefinition, RpcDefinition } from "@amqp-contract/contract";
2
2
  import { ConsumerOptions as ConsumerOptions$1, Logger, MessageValidationError, TechnicalError, TelemetryProvider } from "@amqp-contract/core";
3
3
  import { Future, Result } from "@swan-io/boxed";
4
4
  import * as amqp from "amqplib";
@@ -212,27 +212,37 @@ type ExtractConsumerDefinition<T extends ConsumerEntry> = T extends ConsumerDefi
212
212
  */
213
213
  type ConsumerInferPayloadOutput<TConsumer extends ConsumerEntry> = ExtractConsumerDefinition<TConsumer> extends ConsumerDefinition ? InferSchemaOutput<ExtractConsumerDefinition<TConsumer>["message"]["payload"]> : never;
214
214
  /**
215
- * Infer consumer message headers output type
215
+ * Infer consumer message headers output type.
216
216
  * Returns undefined if no headers schema is defined.
217
217
  */
218
218
  type ConsumerInferHeadersOutput<TConsumer extends ConsumerEntry> = ExtractConsumerDefinition<TConsumer> extends ConsumerDefinition ? ExtractConsumerDefinition<TConsumer>["message"] extends MessageDefinition<infer _TPayload, infer THeaders> ? THeaders extends StandardSchemaV1<Record<string, unknown>> ? InferSchemaOutput<THeaders> : undefined : undefined : undefined;
219
- /**
220
- * Infer all consumers from contract
221
- */
222
219
  type InferConsumers<TContract extends ContractDefinition> = NonNullable<TContract["consumers"]>;
223
- /**
224
- * Get specific consumer entry from contract
225
- */
226
220
  type InferConsumer<TContract extends ContractDefinition, TName extends InferConsumerNames<TContract>> = InferConsumers<TContract>[TName];
221
+ type InferRpcs<TContract extends ContractDefinition> = NonNullable<TContract["rpcs"]>;
222
+ type InferRpc<TContract extends ContractDefinition, TName extends InferRpcNames<TContract>> = InferRpcs<TContract>[TName];
227
223
  /**
228
- * Infer the payload type for a specific consumer
224
+ * Infer the payload type for a regular consumer (validated against the message schema).
229
225
  */
230
226
  type WorkerInferConsumerPayload<TContract extends ContractDefinition, TName extends InferConsumerNames<TContract>> = ConsumerInferPayloadOutput<InferConsumer<TContract, TName>>;
231
227
  /**
232
- * Infer the headers type for a specific consumer
233
- * Returns undefined if no headers schema is defined
228
+ * Infer the headers type for a regular consumer.
229
+ * Returns undefined if no headers schema is defined.
234
230
  */
235
231
  type WorkerInferConsumerHeaders<TContract extends ContractDefinition, TName extends InferConsumerNames<TContract>> = ConsumerInferHeadersOutput<InferConsumer<TContract, TName>>;
232
+ /**
233
+ * Infer the request payload type for an RPC.
234
+ */
235
+ type WorkerInferRpcRequest<TContract extends ContractDefinition, TName extends InferRpcNames<TContract>> = InferRpc<TContract, TName> extends RpcDefinition<infer TRequest, MessageDefinition> ? TRequest extends MessageDefinition ? InferSchemaOutput<TRequest["payload"]> : never : never;
236
+ /**
237
+ * Infer the request headers type for an RPC. Returns undefined unless the RPC's
238
+ * request `MessageDefinition` declares a headers schema.
239
+ */
240
+ type WorkerInferRpcHeaders<TContract extends ContractDefinition, TName extends InferRpcNames<TContract>> = InferRpc<TContract, TName> extends RpcDefinition<infer TRequest, MessageDefinition> ? TRequest extends MessageDefinition<infer _TPayload, infer THeaders> ? THeaders extends StandardSchemaV1<Record<string, unknown>> ? InferSchemaOutput<THeaders> : undefined : undefined : undefined;
241
+ /**
242
+ * Infer the response payload type for an RPC. The handler must return a
243
+ * `Future<Result<TResponse, HandlerError>>` matching this shape.
244
+ */
245
+ type WorkerInferRpcResponse<TContract extends ContractDefinition, TName extends InferRpcNames<TContract>> = InferRpc<TContract, TName> extends RpcDefinition<MessageDefinition, infer TResponse> ? TResponse extends MessageDefinition ? InferSchemaOutput<TResponse["payload"]> : never : never;
236
246
  /**
237
247
  * A consumed message containing parsed payload and headers.
238
248
  *
@@ -244,7 +254,6 @@ type WorkerInferConsumerHeaders<TContract extends ContractDefinition, TName exte
244
254
  *
245
255
  * @example
246
256
  * ```typescript
247
- * // Handler receives the consumed message with typed payload and headers
248
257
  * const handler = defineHandler(contract, 'processOrder', (message, rawMessage) => {
249
258
  * console.log(message.payload.orderId); // Typed payload
250
259
  * console.log(message.headers?.priority); // Typed headers (if defined)
@@ -258,61 +267,57 @@ type WorkerConsumedMessage<TPayload, THeaders = undefined> = {
258
267
  headers: THeaders extends undefined ? undefined : THeaders;
259
268
  };
260
269
  /**
261
- * Infer the full consumed message type for a specific consumer.
262
- * Includes both payload and headers (if defined).
270
+ * Infer the full consumed message type for a regular consumer.
263
271
  */
264
272
  type WorkerInferConsumedMessage<TContract extends ContractDefinition, TName extends InferConsumerNames<TContract>> = WorkerConsumedMessage<WorkerInferConsumerPayload<TContract, TName>, WorkerInferConsumerHeaders<TContract, TName>>;
265
273
  /**
266
- * Consumer handler type for a specific consumer.
267
- * Returns a `Future<Result<void, HandlerError>>` for explicit error handling.
268
- *
269
- * Error handling:
270
- * - RetryableError: Message will be retried with exponential backoff
271
- * - NonRetryableError: Message will be immediately sent to DLQ
272
- *
273
- * The `WorkerInfer*` naming pattern indicates type inference helpers that extract
274
- * types from a contract definition at compile time.
275
- *
276
- * @param message - The parsed message containing validated payload and headers
277
- * @param rawMessage - The raw AMQP message with all metadata (fields, properties, content)
278
- *
279
- * @example
280
- * ```typescript
281
- * const handler: WorkerInferConsumerHandler<typeof contract, 'processOrder'> =
282
- * ({ payload }, rawMessage) => {
283
- * console.log(payload.orderId); // Typed payload
284
- * console.log(rawMessage.fields.deliveryTag); // Raw AMQP message
285
- * return Future.value(Result.Ok(undefined));
286
- * };
287
- * ```
274
+ * Infer the consumed message type for an RPC handler — payload + headers from
275
+ * the request side of the RPC.
276
+ */
277
+ type WorkerInferRpcConsumedMessage<TContract extends ContractDefinition, TName extends InferRpcNames<TContract>> = WorkerConsumedMessage<WorkerInferRpcRequest<TContract, TName>, WorkerInferRpcHeaders<TContract, TName>>;
278
+ /**
279
+ * Handler signature for a regular consumer (event/command). Returns
280
+ * `Future<Result<void, HandlerError>>` — there is no response message.
288
281
  */
289
282
  type WorkerInferConsumerHandler<TContract extends ContractDefinition, TName extends InferConsumerNames<TContract>> = (message: WorkerInferConsumedMessage<TContract, TName>, rawMessage: ConsumeMessage) => Future<Result<void, HandlerError>>;
290
283
  /**
291
- * Handler entry for a consumer - either a function or a tuple of [handler, options].
292
- *
293
- * Two patterns are supported:
294
- * 1. Simple handler: `({ payload }, rawMessage) => Future.value(Result.Ok(undefined))`
295
- * 2. Handler with prefetch: `[({ payload }, rawMessage) => ..., { prefetch: 10 }]`
296
- *
297
- * Note: Retry configuration is now defined at the queue level in the contract,
298
- * not at the handler level. See `QueueDefinition.retry` for configuration options.
284
+ * Handler signature for an RPC. Returns
285
+ * `Future<Result<TResponse, HandlerError>>` where `TResponse` is the inferred
286
+ * response payload. The worker validates the response against the RPC's
287
+ * response schema and publishes it back to `msg.properties.replyTo` with the
288
+ * same `correlationId`.
289
+ */
290
+ type WorkerInferRpcHandler<TContract extends ContractDefinition, TName extends InferRpcNames<TContract>> = (message: WorkerInferRpcConsumedMessage<TContract, TName>, rawMessage: ConsumeMessage) => Future<Result<WorkerInferRpcResponse<TContract, TName>, HandlerError>>;
291
+ /**
292
+ * Handler entry for a regular consumer — function or `[handler, options]`.
299
293
  */
300
294
  type WorkerInferConsumerHandlerEntry<TContract extends ContractDefinition, TName extends InferConsumerNames<TContract>> = WorkerInferConsumerHandler<TContract, TName> | readonly [WorkerInferConsumerHandler<TContract, TName>, ConsumerOptions];
301
295
  /**
302
- * Consumer handlers for a contract.
303
- * All handlers return `Future<Result<void, HandlerError>>` for explicit error control.
296
+ * Handler entry for an RPC — function or `[handler, options]`.
297
+ */
298
+ type WorkerInferRpcHandlerEntry<TContract extends ContractDefinition, TName extends InferRpcNames<TContract>> = WorkerInferRpcHandler<TContract, TName> | readonly [WorkerInferRpcHandler<TContract, TName>, ConsumerOptions];
299
+ /**
300
+ * All handlers for a contract: one entry per `consumers` key plus one entry
301
+ * per `rpcs` key. The two name spaces are disjoint so the resulting object
302
+ * type is unambiguous.
304
303
  *
305
304
  * @example
306
305
  * ```typescript
307
- * const handlers: WorkerInferConsumerHandlers<typeof contract> = {
306
+ * const handlers: WorkerInferHandlers<typeof contract> = {
308
307
  * processOrder: ({ payload }) =>
309
308
  * Future.fromPromise(processPayment(payload))
310
309
  * .mapOk(() => undefined)
311
310
  * .mapError((error) => new RetryableError('Payment failed', error)),
311
+ * calculate: ({ payload }) =>
312
+ * Future.value(Result.Ok({ sum: payload.a + payload.b })),
312
313
  * };
313
314
  * ```
314
315
  */
315
- type WorkerInferConsumerHandlers<TContract extends ContractDefinition> = { [K in InferConsumerNames<TContract>]: WorkerInferConsumerHandlerEntry<TContract, K> };
316
+ type WorkerInferHandlers<TContract extends ContractDefinition> = ([InferConsumerNames<TContract>] extends [never] ? {} : { [K in InferConsumerNames<TContract>]: WorkerInferConsumerHandlerEntry<TContract, K> }) & ([InferRpcNames<TContract>] extends [never] ? {} : { [K in InferRpcNames<TContract>]: WorkerInferRpcHandlerEntry<TContract, K> });
317
+ /**
318
+ * @deprecated Use `WorkerInferHandlers` — handlers now span consumers ∪ rpcs.
319
+ */
320
+ type WorkerInferConsumerHandlers<TContract extends ContractDefinition> = WorkerInferHandlers<TContract>;
316
321
  //#endregion
317
322
  //#region src/worker.d.ts
318
323
  type ConsumerOptions = ConsumerOptions$1;
@@ -357,11 +362,16 @@ type ConsumerOptions = ConsumerOptions$1;
357
362
  type CreateWorkerOptions<TContract extends ContractDefinition> = {
358
363
  /** The AMQP contract definition specifying consumers and their message schemas */contract: TContract;
359
364
  /**
360
- * Handlers for each consumer defined in the contract.
361
- * Handlers must return `Future<Result<void, HandlerError>>` for explicit error handling.
362
- * Use defineHandler() to create handlers.
365
+ * Handlers for each `consumers` and `rpcs` entry in the contract.
366
+ *
367
+ * - Regular consumers return `Future<Result<void, HandlerError>>`.
368
+ * - RPC handlers return `Future<Result<TResponse, HandlerError>>` where
369
+ * `TResponse` is inferred from the RPC's response message schema.
370
+ *
371
+ * Use `defineHandler` / `defineHandlers` to create handlers with full type
372
+ * inference.
363
373
  */
364
- handlers: WorkerInferConsumerHandlers<TContract>; /** AMQP broker URL(s). Multiple URLs provide failover support */
374
+ handlers: WorkerInferHandlers<TContract>; /** AMQP broker URL(s). Multiple URLs provide failover support */
365
375
  urls: ConnectionUrl[]; /** Optional connection configuration (heartbeat, reconnect settings, etc.) */
366
376
  connectionOptions?: AmqpConnectionManagerOptions | undefined; /** Optional logger for logging message consumption and errors */
367
377
  logger?: Logger | undefined;
@@ -376,6 +386,13 @@ type CreateWorkerOptions<TContract extends ContractDefinition> = {
376
386
  * Handler-specific options provided in tuple form override these defaults.
377
387
  */
378
388
  defaultConsumerOptions?: ConsumerOptions | undefined;
389
+ /**
390
+ * Maximum time in ms to wait for the AMQP connection to become ready before
391
+ * `create()` resolves to `Result.Error<TechnicalError>`. Defaults to 30s
392
+ * (the {@link AmqpClient}'s `DEFAULT_CONNECT_TIMEOUT_MS`). Pass `null` to
393
+ * disable the timeout and let amqp-connection-manager retry indefinitely.
394
+ */
395
+ connectTimeoutMs?: number | null | undefined;
379
396
  };
380
397
  /**
381
398
  * Type-safe AMQP worker for consuming messages from RabbitMQ.
@@ -424,13 +441,24 @@ declare class TypedAmqpWorker<TContract extends ContractDefinition> {
424
441
  private readonly defaultConsumerOptions;
425
442
  private readonly logger?;
426
443
  /**
427
- * Internal handler storage - handlers returning `Future<Result>`.
444
+ * Internal handler storage. Keyed by handler name (consumer or RPC); the
445
+ * stored function signature is widened so the dispatch loop can call it
446
+ * uniformly. The actual handler is type-checked at the worker's public API
447
+ * boundary via `WorkerInferHandlers<TContract>`.
428
448
  */
429
449
  private readonly actualHandlers;
430
450
  private readonly consumerOptions;
431
451
  private readonly consumerTags;
432
452
  private readonly telemetry;
433
453
  private constructor();
454
+ /**
455
+ * Build a `ConsumerDefinition`-shaped view for a handler name, regardless
456
+ * of whether it came from `contract.consumers` or `contract.rpcs`. The
457
+ * dispatch path treats both uniformly; the returned `isRpc` flag (and the
458
+ * accompanying `responseSchema`) tells `processMessage` whether to validate
459
+ * the handler return value and publish a reply.
460
+ */
461
+ private resolveConsumerView;
434
462
  /**
435
463
  * Create a type-safe AMQP worker from a contract.
436
464
  *
@@ -463,7 +491,8 @@ declare class TypedAmqpWorker<TContract extends ContractDefinition> {
463
491
  connectionOptions,
464
492
  defaultConsumerOptions,
465
493
  logger,
466
- telemetry
494
+ telemetry,
495
+ connectTimeoutMs
467
496
  }: CreateWorkerOptions<TContract>): Future<Result<TypedAmqpWorker<TContract>, TechnicalError>>;
468
497
  /**
469
498
  * Close the AMQP channel and connection.
@@ -483,108 +512,57 @@ declare class TypedAmqpWorker<TContract extends ContractDefinition> {
483
512
  */
484
513
  close(): Future<Result<void, TechnicalError>>;
485
514
  /**
486
- * Get the retry configuration for a consumer's queue.
487
- * Defaults are applied in the contract's defineQueue, so we just return the config.
488
- */
489
- private getRetryConfigForConsumer;
490
- /**
491
- * Start consuming messages for all consumers.
492
- * TypeScript guarantees consumers exist (handlers require matching consumers).
515
+ * Start consuming for every entry in `contract.consumers` and `contract.rpcs`.
493
516
  */
494
517
  private consumeAll;
495
518
  private waitForConnectionReady;
496
519
  /**
497
- * Start consuming messages for a specific consumer.
498
- * TypeScript guarantees consumer and handler exist for valid consumer names.
520
+ * Start consuming messages for a specific handler — either a `consumers`
521
+ * entry (regular event/command consumer) or an `rpcs` entry (RPC server).
499
522
  */
500
523
  private consume;
501
524
  /**
502
- * Validate data against a Standard Schema and handle errors.
525
+ * Validate data against a Standard Schema. No side effects; the caller is
526
+ * responsible for ack/nack based on the Result.
503
527
  */
504
528
  private validateSchema;
505
529
  /**
506
- * Parse and validate a message from AMQP.
507
- * @returns Ok with validated message (payload + headers), or Error (message already nacked)
530
+ * Parse and validate a message from AMQP. Pure: returns the validated payload
531
+ * and headers, or an error. The dispatch path in {@link processMessage} routes
532
+ * validation/parse errors directly to the DLQ (single nack) — they never enter
533
+ * the retry pipeline because retrying an unparseable or schema-violating
534
+ * payload cannot succeed.
508
535
  */
509
536
  private parseAndValidateMessage;
510
537
  /**
511
- * Consume messages one at a time
512
- */
513
- private consumeSingle;
514
- /**
515
- * Handle error in message processing with retry logic.
516
- *
517
- * Flow depends on retry mode:
518
- *
519
- * **immediate-requeue mode:**
520
- * 1. If NonRetryableError -> send directly to DLQ (no retry)
521
- * 2. If max retries exceeded -> send to DLQ
522
- * 3. Otherwise -> requeue immediately for retry
523
- *
524
- * **ttl-backoff mode:**
525
- * 1. If NonRetryableError -> send directly to DLQ (no retry)
526
- * 2. If max retries exceeded -> send to DLQ
527
- * 3. Otherwise -> publish to wait queue with TTL for retry
528
- *
529
- * **none mode (no retry config):**
530
- * 1. send directly to DLQ (no retry)
531
- */
532
- private handleError;
533
- /**
534
- * Handle error by requeuing immediately.
535
- *
536
- * For quorum queues, messages are requeued with `nack(requeue=true)`, and the worker tracks delivery count via the native RabbitMQ `x-delivery-count` header.
537
- * For classic queues, messages are re-published on the same queue, and the worker tracks delivery count via a custom `x-retry-count` header.
538
- * When the count exceeds `maxRetries`, the message is automatically dead-lettered (if DLX is configured) or dropped.
539
- *
540
- * This is simpler than TTL-based retry but provides immediate retries only.
541
- */
542
- private handleErrorImmediateRequeue;
543
- /**
544
- * Handle error using TTL + wait queue pattern for exponential backoff.
538
+ * Validate an RPC handler's response and publish it back to the caller's reply
539
+ * queue with the same `correlationId`. Published via the AMQP default exchange
540
+ * with `routingKey = msg.properties.replyTo`, which works for both
541
+ * `amq.rabbitmq.reply-to` and any anonymous queue declared by the caller.
545
542
  *
546
- * ┌─────────────────────────────────────────────────────────────────┐
547
- * Retry Flow (Native RabbitMQ TTL + Wait queue pattern) │
548
- * ├─────────────────────────────────────────────────────────────────┤
549
- * │ │
550
- * 1. Handler throws any Error │
551
- * │ ↓ │
552
- * 2. Worker publishes to wait exchange |
553
- * | (with header `x-wait-queue` set to the wait queue name) │
554
- * │ ↓ │
555
- * 3. Wait exchange routes to wait queue │
556
- * │ (with expiration: calculated backoff delay) │
557
- * │ ↓ │
558
- * │ 4. Message waits in queue until TTL expires │
559
- * │ ↓ │
560
- * │ 5. Expired message dead-lettered to retry exchange |
561
- * | (with header `x-retry-queue` set to the main queue name) │
562
- * │ ↓ │
563
- * │ 6. Retry exchange routes back to main queue → RETRY │
564
- * │ ↓ │
565
- * │ 7. If retries exhausted: nack without requeue → DLQ │
566
- * │ │
567
- * └─────────────────────────────────────────────────────────────────┘
568
- */
569
- private handleErrorTtlBackoff;
570
- /**
571
- * Calculate retry delay with exponential backoff and optional jitter.
543
+ * Failure semantics:
544
+ * - **Missing replyTo / correlationId**: NonRetryableError. The caller is
545
+ * already lost; retrying the original message cannot recover the reply
546
+ * path. The poison message lands in DLQ for inspection rather than being
547
+ * silently ack'd (which would mask a contract violation).
548
+ * - **Schema validation failure**: NonRetryableError — the handler returned
549
+ * the wrong shape; retrying the same input will not fix it.
550
+ * - **Publish failure**: NonRetryableError. The caller has already timed out
551
+ * (or will shortly), so retrying the message wastes the queue's retry
552
+ * budget on a reply that no one is waiting for. The message is logged and
553
+ * DLQ'd; the original work is treated as completed for the purpose of the
554
+ * inbox.
572
555
  */
573
- private calculateRetryDelay;
556
+ private publishRpcResponse;
574
557
  /**
575
- * Parse message content for republishing.
576
- * Prevents double JSON serialization by converting Buffer to object when possible.
558
+ * Process a single consumed message: validate, invoke handler, optionally
559
+ * publish the RPC response, record telemetry, and handle errors.
577
560
  */
578
- private parseMessageContentForRetry;
561
+ private processMessage;
579
562
  /**
580
- * Publish message with an incremented x-retry-count header and optional TTL.
563
+ * Consume messages one at a time.
581
564
  */
582
- private publishForRetry;
583
- /**
584
- * Send message to dead letter queue.
585
- * Nacks the message without requeue, relying on DLX configuration.
586
- */
587
- private sendToDLQ;
565
+ private consumeSingle;
588
566
  }
589
567
  //#endregion
590
568
  //#region src/handlers.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":["amqp","EventEmitter","TcpSocketConnectOpts","ConnectionOptions","ChannelWrapper","CreateChannelOpts","ConnectionUrl","Options","Connect","AmqpConnectionOptions","url","connectionOptions","ConnectListener","Connection","connection","arg","ConnectFailedListener","Error","err","Buffer","noDelay","timeout","keepAlive","keepAliveDelay","clientProperties","credentials","mechanism","username","password","response","AmqpConnectionManagerOptions","Promise","heartbeatIntervalInSeconds","reconnectTimeInSeconds","findServers","urls","callback","IAmqpConnectionManager","Function","ChannelModel","addListener","event","args","listener","reason","listeners","eventName","on","once","prependListener","prependOnceListener","removeListener","connect","options","reconnect","createChannel","close","isConnected","channelCount","AmqpConnectionManager","_channels","_currentUrl","_closed","_cancelRetriesHandler","_connectPromise","_currentConnection","_findServers","_urls","constructor","_connect","default"],"sources":["../../../node_modules/.pnpm/amqp-connection-manager@5.0.0_amqplib@1.0.3/node_modules/amqp-connection-manager/dist/types/AmqpConnectionManager.d.ts","../src/errors.ts","../src/types.ts","../src/worker.ts","../src/handlers.ts"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":["amqp","EventEmitter","TcpSocketConnectOpts","ConnectionOptions","ChannelWrapper","CreateChannelOpts","ConnectionUrl","Options","Connect","AmqpConnectionOptions","url","connectionOptions","ConnectListener","Connection","connection","arg","ConnectFailedListener","Error","err","Buffer","noDelay","timeout","keepAlive","keepAliveDelay","clientProperties","credentials","mechanism","username","password","response","AmqpConnectionManagerOptions","Promise","heartbeatIntervalInSeconds","reconnectTimeInSeconds","findServers","urls","callback","IAmqpConnectionManager","Function","ChannelModel","addListener","event","args","listener","reason","listeners","eventName","on","once","prependListener","prependOnceListener","removeListener","connect","options","reconnect","createChannel","close","isConnected","channelCount","AmqpConnectionManager","_channels","_currentUrl","_closed","_cancelRetriesHandler","_connectPromise","_currentConnection","_findServers","_urls","constructor","_connect","default"],"sources":["../../../node_modules/.pnpm/amqp-connection-manager@5.0.0_amqplib@1.0.3/node_modules/amqp-connection-manager/dist/types/AmqpConnectionManager.d.ts","../src/errors.ts","../src/types.ts","../src/worker.ts","../src/handlers.ts"],"x_google_ignoreList":[0],"mappings":"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"}