bunqueue 1.6.8 → 1.7.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.
Files changed (43) hide show
  1. package/dist/application/queueManager.js +2 -2
  2. package/dist/application/queueManager.js.map +1 -1
  3. package/dist/cli/index.d.ts.map +1 -1
  4. package/dist/cli/index.js +1 -3
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/client/index.d.ts +3 -1
  7. package/dist/client/index.d.ts.map +1 -1
  8. package/dist/client/index.js +2 -0
  9. package/dist/client/index.js.map +1 -1
  10. package/dist/client/queue.d.ts +25 -4
  11. package/dist/client/queue.d.ts.map +1 -1
  12. package/dist/client/queue.js +290 -40
  13. package/dist/client/queue.js.map +1 -1
  14. package/dist/client/tcpClient.d.ts +63 -0
  15. package/dist/client/tcpClient.d.ts.map +1 -0
  16. package/dist/client/tcpClient.js +334 -0
  17. package/dist/client/tcpClient.js.map +1 -0
  18. package/dist/client/tcpPool.d.ts +41 -0
  19. package/dist/client/tcpPool.d.ts.map +1 -0
  20. package/dist/client/tcpPool.js +110 -0
  21. package/dist/client/tcpPool.js.map +1 -0
  22. package/dist/client/types.d.ts +21 -0
  23. package/dist/client/types.d.ts.map +1 -1
  24. package/dist/client/types.js.map +1 -1
  25. package/dist/client/worker.d.ts +27 -0
  26. package/dist/client/worker.d.ts.map +1 -1
  27. package/dist/client/worker.js +241 -14
  28. package/dist/client/worker.js.map +1 -1
  29. package/dist/infrastructure/backup/s3Backup.d.ts.map +1 -1
  30. package/dist/infrastructure/backup/s3Backup.js +2 -1
  31. package/dist/infrastructure/backup/s3Backup.js.map +1 -1
  32. package/dist/infrastructure/server/http.d.ts.map +1 -1
  33. package/dist/infrastructure/server/http.js +2 -1
  34. package/dist/infrastructure/server/http.js.map +1 -1
  35. package/dist/infrastructure/server/rateLimiter.js +1 -1
  36. package/dist/infrastructure/server/rateLimiter.js.map +1 -1
  37. package/dist/mcp/index.js +2 -1
  38. package/dist/mcp/index.js.map +1 -1
  39. package/dist/shared/version.d.ts +1 -1
  40. package/dist/shared/version.d.ts.map +1 -1
  41. package/dist/shared/version.js +3 -27
  42. package/dist/shared/version.js.map +1 -1
  43. package/package.json +2 -2
@@ -1,18 +1,21 @@
1
1
  /**
2
2
  * Queue - BullMQ-style API
3
+ * Default: TCP connection to localhost:6789
4
+ * Optional: embedded mode with { embedded: true }
3
5
  */
4
6
  import { getSharedManager } from './manager';
7
+ import { getSharedTcpClient } from './tcpClient';
8
+ import { TcpConnectionPool } from './tcpPool';
5
9
  import { toPublicJob, toDlqEntry } from './types';
6
10
  import { jobId } from '../domain/types/job';
7
11
  import { shardIndex } from '../shared/hash';
8
12
  import * as dlqOps from '../application/dlqManager';
9
- /** Helper to get shard from manager */
13
+ /** Helper to get shard from manager (embedded mode only) */
10
14
  function getShard(manager, queue) {
11
15
  const idx = shardIndex(queue);
12
- // Access internal shards array (safe cast for embedded mode)
13
16
  return manager.shards[idx];
14
17
  }
