@warlock.js/herald 4.0.100

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 (82) hide show
  1. package/README.md +364 -0
  2. package/cjs/communicators/communicator-registry.d.ts +155 -0
  3. package/cjs/communicators/communicator-registry.d.ts.map +1 -0
  4. package/cjs/communicators/communicator-registry.js +206 -0
  5. package/cjs/communicators/communicator-registry.js.map +1 -0
  6. package/cjs/communicators/communicator.d.ts +90 -0
  7. package/cjs/communicators/communicator.d.ts.map +1 -0
  8. package/cjs/communicators/communicator.js +93 -0
  9. package/cjs/communicators/communicator.js.map +1 -0
  10. package/cjs/communicators/index.d.ts +3 -0
  11. package/cjs/communicators/index.d.ts.map +1 -0
  12. package/cjs/contracts/channel.contract.d.ts +175 -0
  13. package/cjs/contracts/channel.contract.d.ts.map +1 -0
  14. package/cjs/contracts/communicator-driver.contract.d.ts +168 -0
  15. package/cjs/contracts/communicator-driver.contract.d.ts.map +1 -0
  16. package/cjs/contracts/index.d.ts +3 -0
  17. package/cjs/contracts/index.d.ts.map +1 -0
  18. package/cjs/drivers/index.d.ts +2 -0
  19. package/cjs/drivers/index.d.ts.map +1 -0
  20. package/cjs/drivers/rabbitmq/index.d.ts +3 -0
  21. package/cjs/drivers/rabbitmq/index.d.ts.map +1 -0
  22. package/cjs/drivers/rabbitmq/rabbitmq-channel.d.ts +70 -0
  23. package/cjs/drivers/rabbitmq/rabbitmq-channel.d.ts.map +1 -0
  24. package/cjs/drivers/rabbitmq/rabbitmq-channel.js +400 -0
  25. package/cjs/drivers/rabbitmq/rabbitmq-channel.js.map +1 -0
  26. package/cjs/drivers/rabbitmq/rabbitmq-driver.d.ts +100 -0
  27. package/cjs/drivers/rabbitmq/rabbitmq-driver.d.ts.map +1 -0
  28. package/cjs/drivers/rabbitmq/rabbitmq-driver.js +299 -0
  29. package/cjs/drivers/rabbitmq/rabbitmq-driver.js.map +1 -0
  30. package/cjs/index.d.ts +45 -0
  31. package/cjs/index.d.ts.map +1 -0
  32. package/cjs/index.js +1 -0
  33. package/cjs/index.js.map +1 -0
  34. package/cjs/types.d.ts +396 -0
  35. package/cjs/types.d.ts.map +1 -0
  36. package/cjs/utils/connect-to-communicator.d.ts +86 -0
  37. package/cjs/utils/connect-to-communicator.d.ts.map +1 -0
  38. package/cjs/utils/connect-to-communicator.js +122 -0
  39. package/cjs/utils/connect-to-communicator.js.map +1 -0
  40. package/cjs/utils/index.d.ts +2 -0
  41. package/cjs/utils/index.d.ts.map +1 -0
  42. package/esm/communicators/communicator-registry.d.ts +155 -0
  43. package/esm/communicators/communicator-registry.d.ts.map +1 -0
  44. package/esm/communicators/communicator-registry.js +206 -0
  45. package/esm/communicators/communicator-registry.js.map +1 -0
  46. package/esm/communicators/communicator.d.ts +90 -0
  47. package/esm/communicators/communicator.d.ts.map +1 -0
  48. package/esm/communicators/communicator.js +93 -0
  49. package/esm/communicators/communicator.js.map +1 -0
  50. package/esm/communicators/index.d.ts +3 -0
  51. package/esm/communicators/index.d.ts.map +1 -0
  52. package/esm/contracts/channel.contract.d.ts +175 -0
  53. package/esm/contracts/channel.contract.d.ts.map +1 -0
  54. package/esm/contracts/communicator-driver.contract.d.ts +168 -0
  55. package/esm/contracts/communicator-driver.contract.d.ts.map +1 -0
  56. package/esm/contracts/index.d.ts +3 -0
  57. package/esm/contracts/index.d.ts.map +1 -0
  58. package/esm/drivers/index.d.ts +2 -0
  59. package/esm/drivers/index.d.ts.map +1 -0
  60. package/esm/drivers/rabbitmq/index.d.ts +3 -0
  61. package/esm/drivers/rabbitmq/index.d.ts.map +1 -0
  62. package/esm/drivers/rabbitmq/rabbitmq-channel.d.ts +70 -0
  63. package/esm/drivers/rabbitmq/rabbitmq-channel.d.ts.map +1 -0
  64. package/esm/drivers/rabbitmq/rabbitmq-channel.js +400 -0
  65. package/esm/drivers/rabbitmq/rabbitmq-channel.js.map +1 -0
  66. package/esm/drivers/rabbitmq/rabbitmq-driver.d.ts +100 -0
  67. package/esm/drivers/rabbitmq/rabbitmq-driver.d.ts.map +1 -0
  68. package/esm/drivers/rabbitmq/rabbitmq-driver.js +299 -0
  69. package/esm/drivers/rabbitmq/rabbitmq-driver.js.map +1 -0
  70. package/esm/index.d.ts +45 -0
  71. package/esm/index.d.ts.map +1 -0
  72. package/esm/index.js +1 -0
  73. package/esm/index.js.map +1 -0
  74. package/esm/types.d.ts +396 -0
  75. package/esm/types.d.ts.map +1 -0
  76. package/esm/utils/connect-to-communicator.d.ts +86 -0
  77. package/esm/utils/connect-to-communicator.d.ts.map +1 -0
  78. package/esm/utils/connect-to-communicator.js +122 -0
  79. package/esm/utils/connect-to-communicator.js.map +1 -0
  80. package/esm/utils/index.d.ts +2 -0
  81. package/esm/utils/index.d.ts.map +1 -0
  82. package/package.json +47 -0
