@amqp-contract/worker 0.25.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,14 +1,148 @@
1
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
- import * as amqp from "amqplib";
4
- import { ConsumeMessage } from "amqplib";
5
- import { TcpSocketConnectOpts } from "net";
6
3
  import { ConnectionOptions } from "tls";
7
- import { ResultAsync } from "neverthrow";
4
+ import { TcpSocketConnectOpts } from "net";
5
+ import { AsyncResult } from "unthrown";
8
6
  import { StandardSchemaV1 } from "@standard-schema/spec";
9
7
 
10
- //#region ../../node_modules/.pnpm/amqp-connection-manager@5.0.0_amqplib@0.10.9/node_modules/amqp-connection-manager/dist/types/AmqpConnectionManager.d.ts
11
- type ConnectionUrl = string | amqp.Options.Connect | {
8
+ //#region ../../node_modules/.pnpm/amqplib@2.0.1/node_modules/amqplib/lib/properties.d.ts
9
+ declare namespace Options {
10
+ interface Connect {
11
+ protocol?: string;
12
+ hostname?: string;
13
+ port?: number;
14
+ username?: string;
15
+ password?: string;
16
+ locale?: string;
17
+ frameMax?: number;
18
+ heartbeat?: number;
19
+ vhost?: string;
20
+ channelMax?: number;
21
+ credentials?: {
22
+ mechanism: string;
23
+ response(): Buffer;
24
+ username?: string;
25
+ password?: string;
26
+ };
27
+ }
28
+ interface AssertQueue {
29
+ exclusive?: boolean;
30
+ durable?: boolean;
31
+ autoDelete?: boolean;
32
+ arguments?: any;
33
+ messageTtl?: number;
34
+ expires?: number;
35
+ deadLetterExchange?: string;
36
+ deadLetterRoutingKey?: string;
37
+ maxLength?: number;
38
+ maxPriority?: number;
39
+ overflow?: string;
40
+ queueMode?: string;
41
+ }
42
+ interface DeleteQueue {
43
+ ifUnused?: boolean;
44
+ ifEmpty?: boolean;
45
+ }
46
+ interface AssertExchange {
47
+ durable?: boolean;
48
+ internal?: boolean;
49
+ autoDelete?: boolean;
50
+ alternateExchange?: string;
51
+ arguments?: any;
52
+ }
53
+ interface DeleteExchange {
54
+ ifUnused?: boolean;
55
+ }
56
+ interface Publish {
57
+ expiration?: string | number;
58
+ userId?: string;
59
+ CC?: string | string[];
60
+ mandatory?: boolean;
61
+ persistent?: boolean;
62
+ deliveryMode?: boolean | number;
63
+ BCC?: string | string[];
64
+ contentType?: string;
65
+ contentEncoding?: string;
66
+ headers?: any;
67
+ priority?: number;
68
+ correlationId?: string;
69
+ replyTo?: string;
70
+ messageId?: string;
71
+ timestamp?: number;
72
+ type?: string;
73
+ appId?: string;
74
+ }
75
+ interface Consume {
76
+ consumerTag?: string;
77
+ noLocal?: boolean;
78
+ noAck?: boolean;
79
+ exclusive?: boolean;
80
+ priority?: number;
81
+ arguments?: any;
82
+ }
83
+ interface Get {
84
+ noAck?: boolean;
85
+ }
86
+ }
87
+ interface Message {
88
+ content: Buffer;
89
+ fields: MessageFields;
90
+ properties: MessageProperties;
91
+ }
92
+ interface ConsumeMessage extends Message {
93
+ fields: ConsumeMessageFields;
94
+ }
95
+ interface CommonMessageFields {
96
+ deliveryTag: number;
97
+ redelivered: boolean;
98
+ exchange: string;
99
+ routingKey: string;
100
+ }
101
+ interface MessageFields extends CommonMessageFields {
102
+ messageCount?: number;
103
+ consumerTag?: string;
104
+ }
105
+ interface ConsumeMessageFields extends CommonMessageFields {
106
+ consumerTag: string;
107
+ }
108
+ interface MessageProperties {
109
+ contentType: any | undefined;
110
+ contentEncoding: any | undefined;
111
+ headers: MessagePropertyHeaders | undefined;
112
+ deliveryMode: any | undefined;
113
+ priority: any | undefined;
114
+ correlationId: any | undefined;
115
+ replyTo: any | undefined;
116
+ expiration: any | undefined;
117
+ messageId: any | undefined;
118
+ timestamp: any | undefined;
119
+ type: any | undefined;
120
+ userId: any | undefined;
121
+ appId: any | undefined;
122
+ clusterId: any | undefined;
123
+ }
124
+ interface MessagePropertyHeaders {
125
+ 'x-first-death-exchange'?: string;
126
+ 'x-first-death-queue'?: string;
127
+ 'x-first-death-reason'?: string;
128
+ 'x-death'?: XDeath[];
129
+ [key: string]: any;
130
+ }
131
+ interface XDeath {
132
+ count: number;
133
+ reason: 'rejected' | 'expired' | 'maxlen';
134
+ queue: string;
135
+ time: {
136
+ '!': 'timestamp';
137
+ value: number;
138
+ };
139
+ exchange: string;
140
+ 'original-expiration'?: any;
141
+ 'routing-keys': string[];
142
+ }
143
+ //#endregion
144
+ //#region ../../node_modules/.pnpm/amqp-connection-manager@5.0.0_amqplib@2.0.1/node_modules/amqp-connection-manager/dist/types/AmqpConnectionManager.d.ts
145
+ type ConnectionUrl = string | Options.Connect | {
12
146
  url: string;
13
147
  connectionOptions?: AmqpConnectionOptions;
14
148
  };
@@ -49,38 +183,52 @@ interface AmqpConnectionManagerOptions {
49
183
  }
50
184
  //#endregion
51
185
  //#region src/errors.d.ts
52
- /**
53
- * Abstract base class for all handler-signalled errors.
54
- *
55
- * Concrete subclasses (`RetryableError`, `NonRetryableError`) discriminate on
56
- * the `name` property so exhaustive narrowing in user code keeps working.
57
- * `error instanceof HandlerError` is true for any handler error.
58
- */
59
- declare abstract class HandlerError extends Error {
60
- readonly cause?: unknown | undefined;
61
- abstract readonly name: "RetryableError" | "NonRetryableError";
62
- constructor(message: string, cause?: unknown | undefined);
63
- }
186
+ declare const RetryableError_base: import("unthrown").TaggedErrorConstructor<"@amqp-contract/RetryableError">;
64
187
  /**
65
188
  * Retryable errors - transient failures that may succeed on retry
66
189
  * Examples: network timeouts, rate limiting, temporary service unavailability
67
190
  *
68
191
  * Use this error type when the operation might succeed if retried.
69
192
  * The worker will apply exponential backoff and retry the message.
193
+ *
194
+ * Built on unthrown's {@link TaggedError}, so it carries a namespaced `_tag` of
195
+ * `"@amqp-contract/RetryableError"` (to avoid colliding with other libraries'
196
+ * tags in a shared `matchTags`) for exhaustive dispatch; the `Error.name` is
197
+ * kept bare (`"RetryableError"`).
70
198
  */
71
- declare class RetryableError extends HandlerError {
72
- readonly name: "RetryableError";
199
+ declare class RetryableError extends RetryableError_base<{
200
+ message: string;
201
+ cause?: unknown;
202
+ }> {
203
+ constructor(message: string, cause?: unknown);
73
204
  }
205
+ declare const NonRetryableError_base: import("unthrown").TaggedErrorConstructor<"@amqp-contract/NonRetryableError">;
74
206
  /**
75
207
  * Non-retryable errors - permanent failures that should not be retried
76
208
  * Examples: invalid data, business rule violations, permanent external failures
77
209
  *
78
210
  * Use this error type when retrying would not help - the message will be
79
- * immediately sent to the dead letter queue (DLQ) if configured.
211
+ * immediately sent to the dead letter queue (DLQ) if configured. Carries a
212
+ * namespaced `_tag` of `"@amqp-contract/NonRetryableError"`; the `Error.name` is
213
+ * kept bare (`"NonRetryableError"`).
80
214
  */
81
- declare class NonRetryableError extends HandlerError {
82
- readonly name: "NonRetryableError";
215
+ declare class NonRetryableError extends NonRetryableError_base<{
216
+ message: string;
217
+ cause?: unknown;
218
+ }> {
219
+ constructor(message: string, cause?: unknown);
83
220
  }
221
+ /**
222
+ * Any handler-signalled error — the union a handler may put in the `Err`
223
+ * channel of its `AsyncResult`. Discriminate on `_tag`
224
+ * (`"@amqp-contract/RetryableError"` / `"@amqp-contract/NonRetryableError"`),
225
+ * e.g. with `matchTags`.
226
+ *
227
+ * Previously an abstract base class; now a tagged union, because unthrown's
228
+ * `TaggedError` mints a distinct base class per tag. Use {@link isHandlerError}
229
+ * for runtime narrowing instead of `instanceof HandlerError`.
230
+ */
231
+ type HandlerError = RetryableError | NonRetryableError;
84
232
  /**
85
233
  * Type guard to check if an error is a RetryableError.
86
234
  *
@@ -159,16 +307,16 @@ declare function isHandlerError(error: unknown): error is HandlerError;
159
307
  * @example
160
308
  * ```typescript
161
309
  * import { retryable } from '@amqp-contract/worker';
162
- * import { ResultAsync } from 'neverthrow';
310
+ * import { fromPromise } from 'unthrown';
163
311
  *
164
312
  * const handler = ({ payload }) =>
165
- * ResultAsync.fromPromise(
313
+ * fromPromise(
166
314
  * processPayment(payload),
167
315
  * (e) => retryable('Payment service unavailable', e),
168
316
  * ).map(() => undefined);
169
317
  *
170
318
  * // Equivalent to:
171
- * // ResultAsync.fromPromise(processPayment(payload), (e) => new RetryableError('...', e))
319
+ * // fromPromise(processPayment(payload), (e) => new RetryableError('...', e))
172
320
  * ```
173
321
  */
174
322
  declare function retryable(message: string, cause?: unknown): RetryableError;
@@ -185,17 +333,17 @@ declare function retryable(message: string, cause?: unknown): RetryableError;
185
333
  * @example
186
334
  * ```typescript
187
335
  * import { nonRetryable } from '@amqp-contract/worker';
188
- * import { errAsync, okAsync } from 'neverthrow';
336
+ * import { Err, Ok } from 'unthrown';
189
337
  *
190
338
  * const handler = ({ payload }) => {
191
339
  * if (!isValidPayload(payload)) {
192
- * return errAsync(nonRetryable('Invalid payload format'));
340
+ * return Err(nonRetryable('Invalid payload format')).toAsync();
193
341
  * }
194
- * return okAsync(undefined);
342
+ * return Ok(undefined).toAsync();
195
343
  * };
196
344
  *
197
345
  * // Equivalent to:
198
- * // return errAsync(new NonRetryableError('Invalid payload format'));
346
+ * // return Err(new NonRetryableError('Invalid payload format')).toAsync();
199
347
  * ```
200
348
  */
201
349
  declare function nonRetryable(message: string, cause?: unknown): NonRetryableError;
@@ -246,7 +394,7 @@ type WorkerInferRpcRequest<TContract extends ContractDefinition, TName extends I
246
394
  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;
247
395
  /**
248
396
  * Infer the response payload type for an RPC. The handler must return a
249
- * `ResultAsync<TResponse, HandlerError>` matching this shape.
397
+ * `AsyncResult<TResponse, HandlerError>` matching this shape.
250
398
  */
251
399
  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;
252
400
  /**
@@ -264,7 +412,7 @@ type WorkerInferRpcResponse<TContract extends ContractDefinition, TName extends
264
412
  * console.log(message.payload.orderId); // Typed payload
265
413
  * console.log(message.headers?.priority); // Typed headers (if defined)
266
414
  * console.log(rawMessage.fields.deliveryTag); // Raw AMQP message
267
- * return okAsync(undefined);
415
+ * return Ok(undefined).toAsync();
268
416
  * });
269
417
  * ```
270
418
  */
@@ -283,17 +431,17 @@ type WorkerInferConsumedMessage<TContract extends ContractDefinition, TName exte
283
431
  type WorkerInferRpcConsumedMessage<TContract extends ContractDefinition, TName extends InferRpcNames<TContract>> = WorkerConsumedMessage<WorkerInferRpcRequest<TContract, TName>, WorkerInferRpcHeaders<TContract, TName>>;
284
432
  /**
285
433
  * Handler signature for a regular consumer (event/command). Returns
286
- * `ResultAsync<void, HandlerError>` — there is no response message.
434
+ * `AsyncResult<void, HandlerError>` — there is no response message.
287
435
  */
288
- type WorkerInferConsumerHandler<TContract extends ContractDefinition, TName extends InferConsumerNames<TContract>> = (message: WorkerInferConsumedMessage<TContract, TName>, rawMessage: ConsumeMessage) => ResultAsync<void, HandlerError>;
436
+ type WorkerInferConsumerHandler<TContract extends ContractDefinition, TName extends InferConsumerNames<TContract>> = (message: WorkerInferConsumedMessage<TContract, TName>, rawMessage: ConsumeMessage) => AsyncResult<void, HandlerError>;
289
437
  /**
290
438
  * Handler signature for an RPC. Returns
291
- * `ResultAsync<TResponse, HandlerError>` where `TResponse` is the inferred
439
+ * `AsyncResult<TResponse, HandlerError>` where `TResponse` is the inferred
292
440
  * response payload. The worker validates the response against the RPC's
293
441
  * response schema and publishes it back to `msg.properties.replyTo` with the
294
442
  * same `correlationId`.
295
443
  */
296
- type WorkerInferRpcHandler<TContract extends ContractDefinition, TName extends InferRpcNames<TContract>> = (message: WorkerInferRpcConsumedMessage<TContract, TName>, rawMessage: ConsumeMessage) => ResultAsync<WorkerInferRpcResponse<TContract, TName>, HandlerError>;
444
+ type WorkerInferRpcHandler<TContract extends ContractDefinition, TName extends InferRpcNames<TContract>> = (message: WorkerInferRpcConsumedMessage<TContract, TName>, rawMessage: ConsumeMessage) => AsyncResult<WorkerInferRpcResponse<TContract, TName>, HandlerError>;
297
445
  /**
298
446
  * Handler entry for a regular consumer — function or `[handler, options]`.
299
447
  */
@@ -311,11 +459,11 @@ type WorkerInferRpcHandlerEntry<TContract extends ContractDefinition, TName exte
311
459
  * ```typescript
312
460
  * const handlers: WorkerInferHandlers<typeof contract> = {
313
461
  * processOrder: ({ payload }) =>
314
- * ResultAsync.fromPromise(
462
+ * fromPromise(
315
463
  * processPayment(payload),
316
464
  * (error) => new RetryableError('Payment failed', error),
317
465
  * ).map(() => undefined),
318
- * calculate: ({ payload }) => okAsync({ sum: payload.a + payload.b }),
466
+ * calculate: ({ payload }) => Ok({ sum: payload.a + payload.b }).toAsync(),
319
467
  * };
320
468
  * ```
321
469
  */
@@ -336,13 +484,13 @@ type ConsumerOptions = ConsumerOptions$1;
336
484
  * // Simple handler
337
485
  * processOrder: ({ payload }) => {
338
486
  * console.log('Processing order:', payload.orderId);
339
- * return okAsync(undefined);
487
+ * return Ok(undefined).toAsync();
340
488
  * },
341
489
  * // Handler with prefetch configuration
342
490
  * processPayment: [
343
491
  * ({ payload }) => {
344
492
  * console.log('Processing payment:', payload.paymentId);
345
- * return okAsync(undefined);
493
+ * return Ok(undefined).toAsync();
346
494
  * },
347
495
  * { prefetch: 10 }
348
496
  * ]
@@ -366,8 +514,8 @@ type CreateWorkerOptions<TContract extends ContractDefinition> = {
366
514
  /**
367
515
  * Handlers for each `consumers` and `rpcs` entry in the contract.
368
516
  *
369
- * - Regular consumers return `ResultAsync<void, HandlerError>`.
370
- * - RPC handlers return `ResultAsync<TResponse, HandlerError>` where
517
+ * - Regular consumers return `AsyncResult<void, HandlerError>`.
518
+ * - RPC handlers return `AsyncResult<TResponse, HandlerError>` where
371
519
  * `TResponse` is inferred from the RPC's response message schema.
372
520
  *
373
521
  * Use `defineHandler` / `defineHandlers` to create handlers with full type
@@ -390,7 +538,7 @@ type CreateWorkerOptions<TContract extends ContractDefinition> = {
390
538
  defaultConsumerOptions?: ConsumerOptions | undefined;
391
539
  /**
392
540
  * Maximum time in ms to wait for the AMQP connection to become ready before
393
- * `create()` resolves to an `err(TechnicalError)`. Defaults to 30s
541
+ * `create()` resolves to an `Err(TechnicalError)`. Defaults to 30s
394
542
  * (the {@link AmqpClient}'s `DEFAULT_CONNECT_TIMEOUT_MS`). Pass `null` to
395
543
  * disable the timeout and let amqp-connection-manager retry indefinitely.
396
544
  */
@@ -408,7 +556,7 @@ type CreateWorkerOptions<TContract extends ContractDefinition> = {
408
556
  * ```typescript
409
557
  * import { TypedAmqpWorker } from '@amqp-contract/worker';
410
558
  * import { defineQueue, defineMessage, defineContract, defineConsumer } from '@amqp-contract/contract';
411
- * import { okAsync } from 'neverthrow';
559
+ * import { Ok } from 'unthrown';
412
560
  * import { z } from 'zod';
413
561
  *
414
562
  * const orderQueue = defineQueue('order-processing');
@@ -428,14 +576,13 @@ type CreateWorkerOptions<TContract extends ContractDefinition> = {
428
576
  * handlers: {
429
577
  * processOrder: ({ payload }) => {
430
578
  * console.log('Processing order', payload.orderId);
431
- * return okAsync(undefined);
579
+ * return Ok(undefined).toAsync();
432
580
  * },
433
581
  * },
434
582
  * urls: ['amqp://localhost'],
435
583
  * });
436
584
  *
437
- * if (result.isErr()) throw result.error;
438
- * const worker = result.value;
585
+ * const worker = result.unwrap();
439
586
  *
440
587
  * // Close when done
441
588
  * await worker.close();
@@ -476,14 +623,14 @@ declare class TypedAmqpWorker<TContract extends ContractDefinition> {
476
623
  * Connections are automatically shared across clients and workers with the same
477
624
  * URLs and connection options, following RabbitMQ best practices.
478
625
  *
479
- * @returns A ResultAsync that resolves to the worker or a TechnicalError.
626
+ * @returns A AsyncResult that resolves to the worker or a TechnicalError.
480
627
  *
481
628
  * @example
482
629
  * ```typescript
483
630
  * const result = await TypedAmqpWorker.create({
484
631
  * contract: myContract,
485
632
  * handlers: {
486
- * processOrder: ({ payload }) => okAsync(undefined),
633
+ * processOrder: ({ payload }) => Ok(undefined).toAsync(),
487
634
  * },
488
635
  * urls: ['amqp://localhost'],
489
636
  * });
@@ -498,7 +645,7 @@ declare class TypedAmqpWorker<TContract extends ContractDefinition> {
498
645
  logger,
499
646
  telemetry,
500
647
  connectTimeoutMs
501
- }: CreateWorkerOptions<TContract>): ResultAsync<TypedAmqpWorker<TContract>, TechnicalError>;
648
+ }: CreateWorkerOptions<TContract>): AsyncResult<TypedAmqpWorker<TContract>, TechnicalError>;
502
649
  /**
503
650
  * Close the AMQP channel and connection.
504
651
  *
@@ -513,7 +660,7 @@ declare class TypedAmqpWorker<TContract extends ContractDefinition> {
513
660
  * }
514
661
  * ```
515
662
  */
516
- close(): ResultAsync<void, TechnicalError>;
663
+ close(): AsyncResult<void, TechnicalError>;
517
664
  /**
518
665
  * Start consuming for every entry in `contract.consumers` and `contract.rpcs`.
519
666
  */
@@ -574,7 +721,7 @@ declare class TypedAmqpWorker<TContract extends ContractDefinition> {
574
721
  /**
575
722
  * For RPC handlers, validate and publish the reply on the caller's
576
723
  * `replyTo` / `correlationId`. For non-RPC consumers, this is a no-op that
577
- * resolves to `okAsync(undefined)`.
724
+ * resolves to `Ok(undefined).toAsync()`.
578
725
  */
579
726
  private publishReplyIfRpc;
580
727
  /**
@@ -586,7 +733,7 @@ declare class TypedAmqpWorker<TContract extends ContractDefinition> {
586
733
  * is still needed (see {@link consumeSingle}).
587
734
  *
588
735
  * Success-vs-failure telemetry is data-driven: the chain resolves to
589
- * `ok(undefined)` only on handler success (and reply-publish success for
736
+ * `Ok(undefined)` only on handler success (and reply-publish success for
590
737
  * RPC). Handler failures — even when {@link handleError} routes them
591
738
  * successfully to retry/DLQ — are classified as failures for metrics by
592
739
  * re-failing the chain with a `TechnicalError` whose `cause` is the
@@ -606,8 +753,8 @@ declare class TypedAmqpWorker<TContract extends ContractDefinition> {
606
753
  * Define a type-safe handler for a specific consumer or RPC in a contract.
607
754
  *
608
755
  * **Recommended:** This function creates handlers that return
609
- * `ResultAsync<void, HandlerError>` (consumers) or
610
- * `ResultAsync<TResponse, HandlerError>` (RPCs), providing explicit error
756
+ * `AsyncResult<void, HandlerError>` (consumers) or
757
+ * `AsyncResult<TResponse, HandlerError>` (RPCs), providing explicit error
611
758
  * handling and better control over retry behavior.
612
759
  *
613
760
  * Supports two patterns:
@@ -619,21 +766,21 @@ declare class TypedAmqpWorker<TContract extends ContractDefinition> {
619
766
  * @param contract - The contract definition containing the consumer or RPC
620
767
  * @param name - The name of the consumer or RPC from the contract
621
768
  * @param handler - The handler function — for consumers, returns
622
- * `ResultAsync<void, HandlerError>`; for RPCs, returns
623
- * `ResultAsync<TResponse, HandlerError>`.
769
+ * `AsyncResult<void, HandlerError>`; for RPCs, returns
770
+ * `AsyncResult<TResponse, HandlerError>`.
624
771
  * @param options - Optional consumer options (prefetch)
625
772
  * @returns A type-safe handler that can be used with TypedAmqpWorker
626
773
  *
627
774
  * @example Consumer handler
628
775
  * ```typescript
629
776
  * import { defineHandler, RetryableError, NonRetryableError } from '@amqp-contract/worker';
630
- * import { errAsync, okAsync, ResultAsync } from 'neverthrow';
777
+ * import { fromPromise, Ok } from 'unthrown';
631
778
  *
632
779
  * const processOrderHandler = defineHandler(
633
780
  * orderContract,
634
781
  * 'processOrder',
635
782
  * ({ payload }) =>
636
- * ResultAsync.fromPromise(
783
+ * fromPromise(
637
784
  * processPayment(payload),
638
785
  * (error) => new RetryableError('Payment failed', error),
639
786
  * ).map(() => undefined),
@@ -645,7 +792,7 @@ declare class TypedAmqpWorker<TContract extends ContractDefinition> {
645
792
  * const calculateHandler = defineHandler(
646
793
  * rpcContract,
647
794
  * 'calculate',
648
- * ({ payload }) => okAsync({ sum: payload.a + payload.b }),
795
+ * ({ payload }) => Ok({ sum: payload.a + payload.b }).toAsync(),
649
796
  * );
650
797
  * ```
651
798
  */
@@ -657,8 +804,8 @@ declare function defineHandler<TContract extends ContractDefinition, TName exten
657
804
  * Define multiple type-safe handlers for consumers and RPCs in a contract.
658
805
  *
659
806
  * **Recommended:** This function creates handlers that return
660
- * `ResultAsync<void, HandlerError>` (consumers) or
661
- * `ResultAsync<TResponse, HandlerError>` (RPCs), providing explicit error
807
+ * `AsyncResult<void, HandlerError>` (consumers) or
808
+ * `AsyncResult<TResponse, HandlerError>` (RPCs), providing explicit error
662
809
  * handling and better control over retry behavior.
663
810
  *
664
811
  * The handlers object must contain exactly one entry per `consumers` and
@@ -672,19 +819,19 @@ declare function defineHandler<TContract extends ContractDefinition, TName exten
672
819
  * @example
673
820
  * ```typescript
674
821
  * import { defineHandlers, RetryableError } from '@amqp-contract/worker';
675
- * import { okAsync, ResultAsync } from 'neverthrow';
822
+ * import { fromPromise, Ok } from 'unthrown';
676
823
  *
677
824
  * const handlers = defineHandlers(orderContract, {
678
825
  * processOrder: ({ payload }) =>
679
- * ResultAsync.fromPromise(
826
+ * fromPromise(
680
827
  * processPayment(payload),
681
828
  * (error) => new RetryableError('Payment failed', error),
682
829
  * ).map(() => undefined),
683
- * calculate: ({ payload }) => okAsync({ sum: payload.a + payload.b }),
830
+ * calculate: ({ payload }) => Ok({ sum: payload.a + payload.b }).toAsync(),
684
831
  * });
685
832
  * ```
686
833
  */
687
834
  declare function defineHandlers<TContract extends ContractDefinition>(contract: TContract, handlers: WorkerInferHandlers<TContract>): WorkerInferHandlers<TContract>;
688
835
  //#endregion
689
- export { type ConsumerOptions, type CreateWorkerOptions, HandlerError, MessageValidationError, NonRetryableError, RetryableError, TypedAmqpWorker, type WorkerConsumedMessage, type WorkerInferConsumedMessage, type WorkerInferConsumerHandler, type WorkerInferConsumerHandlerEntry, type WorkerInferConsumerHeaders, type WorkerInferHandlers, type WorkerInferRpcConsumedMessage, type WorkerInferRpcHandler, type WorkerInferRpcHandlerEntry, type WorkerInferRpcHeaders, type WorkerInferRpcRequest, type WorkerInferRpcResponse, defineHandler, defineHandlers, isHandlerError, isNonRetryableError, isRetryableError, nonRetryable, retryable };
836
+ export { type ConsumerOptions, type CreateWorkerOptions, type HandlerError, MessageValidationError, NonRetryableError, RetryableError, TypedAmqpWorker, type WorkerConsumedMessage, type WorkerInferConsumedMessage, type WorkerInferConsumerHandler, type WorkerInferConsumerHandlerEntry, type WorkerInferConsumerHeaders, type WorkerInferHandlers, type WorkerInferRpcConsumedMessage, type WorkerInferRpcHandler, type WorkerInferRpcHandlerEntry, type WorkerInferRpcHeaders, type WorkerInferRpcRequest, type WorkerInferRpcResponse, defineHandler, defineHandlers, isHandlerError, isNonRetryableError, isRetryableError, nonRetryable, retryable };
690
837
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","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@0.10.9/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.cts","names":["Empty","AssertQueue","queue","messageCount","consumerCount","PurgeQueue","DeleteQueue","AssertExchange","exchange","Consume","consumerTag","Connect","protocol","hostname","port","username","password","locale","frameMax","heartbeat","vhost","channelMax","credentials","mechanism","response","Buffer","exclusive","durable","autoDelete","arguments","messageTtl","expires","deadLetterExchange","deadLetterRoutingKey","maxLength","maxPriority","overflow","queueMode","ifUnused","ifEmpty","internal","alternateExchange","DeleteExchange","Publish","expiration","userId","CC","mandatory","persistent","deliveryMode","BCC","contentType","contentEncoding","headers","priority","correlationId","replyTo","messageId","timestamp","type","appId","noLocal","noAck","Get","tls","ConnectionOptions","noDelay","timeout","keepAlive","keepAliveDelay","clientProperties","Record","highWaterMark","content","fields","MessageFields","properties","MessageProperties","Message","GetMessageFields","ConsumeMessageFields","deliveryTag","redelivered","routingKey","CommonMessageFields","MessagePropertyHeaders","clusterId","XDeath","key","count","reason","time","value","host","product","version","platform","copyright","information","amqp","Options","Connect","url","connectionOptions","AmqpConnectionOptions","connection","Connection","arg","err","Error","ConnectionOptions","TcpSocketConnectOpts","noDelay","timeout","keepAlive","keepAliveDelay","clientProperties","credentials","mechanism","username","password","response","Buffer","heartbeatIntervalInSeconds","reconnectTimeInSeconds","findServers","ConnectionUrl","urls","callback","Promise","EventEmitter","addListener","event","args","listener","ConnectListener","ConnectFailedListener","reason","listeners","eventName","Function","on","once","prependListener","prependOnceListener","removeListener","connect","options","reconnect","createChannel","CreateChannelOpts","ChannelWrapper","close","isConnected","ChannelModel","channelCount","IAmqpConnectionManager","_channels","_currentUrl","_closed","_cancelRetriesHandler","_connectPromise","_currentConnection","_findServers","_urls","constructor","AmqpConnectionManagerOptions","_connect"],"sources":["../../../node_modules/.pnpm/amqplib@2.0.1/node_modules/amqplib/lib/properties.d.ts","../../../node_modules/.pnpm/amqp-connection-manager@5.0.0_amqplib@2.0.1/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,1],"mappings":"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"}