@znight/messaging 0.0.0-stage → 0.1.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/LICENSE +21 -0
- package/README.md +622 -2
- package/dist/async-CFh_bvex.mjs +216 -0
- package/dist/async-CFh_bvex.mjs.map +1 -0
- package/dist/codec-Dku-NXXU.mjs +83 -0
- package/dist/codec-Dku-NXXU.mjs.map +1 -0
- package/dist/compiler.d.mts +75 -0
- package/dist/compiler.mjs +1023 -0
- package/dist/compiler.mjs.map +1 -0
- package/dist/driver-ZxLqy_Ap.d.mts +216 -0
- package/dist/index.d.mts +459 -0
- package/dist/index.mjs +870 -0
- package/dist/index.mjs.map +1 -0
- package/dist/kafka.d.mts +51 -0
- package/dist/kafka.mjs +517 -0
- package/dist/kafka.mjs.map +1 -0
- package/dist/memory.d.mts +124 -0
- package/dist/memory.mjs +429 -0
- package/dist/memory.mjs.map +1 -0
- package/dist/rabbitmq.d.mts +65 -0
- package/dist/rabbitmq.mjs +686 -0
- package/dist/rabbitmq.mjs.map +1 -0
- package/dist/shared-BJBpLS8V.mjs +52 -0
- package/dist/shared-BJBpLS8V.mjs.map +1 -0
- package/dist/sqs.d.mts +38 -0
- package/dist/sqs.mjs +421 -0
- package/dist/sqs.mjs.map +1 -0
- package/package.json +123 -4
- package/src/broker.ts +156 -0
- package/src/codec.ts +98 -0
- package/src/compiler/analyze.ts +800 -0
- package/src/compiler/constants.ts +73 -0
- package/src/compiler/data.ts +75 -0
- package/src/compiler/generate.ts +131 -0
- package/src/compiler/index.ts +52 -0
- package/src/compiler/patterns.ts +54 -0
- package/src/compiler/retry.ts +136 -0
- package/src/compiler/validate.ts +57 -0
- package/src/compiler/values.ts +76 -0
- package/src/consumers.ts +260 -0
- package/src/decorators.ts +131 -0
- package/src/driver.ts +142 -0
- package/src/drivers/kafka.ts +765 -0
- package/src/drivers/memory.ts +609 -0
- package/src/drivers/rabbitmq.ts +944 -0
- package/src/drivers/shared.ts +81 -0
- package/src/drivers/sqs.ts +583 -0
- package/src/errors.ts +95 -0
- package/src/headers.ts +70 -0
- package/src/hooks.ts +2 -0
- package/src/index.ts +89 -0
- package/src/internal/async.ts +115 -0
- package/src/message.ts +96 -0
- package/src/metadata.ts +65 -0
- package/src/plugin.ts +236 -0
- package/src/retry.ts +129 -0
- package/src/runtime.ts +424 -0
- package/src/standard-schema.ts +68 -0
- package/src/tokens.ts +14 -0
- package/src/validation.ts +61 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { c as SubscribeOptions, f as OutboundMessage, i as DriverContext, l as Subscription, n as DeliveryHandler, o as MessagingDriver, r as DriverCapabilities } from "./driver-ZxLqy_Ap.mjs";
|
|
2
|
+
import { Options, SocketOptions } from "amqplib";
|
|
3
|
+
/** Reconnection settings. */
|
|
4
|
+
export interface RabbitMQReconnectOptions {
|
|
5
|
+
/** First delay before reconnecting. Default: 100 ms. */
|
|
6
|
+
readonly initialDelayMs?: number;
|
|
7
|
+
/** Longest delay between attempts. Default: 30 000 ms. */
|
|
8
|
+
readonly maxDelayMs?: number;
|
|
9
|
+
}
|
|
10
|
+
/** Options of {@link rabbitmq}. */
|
|
11
|
+
export interface RabbitMQDriverOptions {
|
|
12
|
+
/** `amqp://user:pass@host:5672/vhost` or amqplib connection options. */
|
|
13
|
+
readonly url: string | Options.Connect;
|
|
14
|
+
/** Socket / TLS options passed to amqplib. */
|
|
15
|
+
readonly socketOptions?: SocketOptions;
|
|
16
|
+
/**
|
|
17
|
+
* Declare the queues used by consumers (consumed, dead-letter and delay queues) and by delayed
|
|
18
|
+
* publications. When `false`, consumed and dead-letter queues must exist (verified at subscribe).
|
|
19
|
+
* Default: `true`.
|
|
20
|
+
*/
|
|
21
|
+
readonly assertTopology?: boolean;
|
|
22
|
+
/** Type of the declared queues. Default: `quorum` (replicated, native `x-delivery-count`). */
|
|
23
|
+
readonly queueType?: "quorum" | "classic";
|
|
24
|
+
/**
|
|
25
|
+
* Extra arguments of declared consumed and dead-letter queues (`x-max-length`...). Quorum queues get
|
|
26
|
+
* `x-delivery-limit: -1` on RabbitMQ >= 4 unless this sets `x-delivery-limit`.
|
|
27
|
+
*/
|
|
28
|
+
readonly queueArguments?: Readonly<Record<string, unknown>>;
|
|
29
|
+
/** Longest retry delay waited in-process (holding the message). Default: 5000 ms. */
|
|
30
|
+
readonly maxInProcessDelayMs?: number;
|
|
31
|
+
/** Name of the retry delay queue of `queue` for `delayMs`. Default: `${queue}.delay.${delayMs}`. */
|
|
32
|
+
readonly delayQueueName?: (queue: string, delayMs: number) => string;
|
|
33
|
+
/**
|
|
34
|
+
* Prefix of the delay levels of delayed publications: `<prefix>.0` to `<prefix>.31` (one topic
|
|
35
|
+
* exchange and one queue each, shared by every queue of the virtual host). Default: `znight.delays`.
|
|
36
|
+
*/
|
|
37
|
+
readonly delayLevelPrefix?: string;
|
|
38
|
+
/** Default dead-letter queue name. Default: `${queue}.dlq`. */
|
|
39
|
+
readonly deadLetterName?: (queue: string) => string;
|
|
40
|
+
/** Publish with `mandatory`: unroutable messages make `publish()` fail. Default: `true`. */
|
|
41
|
+
readonly mandatory?: boolean;
|
|
42
|
+
/** Persistent messages (delivery mode 2). Default: `true`. */
|
|
43
|
+
readonly persistent?: boolean;
|
|
44
|
+
/** Use the routing key as message type when the message has none (topic exchanges). Default: `false`. */
|
|
45
|
+
readonly typeFromRoutingKey?: boolean;
|
|
46
|
+
/** Reconnect after a connection loss. `false` disables. Default: enabled. */
|
|
47
|
+
readonly reconnect?: RabbitMQReconnectOptions | false;
|
|
48
|
+
/** Connection name shown in the management UI. Default: `znight`. */
|
|
49
|
+
readonly connectionName?: string;
|
|
50
|
+
}
|
|
51
|
+
/** Creates a {@link RabbitMQDriver}. */
|
|
52
|
+
export declare function rabbitmq(options: RabbitMQDriverOptions): RabbitMQDriver;
|
|
53
|
+
/** RabbitMQ {@link MessagingDriver}. See the module documentation. */
|
|
54
|
+
export declare class RabbitMQDriver implements MessagingDriver {
|
|
55
|
+
#private;
|
|
56
|
+
readonly name = "rabbitmq";
|
|
57
|
+
readonly capabilities: DriverCapabilities;
|
|
58
|
+
constructor(options: RabbitMQDriverOptions);
|
|
59
|
+
connect(context: DriverContext): Promise<void>;
|
|
60
|
+
close(): Promise<void>;
|
|
61
|
+
deadLetterName(queue: string): string;
|
|
62
|
+
publish(queue: string, message: OutboundMessage): Promise<void>;
|
|
63
|
+
subscribe(queue: string, handler: DeliveryHandler, options: SubscribeOptions): Promise<Subscription>;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=rabbitmq.d.mts.map
|