15
- /** Helper to create DLQ context */
18
+ /** Helper to create DLQ context (embedded mode only) */
16
19
  function getDlqContext(manager) {
17
20
  return {
18
21
  shards: manager.shards,
@@ -25,31 +28,120 @@ function toDomainFilter(filter) {
25
28
  return undefined;
26
29
  return filter;
27
30
  }
31
+ /** Check if embedded mode should be forced (for tests) */
32
+ const FORCE_EMBEDDED = process.env.BUNQUEUE_EMBEDDED === '1';
28
33
  /**
29
34
  * Queue class for adding and managing jobs
35
+ * Default: connects to bunqueue server via TCP
36
+ * Use { embedded: true } for in-process mode
37
+ * Set BUNQUEUE_EMBEDDED=1 env var to force embedded mode
30
38
  */
31
39
  export class Queue {
32
40
  name;
33
41
  opts;
42
+ embedded;
43
+ tcpClient;
44
+ tcpPool;
34
45
  constructor(name, opts = {}) {
35
46
  this.name = name;
36
47
  this.opts = opts;
48
+ this.embedded = opts.embedded ?? FORCE_EMBEDDED;
49
+ if (this.embedded) {
50
+ this.tcpClient = null;
51
+ this.tcpPool = null;
52
+ }
53
+ else {
54
+ const connOpts = opts.connection ?? {};
55
+ const poolSize = connOpts.poolSize ?? 1;
56
+ if (poolSize > 1) {
57
+ // Use connection pool for parallel operations
58
+ this.tcpPool = new TcpConnectionPool({
59
+ host: connOpts.host ?? 'localhost',
60
+ port: connOpts.port ?? 6789,
61
+ token: connOpts.token,
62
+ poolSize,
63
+ });
64
+ this.tcpClient = null;
65
+ }
66
+ else {
67
+ // Use single shared connection
68
+ this.tcpClient = getSharedTcpClient({
69
+ host: connOpts.host ?? 'localhost',
70
+ port: connOpts.port ?? 6789,
71
+ token: connOpts.token,
72
+ });
73
+ this.tcpPool = null;
74
+ }
75
+ }
76
+ }
77
+ /** Get TCP client (pool or single) */
78
+ get tcp() {
79
+ return this.tcpPool ?? this.tcpClient;
37
80
  }
38
81
  /** Add a job to the queue */
39
82
  async add(name, data, opts = {}) {
40
83
  const merged = { ...this.opts.defaultJobOptions, ...opts };
84
+ if (this.embedded) {
85
+ return this.addEmbedded(name, data, merged);
86
+ }
87
+ return this.addTcp(name, data, merged);
88
+ }
89
+ async addTcp(name, data, opts) {
90
+ const response = await this.tcp.send({
91
+ cmd: 'PUSH',
92
+ queue: this.name,
93
+ data: { name, ...data },
94
+ priority: opts.priority,
95
+ delay: opts.delay,
96
+ maxAttempts: opts.attempts,
97
+ backoff: opts.backoff,
98
+ timeout: opts.timeout,
99
+ customId: opts.jobId,
100
+ removeOnComplete: opts.removeOnComplete,
101
+ removeOnFail: opts.removeOnFail,
102
+ });
103
+ if (!response.ok) {
104
+ throw new Error(response.error ?? 'Failed to add job');
105
+ }
106
+ const jobId = response.id;
107
+ return {
108
+ id: jobId,
109
+ name,
110
+ data,
111
+ queueName: this.name,
112
+ attemptsMade: 0,
113
+ timestamp: Date.now(),
114
+ progress: 0,
115
+ updateProgress: async (progress, message) => {
116
+ await this.tcp.send({
117
+ cmd: 'Progress',
118
+ id: jobId,
119
+ progress,
120
+ message,
121
+ });
122
+ },
123
+ log: async (message) => {
124
+ await this.tcp.send({
125
+ cmd: 'AddLog',
126
+ id: jobId,
127
+ message,
128
+ });
129
+ },
130
+ };
131
+ }
132
+ async addEmbedded(name, data, opts) {
41
133
  const manager = getSharedManager();
42
134
  const job = await manager.push(this.name, {
43
135
  data: { name, ...data },
44
- priority: merged.priority,
45
- delay: merged.delay,
46
- maxAttempts: merged.attempts,
47
- backoff: merged.backoff,
48
- timeout: merged.timeout,
49
- customId: merged.jobId,
50
- removeOnComplete: merged.removeOnComplete,
51
- removeOnFail: merged.removeOnFail,
52
- repeat: merged.repeat,
136
+ priority: opts.priority,
137
+ delay: opts.delay,
138
+ maxAttempts: opts.attempts,
139
+ backoff: opts.backoff,
140
+ timeout: opts.timeout,
141
+ customId: opts.jobId,
142
+ removeOnComplete: opts.removeOnComplete,
143
+ removeOnFail: opts.removeOnFail,
144
+ repeat: opts.repeat,
53
145
  });
54
146
  return toPublicJob(job, name);
55
147
  }
@@ -57,9 +149,51 @@ export class Queue {
57
149
  async addBulk(jobs) {
58
150
  if (jobs.length === 0)
59
151
  return [];
152
+ if (this.embedded) {
153
+ return this.addBulkEmbedded(jobs);
154
+ }
155
+ return this.addBulkTcp(jobs);
156
+ }
157
+ async addBulkTcp(jobs) {
158
+ const now = Date.now();
159
+ const jobInputs = jobs.map(({ name, data, opts }) => {
160
+ const merged = { ...this.opts.defaultJobOptions, ...opts };
161
+ return {
162
+ data: { name, ...data },
163
+ priority: merged.priority,
164
+ delay: merged.delay,
165
+ maxAttempts: merged.attempts,
166
+ backoff: merged.backoff,
167
+ timeout: merged.timeout,
168
+ customId: merged.jobId,
169
+ removeOnComplete: merged.removeOnComplete,
170
+ removeOnFail: merged.removeOnFail,
171
+ };
172
+ });
173
+ const response = await this.tcp.send({
174
+ cmd: 'PUSHB',
175
+ queue: this.name,
176
+ jobs: jobInputs,
177
+ });
178
+ if (!response.ok) {
179
+ throw new Error(response.error ?? 'Failed to add jobs');
180
+ }
181
+ const ids = response.ids;
182
+ return ids.map((id, i) => ({
183
+ id: String(id),
184
+ name: jobs[i].name,
185
+ data: jobs[i].data,
186
+ queueName: this.name,
187
+ attemptsMade: 0,
188
+ timestamp: now,
189
+ progress: 0,
190
+ updateProgress: async () => { },
191
+ log: async () => { },
192
+ }));
193
+ }
194
+ async addBulkEmbedded(jobs) {
60
195
  const manager = getSharedManager();
61
196
  const now = Date.now();
62
- // Map to JobInput format
63
197
  const inputs = jobs.map(({ name, data, opts }) => {
64
198
  const merged = { ...this.opts.defaultJobOptions, ...opts };
65
199
  return {
@@ -75,9 +209,7 @@ export class Queue {
75
209
  repeat: merged.repeat,
76
210
  };
77
211
  });
78
- // Single batch push (optimized: single lock, batch INSERT)
79
212
  const jobIds = await manager.pushBatch(this.name, inputs);
80
- // Create public job objects
81
213
  return jobIds.map((id, i) => ({
82
214
  id: String(id),
83
215
  name: jobs[i].name,
@@ -92,79 +224,181 @@ export class Queue {
92
224
  }
93
225
  /** Get a job by ID */
94
226
  async getJob(id) {
95
- const manager = getSharedManager();
96
- const job = await manager.getJob(jobId(id));
97
- if (!job)
227
+ if (this.embedded) {
228
+ const manager = getSharedManager();
229
+ const job = await manager.getJob(jobId(id));
230
+ if (!job)
231
+ return null;
232
+ const jobData = job.data;
233
+ return toPublicJob(job, jobData?.name ?? 'default');
234
+ }
235
+ const response = await this.tcp.send({
236
+ cmd: 'GetJob',
237
+ id,
238
+ });
239
+ if (!response.ok || !response.job)
98
240
  return null;
99
- const jobData = job.data;
100
- return toPublicJob(job, jobData?.name ?? 'default');
241
+ const jobData = response.job;
242
+ const data = jobData.data;
243
+ return {
244
+ id: String(jobData.id),
245
+ name: data?.name ?? 'default',
246
+ data: jobData.data,
247
+ queueName: this.name,
248
+ attemptsMade: jobData.attempts ?? 0,
249
+ timestamp: jobData.createdAt ?? Date.now(),
250
+ progress: jobData.progress ?? 0,
251
+ updateProgress: async () => { },
252
+ log: async () => { },
253
+ };
101
254
  }
102
255
  /** Remove a job by ID */
103
256
  remove(id) {
104
- const manager = getSharedManager();
105
- void manager.cancel(jobId(id));
257
+ if (this.embedded) {
258
+ const manager = getSharedManager();
259
+ void manager.cancel(jobId(id));
260
+ }
261
+ else {
262
+ void this.tcp.send({ cmd: 'Cancel', id });
263
+ }
106
264
  }
107
265
  /** Get job counts by state */
108
266
  getJobCounts() {
109
- const stats = getSharedManager().getStats();
267
+ if (this.embedded) {
268
+ const stats = getSharedManager().getStats();
269
+ return {
270
+ waiting: stats.waiting,
271
+ active: stats.active,
272
+ completed: stats.completed,
273
+ failed: stats.dlq,
274
+ };
275
+ }
276
+ // TCP mode - sync call not ideal, return zeros
277
+ // For accurate counts, use getJobCountsAsync
278
+ return { waiting: 0, active: 0, completed: 0, failed: 0 };
279
+ }
280
+ /** Get job counts (async, works with TCP) */
281
+ async getJobCountsAsync() {
282
+ if (this.embedded) {
283
+ return this.getJobCounts();
284
+ }
285
+ const response = await this.tcp.send({ cmd: 'Stats' });
286
+ if (!response.ok) {
287
+ return { waiting: 0, active: 0, completed: 0, failed: 0 };
288
+ }
289
+ const stats = response.stats;
290
+ if (!stats) {
291
+ return { waiting: 0, active: 0, completed: 0, failed: 0 };
292
+ }
110
293
  return {
111
- waiting: stats.waiting,
112
- active: stats.active,
113
- completed: stats.completed,
114
- failed: stats.dlq,
294
+ waiting: stats.queued ?? 0,
295
+ active: stats.processing ?? 0,
296
+ completed: stats.completed ?? 0,
297
+ failed: stats.dlq ?? 0,
115
298
  };
116
299
  }
117
300
  /** Pause the queue */
118
301
  pause() {
119
- getSharedManager().pause(this.name);
302
+ if (this.embedded) {
303
+ getSharedManager().pause(this.name);
304
+ }
305
+ else {
306
+ void this.tcp.send({ cmd: 'Pause', queue: this.name });
307
+ }
120
308
  }
121
309
  /** Resume the queue */
122
310
  resume() {
123
- getSharedManager().resume(this.name);
311
+ if (this.embedded) {
312
+ getSharedManager().resume(this.name);
313
+ }
314
+ else {
315
+ void this.tcp.send({ cmd: 'Resume', queue: this.name });
316
+ }
124
317
  }
125
318
  /** Remove all waiting jobs */
126
319
  drain() {
127
- getSharedManager().drain(this.name);
320
+ if (this.embedded) {
321
+ getSharedManager().drain(this.name);
322
+ }
323
+ else {
324
+ void this.tcp.send({ cmd: 'Drain', queue: this.name });
325
+ }
128
326
  }
129
327
  /** Remove all queue data (waiting, active, completed, failed) */
130
328
  obliterate() {
131
- getSharedManager().obliterate(this.name);
329
+ if (this.embedded) {
330
+ getSharedManager().obliterate(this.name);
331
+ }
332
+ else {
333
+ void this.tcp.send({ cmd: 'Obliterate', queue: this.name });
334
+ }
132
335
  }
133
- // ============ Stall Detection ============
336
+ // ============ Stall Detection (embedded only for now) ============
134
337
  /** Configure stall detection for this queue */
135
338
  setStallConfig(config) {
339
+ if (!this.embedded) {
340
+ console.warn('setStallConfig is only supported in embedded mode');
341
+ return;
342
+ }
136
343
  const manager = getSharedManager();
137
344
  const shard = getShard(manager, this.name);
138
345
  shard.setStallConfig(this.name, config);
139
346
  }
140
347
  /** Get stall detection configuration */
141
348
  getStallConfig() {
349
+ if (!this.embedded) {
350
+ console.warn('getStallConfig is only supported in embedded mode');
351
+ return { enabled: true, stallInterval: 30000, maxStalls: 3, gracePeriod: 5000 };
352
+ }
142
353
  const manager = getSharedManager();
143
354
  const shard = getShard(manager, this.name);
144
355
  return shard.getStallConfig(this.name);
145
356
  }
146
357
  // ============ DLQ Operations ============
147
- /** Configure DLQ for this queue */
358
+ /** Configure DLQ for this queue (embedded only) */
148
359
  setDlqConfig(config) {
360
+ if (!this.embedded) {
361
+ console.warn('setDlqConfig is only supported in embedded mode');
362
+ return;
363
+ }
149
364
  const manager = getSharedManager();
150
365
  const ctx = getDlqContext(manager);
151
366
  dlqOps.configureDlq(this.name, ctx, config);
152
367
  }
153
- /** Get DLQ configuration */
368
+ /** Get DLQ configuration (embedded only) */
154
369
  getDlqConfig() {
370
+ if (!this.embedded) {
371
+ console.warn('getDlqConfig is only supported in embedded mode');
372
+ return {};
373
+ }
155
374
  const manager = getSharedManager();
156
375
  const ctx = getDlqContext(manager);
157
376
  return dlqOps.getDlqConfig(this.name, ctx);
158
377
  }
159
378
  /** Get DLQ entries with optional filter */
160
379
  getDlq(filter) {
380
+ if (!this.embedded) {
381
+ console.warn('getDlq is only supported in embedded mode, use getDlqAsync for TCP');
382
+ return [];
383
+ }
161
384
  const manager = getSharedManager();
162
385
  const ctx = getDlqContext(manager);
163
386
  const entries = dlqOps.getDlqEntries(this.name, ctx, toDomainFilter(filter));
164
387
  return entries.map((entry) => toDlqEntry(entry));
165
388
  }
166
- /** Get DLQ statistics */
389
+ /** Get DLQ statistics (embedded only) */
167
390
  getDlqStats() {
391
+ if (!this.embedded) {
392
+ console.warn('getDlqStats is only supported in embedded mode');
393
+ return {
394
+ total: 0,
395
+ byReason: {},
396
+ pendingRetry: 0,
397
+ expired: 0,
398
+ oldestEntry: null,
399
+ newestEntry: null,
400
+ };
401
+ }
168
402
  const manager = getSharedManager();
169
403
  const ctx = getDlqContext(manager);
170
404
  const stats = dlqOps.getDlqStats(this.name, ctx);
@@ -179,11 +413,19 @@ export class Queue {
179
413
  }
180
414
  /** Retry jobs from DLQ */
181
415
  retryDlq(id) {
182
- const manager = getSharedManager();
183
- return manager.retryDlq(this.name, id ? jobId(id) : undefined);
416
+ if (this.embedded) {
417
+ const manager = getSharedManager();
418
+ return manager.retryDlq(this.name, id ? jobId(id) : undefined);
419
+ }
420
+ void this.tcp.send({ cmd: 'RetryDlq', queue: this.name, id });
421
+ return 0; // TCP doesn't return count synchronously
184
422
  }
185
- /** Retry DLQ jobs by filter */
423
+ /** Retry DLQ jobs by filter (embedded only) */
186
424
  retryDlqByFilter(filter) {
425
+ if (!this.embedded) {
426
+ console.warn('retryDlqByFilter is only supported in embedded mode');
427
+ return 0;
428
+ }
187
429
  const manager = getSharedManager();
188
430
  const ctx = getDlqContext(manager);
189
431
  const domainFilter = toDomainFilter(filter);
@@ -193,11 +435,19 @@ export class Queue {
193
435
  }
194
436
  /** Purge all jobs from DLQ */
195
437
  purgeDlq() {
196
- return getSharedManager().purgeDlq(this.name);
438
+ if (this.embedded) {
439
+ return getSharedManager().purgeDlq(this.name);
440
+ }
441
+ void this.tcp.send({ cmd: 'PurgeDlq', queue: this.name });
442
+ return 0;
197
443
  }
198
444
  /** Close the queue */
199
445
  async close() {
200
- // No-op for embedded mode
446
+ // Close pool if using pooled connections (not shared)
447
+ if (this.tcpPool) {
448
+ this.tcpPool.close();
449
+ }
450
+ // Shared client is managed globally, don't close
201
451
  }
202
452
  }
203
453
  //# sourceMappingURL=queue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/client/queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/client/queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * TCP Client for SDK - Production Ready
3
+ * Connects to bunqueue server via TCP with auto-reconnection
4
+ */
5
+ import { EventEmitter } from 'events';
6
+ /** Connection options */
7
+ export interface ConnectionOptions {
8
+ host: string;
9
+ port: number;
10
+ token?: string;
11
+ /** Max reconnection attempts (default: Infinity) */
12
+ maxReconnectAttempts?: number;
13
+ /** Initial reconnect delay in ms (default: 100) */
14
+ reconnectDelay?: number;
15
+ /** Max reconnect delay in ms (default: 30000) */
16
+ maxReconnectDelay?: number;
17
+ /** Connection timeout in ms (default: 5000) */
18
+ connectTimeout?: number;
19
+ /** Command timeout in ms (default: 30000) */
20
+ commandTimeout?: number;
21
+ /** Enable auto-reconnect (default: true) */
22
+ autoReconnect?: boolean;
23
+ }
24
+ /** Default connection */
25
+ export declare const DEFAULT_CONNECTION: Required<ConnectionOptions>;
26
+ /**
27
+ * TCP Client - manages connection to bunqueue server
28
+ * Production-ready with auto-reconnection and exponential backoff
29
+ */
30
+ export declare class TcpClient extends EventEmitter {
31
+ private socket;
32
+ private connected;
33
+ private connecting;
34
+ private closed;
35
+ private reconnectAttempts;
36
+ private reconnectTimer;
37
+ private readonly options;
38
+ private pendingCommands;
39
+ private currentCommand;
40
+ constructor(options?: Partial<ConnectionOptions>);
41
+ /** Connect to server */
42
+ connect(): Promise<void>;
43
+ private doConnect;
44
+ /** Schedule reconnection with exponential backoff */
45
+ private scheduleReconnect;
46
+ /** Internal send without auto-connect */
47
+ private sendInternal;
48
+ /** Process next pending command */
49
+ private processNextCommand;
50
+ /** Send command and wait for response */
51
+ send(command: Record<string, unknown>): Promise<Record<string, unknown>>;
52
+ /** Close connection */
53
+ close(): void;
54
+ /** Check if connected */
55
+ isConnected(): boolean;
56
+ /** Get connection state */
57
+ getState(): 'connected' | 'connecting' | 'disconnected' | 'closed';
58
+ }
59
+ /** Get shared TCP client */
60
+ export declare function getSharedTcpClient(options?: Partial<ConnectionOptions>): TcpClient;
61
+ /** Close shared client */
62
+ export declare function closeSharedTcpClient(): void;
63
+ //# sourceMappingURL=tcpClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tcpClient.d.ts","sourceRoot":"","sources":["../../src/client/tcpClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,yBAAyB;AACzB,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,yBAAyB;AACzB,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,iBAAiB,CAU1D,CAAC;AAiBF;;;GAGG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,cAAc,CAA+B;gBAEzC,OAAO,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAKpD,wBAAwB;IAClB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAoChB,SAAS;IAwIvB,qDAAqD;IACrD,OAAO,CAAC,iBAAiB;IAsCzB,yCAAyC;YAC3B,YAAY;IAmB1B,mCAAmC;IACnC,OAAO,CAAC,kBAAkB;IAU1B,yCAAyC;IACnC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA6B9E,uBAAuB;IACvB,KAAK,IAAI,IAAI;IA4Bb,yBAAyB;IACzB,WAAW,IAAI,OAAO;IAItB,2BAA2B;IAC3B,QAAQ,IAAI,WAAW,GAAG,YAAY,GAAG,cAAc,GAAG,QAAQ;CAMnE;AAKD,4BAA4B;AAC5B,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAKlF;AAED,0BAA0B;AAC1B,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C"}