@@ -0,0 +1,400 @@
1
+ import {v}from'@warlock.js/seal';import {randomUUID}from'node:crypto';/**
2
+ * RabbitMQ Channel Implementation
3
+ *
4
+ * Wraps a RabbitMQ queue/exchange with a unified API.
5
+ *
6
+ * @template TPayload - The typed payload
7
+ */
8
+ class RabbitMQChannel {
9
+ name;
10
+ options;
11
+ amqpChannel;
12
+ subscriptions = new Map();
13
+ asserted = false;
14
+ /**
15
+ * Create a new RabbitMQ channel
16
+ */
17
+ constructor(name, amqpChannel, options) {
18
+ this.name = name;
19
+ this.amqpChannel = amqpChannel;
20
+ this.options = options ?? {};
21
+ }
22
+ /**
23
+ * Assert the queue exists
24
+ */
25
+ async assert() {
26
+ if (this.asserted)
27
+ return;
28
+ const queueOptions = {
29
+ durable: this.options.durable ?? true,
30
+ autoDelete: this.options.autoDelete ?? false,
31
+ exclusive: this.options.exclusive ?? false,
32
+ messageTtl: this.options.messageTtl,
33
+ maxLength: this.options.maxLength,
34
+ deadLetterExchange: this.options.deadLetter?.channel ? "" : undefined,
35
+ deadLetterRoutingKey: this.options.deadLetter?.channel,
36
+ };
37
+ await this.amqpChannel.assertQueue(this.name, queueOptions);
38
+ this.asserted = true;
39
+ }
40
+ /**
41
+ * Publish a message
42
+ */
43
+ async publish(payload, options) {
44
+ await this.assert();
45
+ // Validate with schema if provided
46
+ if (this.options.schema) {
47
+ const context = {
48
+ allValues: payload,
49
+ value: payload,
50
+ };
51
+ const result = await v.validate(this.options.schema, payload, { context });
52
+ if (!result.isValid) {
53
+ throw new Error(`Message validation failed: ${JSON.stringify(result.errors)}`);
54
+ }
55
+ payload = result.data;
56
+ }
57
+ const messageId = randomUUID();
58
+ const timestamp = new Date();
59
+ const messageContent = JSON.stringify({
60
+ payload,
61
+ metadata: {
62
+ messageId,
63
+ timestamp: timestamp.toISOString(),
64
+ correlationId: options?.correlationId,
65
+ headers: options?.headers,
66
+ },
67
+ });
68
+ const publishOptions = {
69
+ persistent: options?.persistent ?? true,
70
+ messageId,
71
+ timestamp: timestamp.getTime(),
72
+ correlationId: options?.correlationId,
73
+ expiration: options?.expiration?.toString(),
74
+ priority: options?.priority,
75
+ headers: options?.headers,
76
+ };
77
+ // Handle delayed messages (requires rabbitmq-delayed-message-exchange plugin)
78
+ if (options?.delay) {
79
+ publishOptions.headers = {
80
+ ...publishOptions.headers,
81
+ "x-delay": options.delay,
82
+ };
83
+ }
84
+ this.amqpChannel.sendToQueue(this.name, Buffer.from(messageContent), publishOptions);
85
+ }
86
+ /**
87
+ * Publish multiple messages
88
+ */
89
+ async publishBatch(messages, options) {
90
+ for (const payload of messages) {
91
+ await this.publish(payload, options);
92
+ }
93
+ }
94
+ /**
95
+ * Subscribe to messages
96
+ *
97
+ * Smart auto-ack behavior (when autoAck is not true):
98
+ * - If handler completes successfully without explicit ack/nack/reject → auto-ack
99
+ * - If handler throws an error → auto-nack (with retry if configured)
100
+ * - If handler explicitly calls ack/nack/reject → respects that call
101
+ */
102
+ async subscribe(handler, options) {
103
+ await this.assert();
104
+ const subscriptionId = randomUUID();
105
+ // Set prefetch if specified
106
+ if (options?.prefetch) {
107
+ await this.amqpChannel.prefetch(options.prefetch);
108
+ }
109
+ // If autoAck is true, RabbitMQ handles ack immediately (fire-and-forget)
110
+ const isFireAndForget = options?.autoAck === true;
111
+ const consumerOptions = {
112
+ noAck: isFireAndForget,
113
+ exclusive: options?.exclusive ?? false,
114
+ consumerTag: options?.group ?? subscriptionId,
115
+ };
116
+ const { consumerTag } = await this.amqpChannel.consume(this.name, async (msg) => {
117
+ if (!msg)
118
+ return;
119
+ // Track if acknowledgment was handled explicitly
120
+ let ackHandled = isFireAndForget;
121
+ try {
122
+ const content = JSON.parse(msg.content.toString());
123
+ let payload = content.payload;
124
+ // Validate with schema if provided
125
+ if (this.options.schema) {
126
+ const schemaContext = {
127
+ allValues: payload,
128
+ parent: null,
129
+ value: payload,
130
+ key: "",
131
+ path: "",
132
+ translateRule: (t) => t.rule?.defaultErrorMessage ?? "Validation failed",
133
+ translateAttribute: (t) => t.attribute ?? "",
134
+ };
135
+ const result = await this.options.schema.validate(payload, schemaContext);
136
+ if (!result.isValid) {
137
+ // Reject invalid messages
138
+ this.amqpChannel.nack(msg, false, false);
139
+ return;
140
+ }
141
+ payload = result.data;
142
+ }
143
+ const metadata = {
144
+ messageId: msg.properties.messageId || content.metadata?.messageId || randomUUID(),
145
+ timestamp: new Date(msg.properties.timestamp || content.metadata?.timestamp),
146
+ correlationId: msg.properties.correlationId || content.metadata?.correlationId,
147
+ replyTo: msg.properties.replyTo,
148
+ priority: msg.properties.priority,
149
+ headers: msg.properties.headers,
150
+ retryCount: msg.properties.headers?.["x-retry-count"] || 0,
151
+ originalChannel: this.name,
152
+ };
153
+ const message = {
154
+ metadata,
155
+ payload,
156
+ raw: msg,
157
+ };
158
+ const context = {
159
+ ack: async () => {
160
+ if (!ackHandled) {
161
+ ackHandled = true;
162
+ this.amqpChannel.ack(msg);
163
+ }
164
+ },
165
+ nack: async (requeue = true) => {
166
+ if (!ackHandled) {
167
+ ackHandled = true;
168
+ this.amqpChannel.nack(msg, false, requeue);
169
+ }
170
+ },
171
+ reject: async () => {
172
+ if (!ackHandled) {
173
+ ackHandled = true;
174
+ this.amqpChannel.reject(msg, false);
175
+ }
176
+ },
177
+ reply: async (replyPayload) => {
178
+ if (msg.properties.replyTo) {
179
+ const replyContent = JSON.stringify({
180
+ payload: replyPayload,
181
+ metadata: {
182
+ messageId: randomUUID(),
183
+ timestamp: new Date().toISOString(),
184
+ correlationId: msg.properties.correlationId,
185
+ },
186
+ });
187
+ this.amqpChannel.sendToQueue(msg.properties.replyTo, Buffer.from(replyContent), {
188
+ correlationId: msg.properties.correlationId,
189
+ });
190
+ }
191
+ },
192
+ retry: async (delay) => {
193
+ if (ackHandled)
194
+ return;
195
+ ackHandled = true;
196
+ const retryCount = (metadata.retryCount || 0) + 1;
197
+ const maxRetries = options?.retry?.maxRetries ?? 3;
198
+ if (retryCount > maxRetries) {
199
+ // Send to dead-letter if configured
200
+ if (options?.deadLetter) {
201
+ await this.sendToDeadLetter(message, options.deadLetter.channel);
202
+ }
203
+ this.amqpChannel.ack(msg);
204
+ return;
205
+ }
206
+ // Republish with retry count
207
+ const headers = {
208
+ ...msg.properties.headers,
209
+ "x-retry-count": retryCount,
210
+ };
211
+ if (delay) {
212
+ headers["x-delay"] = delay;
213
+ }
214
+ this.amqpChannel.sendToQueue(this.name, msg.content, { ...msg.properties, headers });
215
+ this.amqpChannel.ack(msg);
216
+ },
217
+ };
218
+ // Execute handler
219
+ await handler(message, context);
220
+ // Smart auto-ack: if handler succeeded and didn't explicitly handle ack
221
+ if (!ackHandled) {
222
+ this.amqpChannel.ack(msg);
223
+ }
224
+ }
225
+ catch (error) {
226
+ // Smart auto-nack: if handler threw and didn't explicitly handle ack
227
+ if (ackHandled)
228
+ return;
229
+ // Handle errors - nack and potentially retry
230
+ if (options?.retry) {
231
+ const retryCount = msg.properties.headers?.["x-retry-count"] || 0;
232
+ if (retryCount < options.retry.maxRetries) {
233
+ // Requeue for retry
234
+ this.amqpChannel.nack(msg, false, true);
235
+ }
236
+ else if (options.deadLetter) {
237
+ // Send to dead-letter
238
+ this.amqpChannel.nack(msg, false, false);
239
+ }
240
+ else {
241
+ this.amqpChannel.reject(msg, false);
242
+ }
243
+ }
244
+ else {
245
+ // No retry configured - reject without requeue
246
+ this.amqpChannel.nack(msg, false, false);
247
+ }
248
+ }
249
+ }, consumerOptions);
250
+ const subscription = new RabbitMQSubscription(subscriptionId, this.name, consumerTag, this.amqpChannel);
251
+ this.subscriptions.set(subscriptionId, subscription);
252
+ return subscription;
253
+ }
254
+ /**
255
+ * Send message to dead-letter queue
256
+ */
257
+ async sendToDeadLetter(message, deadLetterChannel) {
258
+ const content = JSON.stringify({
259
+ payload: message.payload,
260
+ metadata: {
261
+ ...message.metadata,
262
+ originalChannel: this.name,
263
+ },
264
+ });
265
+ this.amqpChannel.sendToQueue(deadLetterChannel, Buffer.from(content), { persistent: true });
266
+ }
267
+ /**
268
+ * Request-response pattern
269
+ */
270
+ async request(payload, options) {
271
+ await this.assert();
272
+ const correlationId = randomUUID();
273
+ const timeout = options?.timeout ?? 30000;
274
+ // Create exclusive reply queue
275
+ const { queue: replyQueue } = await this.amqpChannel.assertQueue("", {
276
+ exclusive: true,
277
+ autoDelete: true,
278
+ });
279
+ return new Promise((resolve, reject) => {
280
+ const timeoutId = setTimeout(() => {
281
+ reject(new Error(`Request timeout after ${timeout}ms`));
282
+ }, timeout);
283
+ // Consume reply
284
+ this.amqpChannel.consume(replyQueue, (msg) => {
285
+ if (msg?.properties.correlationId === correlationId) {
286
+ clearTimeout(timeoutId);
287
+ const content = JSON.parse(msg.content.toString());
288
+ resolve(content.payload);
289
+ }
290
+ }, { noAck: true });
291
+ // Send request
292
+ const messageContent = JSON.stringify({
293
+ payload,
294
+ metadata: {
295
+ messageId: randomUUID(),
296
+ timestamp: new Date().toISOString(),
297
+ correlationId,
298
+ },
299
+ });
300
+ this.amqpChannel.sendToQueue(this.name, Buffer.from(messageContent), {
301
+ correlationId,
302
+ replyTo: replyQueue,
303
+ expiration: timeout.toString(),
304
+ ...options,
305
+ });
306
+ });
307
+ }
308
+ /**
309
+ * Register response handler for RPC
310
+ */
311
+ async respond(handler) {
312
+ return this.subscribe(async (message, ctx) => {
313
+ const response = await handler(message, ctx);
314
+ await ctx.reply(response);
315
+ await ctx.ack();
316
+ });
317
+ }
318
+ /**
319
+ * Get queue statistics
320
+ */
321
+ async stats() {
322
+ await this.assert();
323
+ const queueInfo = await this.amqpChannel.checkQueue(this.name);
324
+ return {
325
+ name: this.name,
326
+ messageCount: queueInfo.messageCount,
327
+ consumerCount: queueInfo.consumerCount,
328
+ };
329
+ }
330
+ /**
331
+ * Purge all messages
332
+ */
333
+ async purge() {
334
+ await this.assert();
335
+ const result = await this.amqpChannel.purgeQueue(this.name);
336
+ return result.messageCount;
337
+ }
338
+ /**
339
+ * Check if queue exists
340
+ */
341
+ async exists() {
342
+ try {
343
+ await this.amqpChannel.checkQueue(this.name);
344
+ return true;
345
+ }
346
+ catch {
347
+ return false;
348
+ }
349
+ }
350
+ /**
351
+ * Delete the queue
352
+ */
353
+ async delete() {
354
+ // Cancel all subscriptions
355
+ for (const subscription of this.subscriptions.values()) {
356
+ await subscription.unsubscribe();
357
+ }
358
+ this.subscriptions.clear();
359
+ try {
360
+ await this.amqpChannel.deleteQueue(this.name);
361
+ }
362
+ catch {
363
+ // Ignore if queue doesn't exist
364
+ }
365
+ this.asserted = false;
366
+ }
367
+ }
368
+ /**
369
+ * RabbitMQ Subscription Implementation
370
+ */
371
+ class RabbitMQSubscription {
372
+ id;
373
+ channel;
374
+ consumerTag;
375
+ amqpChannel;
376
+ _isActive = true;
377
+ constructor(id, channel, consumerTag, amqpChannel) {
378
+ this.id = id;
379
+ this.channel = channel;
380
+ this.consumerTag = consumerTag;
381
+ this.amqpChannel = amqpChannel;
382
+ }
383
+ async unsubscribe() {
384
+ if (!this._isActive)
385
+ return;
386
+ await this.amqpChannel.cancel(this.consumerTag);
387
+ this._isActive = false;
388
+ }
389
+ async pause() {
390
+ // RabbitMQ doesn't have native pause, cancel consumer
391
+ await this.amqpChannel.cancel(this.consumerTag);
392
+ }
393
+ async resume() {
394
+ // Would need to re-subscribe - not directly supported
395
+ throw new Error("Resume is not supported for RabbitMQ. Please create a new subscription.");
396
+ }
397
+ isActive() {
398
+ return this._isActive;
399
+ }
400
+ }export{RabbitMQChannel};//# sourceMappingURL=rabbitmq-channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rabbitmq-channel.js","sources":["../../../src/drivers/rabbitmq/rabbitmq-channel.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import type { ChannelContract, CommunicatorDriverContract } from "../../contracts";
2
+ import type { ChannelOptions, CommunicatorEvent, CommunicatorEventListener, HealthCheckResult, RabbitMQConnectionOptions } from "../../types";
3
+ /**
4
+ * RabbitMQ Driver
5
+ *
6
+ * Implementation of CommunicatorDriverContract for RabbitMQ/AMQP.
7
+ *
8
+ * **Important:** This driver requires the `amqplib` package to be installed.
9
+ * Install it with: `npx warlock add herald --driver=rabbitmq` or `npm install amqplib`
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const driver = new RabbitMQDriver({
14
+ * driver: "rabbitmq",
15
+ * host: "localhost",
16
+ * port: 5672,
17
+ * username: "guest",
18
+ * password: "guest",
19
+ * });
20
+ *
21
+ * await driver.connect();
22
+ * const channel = driver.channel("user.created");
23
+ * ```
24
+ */
25
+ export declare class RabbitMQDriver implements CommunicatorDriverContract {
26
+ readonly name: "rabbitmq";
27
+ private readonly options;
28
+ private readonly events;
29
+ private readonly channels;
30
+ private connection;
31
+ private amqpChannel;
32
+ private _isConnected;
33
+ /**
34
+ * Create a new RabbitMQ driver
35
+ *
36
+ * @param options - RabbitMQ connection options
37
+ */
38
+ constructor(options: RabbitMQConnectionOptions);
39
+ /**
40
+ * Whether connected to RabbitMQ
41
+ */
42
+ get isConnected(): boolean;
43
+ /**
44
+ * Connect to RabbitMQ
45
+ */
46
+ connect(): Promise<void>;
47
+ /**
48
+ * Build connection URL from options
49
+ */
50
+ private buildConnectionUrl;
51
+ /**
52
+ * Handle reconnection
53
+ */
54
+ private handleReconnect;
55
+ /**
56
+ * Disconnect from RabbitMQ
57
+ */
58
+ disconnect(): Promise<void>;
59
+ /**
60
+ * Register event listener
61
+ */
62
+ on(event: CommunicatorEvent, listener: CommunicatorEventListener): void;
63
+ /**
64
+ * Remove event listener
65
+ */
66
+ off(event: CommunicatorEvent, listener: CommunicatorEventListener): void;
67
+ /**
68
+ * Get or create a channel
69
+ */
70
+ channel<TPayload = unknown>(name: string, options?: ChannelOptions<TPayload>): ChannelContract<TPayload>;
71
+ /**
72
+ * Start consuming messages
73
+ */
74
+ startConsuming(): Promise<void>;
75
+ /**
76
+ * Stop consuming messages
77
+ */
78
+ stopConsuming(): Promise<void>;
79
+ /**
80
+ * Health check
81
+ */
82
+ healthCheck(): Promise<HealthCheckResult>;
83
+ /**
84
+ * Get all channel names
85
+ */
86
+ getChannelNames(): string[];
87
+ /**
88
+ * Close a specific channel
89
+ */
90
+ closeChannel(name: string): Promise<void>;
91
+ /**
92
+ * Get the raw AMQP channel (for advanced use)
93
+ */
94
+ getRawChannel(): any;
95
+ /**
96
+ * Get the raw connection (for advanced use)
97
+ */
98
+ getRawConnection(): any;
99
+ }
100
+ //# sourceMappingURL=rabbitmq-driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rabbitmq-driver.d.ts","sourceRoot":"","sources":["../../../src/drivers/rabbitmq/rabbitmq-driver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AAoDrB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,cAAe,YAAW,0BAA0B;IAC/D,SAAgB,IAAI,aAAuB;IAE3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;IAEpE,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,YAAY,CAAS;IAE7B;;;;OAIG;gBACgB,OAAO,EAAE,yBAAyB;IAIrD;;OAEG;IACH,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8DrC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;YACW,eAAe;IAkB7B;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBxC;;OAEG;IACI,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAI9E;;OAEG;IACI,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAI/E;;OAEG;IACI,OAAO,CAAC,QAAQ,GAAG,OAAO,EAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,GACjC,eAAe,CAAC,QAAQ,CAAC;IAc5B;;OAEG;IACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5C;;OAEG;IACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3C;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA6BtD;;OAEG;IACI,eAAe,IAAI,MAAM,EAAE;IAIlC;;OAEG;IACU,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtD;;OAEG;IACI,aAAa,IAAI,GAAG;IAI3B;;OAEG;IACI,gBAAgB,IAAI,GAAG;CAG/B"}