@venizia/ignis-helpers 0.0.8-9 → 0.0.8
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/README.md +2 -2
- package/dist/modules/index.d.ts +1 -0
- package/dist/modules/index.d.ts.map +1 -1
- package/dist/modules/index.js +1 -0
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/pool/helper.d.ts +100 -0
- package/dist/modules/pool/helper.d.ts.map +1 -0
- package/dist/modules/pool/helper.js +326 -0
- package/dist/modules/pool/helper.js.map +1 -0
- package/dist/modules/pool/index.d.ts +3 -0
- package/dist/modules/pool/index.d.ts.map +1 -0
- package/dist/modules/pool/index.js +19 -0
- package/dist/modules/pool/index.js.map +1 -0
- package/dist/modules/pool/types.d.ts +62 -0
- package/dist/modules/pool/types.d.ts.map +1 -0
- package/dist/modules/pool/types.js +3 -0
- package/dist/modules/pool/types.js.map +1 -0
- package/dist/modules/queue/internal/hf/helper.d.ts +37 -0
- package/dist/modules/queue/internal/hf/helper.d.ts.map +1 -0
- package/dist/modules/queue/internal/hf/helper.js +82 -0
- package/dist/modules/queue/internal/hf/helper.js.map +1 -0
- package/dist/modules/queue/internal/hf/index.d.ts +3 -0
- package/dist/modules/queue/internal/hf/index.d.ts.map +1 -0
- package/dist/modules/queue/internal/hf/index.js +19 -0
- package/dist/modules/queue/internal/hf/index.js.map +1 -0
- package/dist/modules/queue/internal/hf/types.d.ts +9 -0
- package/dist/modules/queue/internal/hf/types.d.ts.map +1 -0
- package/dist/modules/queue/internal/hf/types.js +3 -0
- package/dist/modules/queue/internal/hf/types.js.map +1 -0
- package/dist/modules/queue/internal/index.d.ts +2 -1
- package/dist/modules/queue/internal/index.d.ts.map +1 -1
- package/dist/modules/queue/internal/index.js +2 -1
- package/dist/modules/queue/internal/index.js.map +1 -1
- package/dist/modules/queue/internal/sequential/helper.d.ts +40 -0
- package/dist/modules/queue/internal/sequential/helper.d.ts.map +1 -0
- package/dist/modules/queue/internal/{helper.js → sequential/helper.js} +26 -32
- package/dist/modules/queue/internal/sequential/helper.js.map +1 -0
- package/dist/modules/queue/internal/sequential/index.d.ts +3 -0
- package/dist/modules/queue/internal/sequential/index.d.ts.map +1 -0
- package/dist/modules/queue/internal/sequential/index.js +19 -0
- package/dist/modules/queue/internal/sequential/index.js.map +1 -0
- package/dist/modules/queue/internal/sequential/types.d.ts +35 -0
- package/dist/modules/queue/internal/sequential/types.d.ts.map +1 -0
- package/dist/modules/queue/internal/sequential/types.js +15 -0
- package/dist/modules/queue/internal/sequential/types.js.map +1 -0
- package/dist/modules/queue/kafka/base.d.ts +3 -1
- package/dist/modules/queue/kafka/base.d.ts.map +1 -1
- package/dist/modules/queue/kafka/base.js +11 -0
- package/dist/modules/queue/kafka/base.js.map +1 -1
- package/dist/modules/queue/kafka/consumer.d.ts +8 -0
- package/dist/modules/queue/kafka/consumer.d.ts.map +1 -1
- package/dist/modules/queue/kafka/consumer.js +126 -35
- package/dist/modules/queue/kafka/consumer.js.map +1 -1
- package/package.json +7 -6
- package/dist/modules/queue/internal/helper.d.ts +0 -69
- package/dist/modules/queue/internal/helper.d.ts.map +0 -1
- package/dist/modules/queue/internal/helper.js.map +0 -1
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HfQueueHelper = void 0;
|
|
4
|
+
const base_1 = require("../../../../modules/base");
|
|
5
|
+
/**
|
|
6
|
+
* High-frequency, single-consumer FIFO queue with O(1) enqueue / dequeue / cancel.
|
|
7
|
+
*
|
|
8
|
+
* Backed by an array plus a moving head index (no `Array.shift()`, which is O(n)); cancellation flags
|
|
9
|
+
* the node so {@link dequeue} skips it instead of splicing. The consumed prefix is compacted only
|
|
10
|
+
* occasionally to reclaim memory, keeping every operation amortized O(1).
|
|
11
|
+
*
|
|
12
|
+
* Not thread-safe — intended for single-threaded (event-loop) use, e.g. a pool's waiter queue.
|
|
13
|
+
*/
|
|
14
|
+
class HfQueueHelper extends base_1.BaseHelper {
|
|
15
|
+
// Reclaim the consumed prefix once it dominates the backing array.
|
|
16
|
+
static { this.COMPACT_THRESHOLD = 256; }
|
|
17
|
+
constructor(opts) {
|
|
18
|
+
super({ scope: opts?.scope ?? HfQueueHelper.name });
|
|
19
|
+
this.nodes = [];
|
|
20
|
+
this.head = 0; // index of the next node to consider
|
|
21
|
+
this.liveCount = 0; // enqueued − (dequeued + cancelled)
|
|
22
|
+
}
|
|
23
|
+
/** Number of live entries (enqueued, not yet dequeued or cancelled). */
|
|
24
|
+
get size() {
|
|
25
|
+
return this.liveCount;
|
|
26
|
+
}
|
|
27
|
+
/** Append a value and return a node handle usable to cancel it later. O(1). */
|
|
28
|
+
enqueue(opts) {
|
|
29
|
+
const node = { value: opts.value, isCancelled: false };
|
|
30
|
+
this.nodes.push(node);
|
|
31
|
+
this.liveCount += 1;
|
|
32
|
+
return node;
|
|
33
|
+
}
|
|
34
|
+
/** Remove + return the next live value in FIFO order, skipping cancelled nodes. Null when empty. */
|
|
35
|
+
dequeue() {
|
|
36
|
+
// Continuously skip cancelled nodes until touch required to process
|
|
37
|
+
while (this.head < this.nodes.length && this.nodes[this.head].isCancelled) {
|
|
38
|
+
this.head += 1;
|
|
39
|
+
}
|
|
40
|
+
if (this.head >= this.nodes.length) {
|
|
41
|
+
// fully drained → cheap reset
|
|
42
|
+
this.reset();
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
const node = this.nodes[this.head];
|
|
46
|
+
this.head += 1;
|
|
47
|
+
this.liveCount -= 1;
|
|
48
|
+
node.isCancelled = true; // mark consumed so a late cancel() of this node is a no-op
|
|
49
|
+
if (this.head > HfQueueHelper.COMPACT_THRESHOLD && this.head * 2 >= this.nodes.length) {
|
|
50
|
+
this.nodes.splice(0, this.head);
|
|
51
|
+
this.head = 0;
|
|
52
|
+
}
|
|
53
|
+
return node.value;
|
|
54
|
+
}
|
|
55
|
+
/** Mark a still-queued node cancelled so {@link dequeue} and {@link size} skip it. Idempotent. O(1). */
|
|
56
|
+
cancel(opts) {
|
|
57
|
+
if (opts.node.isCancelled) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
opts.node.isCancelled = true;
|
|
61
|
+
this.liveCount -= 1;
|
|
62
|
+
}
|
|
63
|
+
/** Remove and return every remaining LIVE value in FIFO order (e.g. on shutdown), emptying the queue. */
|
|
64
|
+
drain() {
|
|
65
|
+
const values = [];
|
|
66
|
+
for (let index = this.head; index < this.nodes.length; index += 1) {
|
|
67
|
+
const node = this.nodes[index];
|
|
68
|
+
if (!node.isCancelled) {
|
|
69
|
+
values.push(node.value);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
this.reset();
|
|
73
|
+
return values;
|
|
74
|
+
}
|
|
75
|
+
reset() {
|
|
76
|
+
this.nodes.length = 0;
|
|
77
|
+
this.head = 0;
|
|
78
|
+
this.liveCount = 0;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.HfQueueHelper = HfQueueHelper;
|
|
82
|
+
//# sourceMappingURL=helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../../../src/modules/queue/internal/hf/helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/queue/internal/hf/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./helper"), exports);
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/queue/internal/hf/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A handle returned by {@link HfQueueHelper.enqueue}. Pass it back to {@link HfQueueHelper.cancel} to
|
|
3
|
+
* remove that entry in O(1) without scanning the queue.
|
|
4
|
+
*/
|
|
5
|
+
export interface IHfQueueNode<T> {
|
|
6
|
+
readonly value: T;
|
|
7
|
+
isCancelled: boolean;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/modules/queue/internal/hf/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/modules/queue/internal/hf/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/queue/internal/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/queue/internal/index.ts"],"names":[],"mappings":"AAAA,cAAc,MAAM,CAAC;AACrB,cAAc,cAAc,CAAC"}
|
|
@@ -14,5 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./hf"), exports);
|
|
18
|
+
__exportStar(require("./sequential"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/queue/internal/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/queue/internal/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uCAAqB;AACrB,+CAA6B"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { BaseHelper } from '../../../../modules/base';
|
|
2
|
+
import { IQueueCallback, TQueueElement, TQueueStatus } from './types';
|
|
3
|
+
export declare class SequentialQueueHelper<TElementPayload> extends BaseHelper {
|
|
4
|
+
storage: Array<TQueueElement<TElementPayload>>;
|
|
5
|
+
protected processingEvents: Set<TQueueElement<TElementPayload>>;
|
|
6
|
+
protected generator: Generator;
|
|
7
|
+
protected totalEvent: number;
|
|
8
|
+
protected autoDispatch: boolean;
|
|
9
|
+
protected state: TQueueStatus;
|
|
10
|
+
protected isSettleRequested: boolean;
|
|
11
|
+
private onMessage?;
|
|
12
|
+
private onDataEnqueue?;
|
|
13
|
+
private onDataDequeue?;
|
|
14
|
+
private onStateChange?;
|
|
15
|
+
constructor(opts: IQueueCallback<TElementPayload> & {
|
|
16
|
+
identifier: string;
|
|
17
|
+
});
|
|
18
|
+
protected handleMessage(): Promise<void>;
|
|
19
|
+
private _messageListener;
|
|
20
|
+
nextMessage(): void;
|
|
21
|
+
enqueue(payload: TElementPayload): Promise<void>;
|
|
22
|
+
dequeue(): TQueueElement<TElementPayload> | undefined;
|
|
23
|
+
lock(): void;
|
|
24
|
+
unlock(opts: {
|
|
25
|
+
shouldProcessNextElement?: boolean;
|
|
26
|
+
}): void;
|
|
27
|
+
settle(): void;
|
|
28
|
+
isSettled(): boolean;
|
|
29
|
+
close(): void;
|
|
30
|
+
getElementAt(position: number): TQueueElement<TElementPayload>;
|
|
31
|
+
getState(): TQueueStatus;
|
|
32
|
+
getTotalEvent(): number;
|
|
33
|
+
getProcessingEvents(): Set<TQueueElement<TElementPayload>>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @deprecated Renamed to {@link SequentialQueueHelper}. This alias is kept for backward compatibility
|
|
37
|
+
* and may be removed in a future major version — prefer `SequentialQueueHelper`.
|
|
38
|
+
*/
|
|
39
|
+
export { SequentialQueueHelper as QueueHelper };
|
|
40
|
+
//# sourceMappingURL=helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../../../src/modules/queue/internal/sequential/helper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAiB,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAErF,qBAAa,qBAAqB,CAAC,eAAe,CAAE,SAAQ,UAAU;IAC7D,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;IACtD,SAAS,CAAC,gBAAgB,EAAE,GAAG,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;IAChE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IAE/B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,YAAY,EAAE,OAAO,CAAQ;IACvC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAyB;IACtD,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAErC,OAAO,CAAC,SAAS,CAAC,CAGS;IAE3B,OAAO,CAAC,aAAa,CAAC,CAGK;IAE3B,OAAO,CAAC,aAAa,CAAC,CAGK;IAE3B,OAAO,CAAC,aAAa,CAAC,CAIK;gBAEf,IAAI,EAAE,cAAc,CAAC,eAAe,CAAC,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE;cAsB1D,aAAa;IAkD7B,OAAO,CAAE,gBAAgB;IAazB,WAAW;IAcL,OAAO,CAAC,OAAO,EAAE,eAAe;IA8BtC,OAAO;IAUP,IAAI;IAiBJ,MAAM,CAAC,IAAI,EAAE;QAAE,wBAAwB,CAAC,EAAE,OAAO,CAAA;KAAE;IAyBnD,MAAM;IAUN,SAAS;IAIT,KAAK;IAQL,YAAY,CAAC,QAAQ,EAAE,MAAM;IAI7B,QAAQ;IAIR,aAAa;IAIb,mBAAmB;CAGpB;AAED;;;GAGG;AACH,OAAO,EAAE,qBAAqB,IAAI,WAAW,EAAE,CAAC"}
|
|
@@ -3,32 +3,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.QueueHelper = exports.
|
|
7
|
-
const base_1 = require("
|
|
6
|
+
exports.QueueHelper = exports.SequentialQueueHelper = void 0;
|
|
7
|
+
const base_1 = require("../../../../modules/base");
|
|
8
8
|
const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
static { this.PROCESSING = '100_PROCESSING'; }
|
|
12
|
-
static { this.LOCKED = '200_LOCKED'; }
|
|
13
|
-
static { this.SETTLED = '300_SETTLED'; }
|
|
14
|
-
static { this.SCHEME_SET = new Set([this.WAITING, this.PROCESSING, this.LOCKED, this.SETTLED]); }
|
|
15
|
-
static isValid(scheme) {
|
|
16
|
-
return this.SCHEME_SET.has(scheme);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
exports.QueueStatuses = QueueStatuses;
|
|
20
|
-
class QueueHelper extends base_1.BaseHelper {
|
|
9
|
+
const types_1 = require("./types");
|
|
10
|
+
class SequentialQueueHelper extends base_1.BaseHelper {
|
|
21
11
|
constructor(opts) {
|
|
22
|
-
super({
|
|
12
|
+
super({
|
|
13
|
+
scope: `${SequentialQueueHelper.name}_${opts.identifier}`,
|
|
14
|
+
identifier: opts.identifier,
|
|
15
|
+
});
|
|
23
16
|
this.autoDispatch = true;
|
|
24
|
-
this.state = QueueStatuses.WAITING;
|
|
17
|
+
this.state = types_1.QueueStatuses.WAITING;
|
|
25
18
|
this.identifier = opts.identifier;
|
|
26
19
|
this.storage = [];
|
|
27
20
|
this.processingEvents = new Set([]);
|
|
28
21
|
this.generator = this._messageListener();
|
|
29
22
|
this.totalEvent = 0;
|
|
30
23
|
this.autoDispatch = opts.autoDispatch ?? true;
|
|
31
|
-
this.state = QueueStatuses.WAITING;
|
|
24
|
+
this.state = types_1.QueueStatuses.WAITING;
|
|
32
25
|
this.isSettleRequested = false;
|
|
33
26
|
this.onMessage = opts.onMessage;
|
|
34
27
|
this.onDataEnqueue = opts.onDataEnqueue;
|
|
@@ -48,9 +41,9 @@ class QueueHelper extends base_1.BaseHelper {
|
|
|
48
41
|
this.logger.for('handle').info('Skip LOCKED message | Payload: %j', payload);
|
|
49
42
|
return;
|
|
50
43
|
}
|
|
51
|
-
if (this.state !== QueueStatuses.LOCKED && this.state !== QueueStatuses.SETTLED) {
|
|
44
|
+
if (this.state !== types_1.QueueStatuses.LOCKED && this.state !== types_1.QueueStatuses.SETTLED) {
|
|
52
45
|
const snap = this.state;
|
|
53
|
-
this.state = QueueStatuses.PROCESSING;
|
|
46
|
+
this.state = types_1.QueueStatuses.PROCESSING;
|
|
54
47
|
await this.onStateChange?.({ identifier: this.identifier, from: snap, to: this.state });
|
|
55
48
|
}
|
|
56
49
|
this.getElementAt(0).isLocked = true;
|
|
@@ -60,15 +53,15 @@ class QueueHelper extends base_1.BaseHelper {
|
|
|
60
53
|
if (doneElement) {
|
|
61
54
|
this.processingEvents.delete(doneElement);
|
|
62
55
|
}
|
|
63
|
-
if (this.state !== QueueStatuses.LOCKED && this.state !== QueueStatuses.SETTLED) {
|
|
56
|
+
if (this.state !== types_1.QueueStatuses.LOCKED && this.state !== types_1.QueueStatuses.SETTLED) {
|
|
64
57
|
const snap = this.state;
|
|
65
|
-
this.state = QueueStatuses.WAITING;
|
|
58
|
+
this.state = types_1.QueueStatuses.WAITING;
|
|
66
59
|
await this.onStateChange?.({ identifier: this.identifier, from: snap, to: this.state });
|
|
67
60
|
}
|
|
68
61
|
if (!this.storage.length) {
|
|
69
62
|
if (this.isSettleRequested) {
|
|
70
63
|
const snap = this.state;
|
|
71
|
-
this.state = QueueStatuses.SETTLED;
|
|
64
|
+
this.state = types_1.QueueStatuses.SETTLED;
|
|
72
65
|
await this.onStateChange?.({ identifier: this.identifier, from: snap, to: this.state });
|
|
73
66
|
}
|
|
74
67
|
return;
|
|
@@ -87,7 +80,7 @@ class QueueHelper extends base_1.BaseHelper {
|
|
|
87
80
|
}
|
|
88
81
|
}
|
|
89
82
|
nextMessage() {
|
|
90
|
-
if (this.state !== QueueStatuses.WAITING) {
|
|
83
|
+
if (this.state !== types_1.QueueStatuses.WAITING) {
|
|
91
84
|
this.logger
|
|
92
85
|
.for(this.nextMessage.name)
|
|
93
86
|
.warn('SKIP request next message | Invalid queue state to request next message | currentState: %s', this.state);
|
|
@@ -96,7 +89,7 @@ class QueueHelper extends base_1.BaseHelper {
|
|
|
96
89
|
this.generator.next();
|
|
97
90
|
}
|
|
98
91
|
async enqueue(payload) {
|
|
99
|
-
if (this.isSettleRequested || this.state === QueueStatuses.SETTLED) {
|
|
92
|
+
if (this.isSettleRequested || this.state === types_1.QueueStatuses.SETTLED) {
|
|
100
93
|
this.logger
|
|
101
94
|
.for(this.enqueue.name)
|
|
102
95
|
.error('isSettled: %s | currentState: %s | Queue was SETTLED | No more element acceptable', this.isSettleRequested, this.state);
|
|
@@ -124,18 +117,18 @@ class QueueHelper extends base_1.BaseHelper {
|
|
|
124
117
|
return value;
|
|
125
118
|
}
|
|
126
119
|
lock() {
|
|
127
|
-
if (this.state >= QueueStatuses.LOCKED) {
|
|
120
|
+
if (this.state >= types_1.QueueStatuses.LOCKED) {
|
|
128
121
|
this.logger
|
|
129
122
|
.for(this.lock.name)
|
|
130
123
|
.error('isSettled | currentState: %s | Invalid queue state to request lock queue!', this.isSettleRequested, this.state);
|
|
131
124
|
return;
|
|
132
125
|
}
|
|
133
126
|
const snap = this.state;
|
|
134
|
-
this.state = QueueStatuses.LOCKED;
|
|
127
|
+
this.state = types_1.QueueStatuses.LOCKED;
|
|
135
128
|
this.onStateChange?.({ identifier: this.identifier, from: snap, to: this.state });
|
|
136
129
|
}
|
|
137
130
|
unlock(opts) {
|
|
138
|
-
if (this.state > QueueStatuses.LOCKED) {
|
|
131
|
+
if (this.state > types_1.QueueStatuses.LOCKED) {
|
|
139
132
|
this.logger
|
|
140
133
|
.for(this.unlock.name)
|
|
141
134
|
.error('isSettled | currentState: %s | Invalid queue state to request unlock queue!', this.isSettleRequested, this.state);
|
|
@@ -143,7 +136,7 @@ class QueueHelper extends base_1.BaseHelper {
|
|
|
143
136
|
}
|
|
144
137
|
const { shouldProcessNextElement = true } = opts;
|
|
145
138
|
const snap = this.state;
|
|
146
|
-
this.state = QueueStatuses.WAITING;
|
|
139
|
+
this.state = types_1.QueueStatuses.WAITING;
|
|
147
140
|
this.onStateChange?.({ identifier: this.identifier, from: snap, to: this.state });
|
|
148
141
|
if (!shouldProcessNextElement) {
|
|
149
142
|
return;
|
|
@@ -152,14 +145,14 @@ class QueueHelper extends base_1.BaseHelper {
|
|
|
152
145
|
}
|
|
153
146
|
settle() {
|
|
154
147
|
this.isSettleRequested = true;
|
|
155
|
-
if (this.state !== QueueStatuses.PROCESSING) {
|
|
148
|
+
if (this.state !== types_1.QueueStatuses.PROCESSING) {
|
|
156
149
|
const snap = this.state;
|
|
157
|
-
this.state = QueueStatuses.SETTLED;
|
|
150
|
+
this.state = types_1.QueueStatuses.SETTLED;
|
|
158
151
|
this.onStateChange?.({ identifier: this.identifier, from: snap, to: this.state });
|
|
159
152
|
}
|
|
160
153
|
}
|
|
161
154
|
isSettled() {
|
|
162
|
-
return this.state === QueueStatuses.SETTLED && !this.storage.length;
|
|
155
|
+
return this.state === types_1.QueueStatuses.SETTLED && !this.storage.length;
|
|
163
156
|
}
|
|
164
157
|
close() {
|
|
165
158
|
this.settle();
|
|
@@ -181,5 +174,6 @@ class QueueHelper extends base_1.BaseHelper {
|
|
|
181
174
|
return this.processingEvents;
|
|
182
175
|
}
|
|
183
176
|
}
|
|
184
|
-
exports.
|
|
177
|
+
exports.SequentialQueueHelper = SequentialQueueHelper;
|
|
178
|
+
exports.QueueHelper = SequentialQueueHelper;
|
|
185
179
|
//# sourceMappingURL=helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../../../src/modules/queue/internal/sequential/helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/queue/internal/sequential/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./helper"), exports);
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/queue/internal/sequential/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ValueOf, ValueOrPromise } from '../../../../common/types';
|
|
2
|
+
export declare class QueueStatuses {
|
|
3
|
+
static readonly WAITING = "000_WAITING";
|
|
4
|
+
static readonly PROCESSING = "100_PROCESSING";
|
|
5
|
+
static readonly LOCKED = "200_LOCKED";
|
|
6
|
+
static readonly SETTLED = "300_SETTLED";
|
|
7
|
+
static readonly SCHEME_SET: Set<string>;
|
|
8
|
+
static isValid(scheme: string): boolean;
|
|
9
|
+
}
|
|
10
|
+
export type TQueueStatus = ValueOf<Omit<typeof QueueStatuses, 'isValid' | 'SCHEME_SET'>>;
|
|
11
|
+
export type TQueueElement<T> = {
|
|
12
|
+
isLocked: boolean;
|
|
13
|
+
payload: T;
|
|
14
|
+
};
|
|
15
|
+
export interface IQueueCallback<TElementPayload> {
|
|
16
|
+
autoDispatch?: boolean;
|
|
17
|
+
onMessage?: (opts: {
|
|
18
|
+
identifier: string;
|
|
19
|
+
queueElement: TQueueElement<TElementPayload>;
|
|
20
|
+
}) => ValueOrPromise<void>;
|
|
21
|
+
onDataEnqueue?: (opts: {
|
|
22
|
+
identifier: string;
|
|
23
|
+
queueElement: TQueueElement<TElementPayload>;
|
|
24
|
+
}) => ValueOrPromise<void>;
|
|
25
|
+
onDataDequeue?: (opts: {
|
|
26
|
+
identifier: string;
|
|
27
|
+
queueElement: TQueueElement<TElementPayload>;
|
|
28
|
+
}) => ValueOrPromise<void>;
|
|
29
|
+
onStateChange?: (opts: {
|
|
30
|
+
identifier: string;
|
|
31
|
+
from: TQueueStatus;
|
|
32
|
+
to: TQueueStatus;
|
|
33
|
+
}) => ValueOrPromise<void>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/modules/queue/internal/sequential/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEzD,qBAAa,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,OAAO,iBAAiB;IACxC,MAAM,CAAC,QAAQ,CAAC,UAAU,oBAAoB;IAC9C,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB;IACtC,MAAM,CAAC,QAAQ,CAAC,OAAO,iBAAiB;IAExC,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAuE;IAEjG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CAGxC;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC;AACzF,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC;AAEjE,MAAM,WAAW,cAAc,CAAC,eAAe;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;KAC9C,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;KAC9C,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;KAC9C,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,YAAY,CAAC;QACnB,EAAE,EAAE,YAAY,CAAC;KAClB,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC;CAC5B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QueueStatuses = void 0;
|
|
4
|
+
class QueueStatuses {
|
|
5
|
+
static { this.WAITING = '000_WAITING'; }
|
|
6
|
+
static { this.PROCESSING = '100_PROCESSING'; }
|
|
7
|
+
static { this.LOCKED = '200_LOCKED'; }
|
|
8
|
+
static { this.SETTLED = '300_SETTLED'; }
|
|
9
|
+
static { this.SCHEME_SET = new Set([this.WAITING, this.PROCESSING, this.LOCKED, this.SETTLED]); }
|
|
10
|
+
static isValid(scheme) {
|
|
11
|
+
return this.SCHEME_SET.has(scheme);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.QueueStatuses = QueueStatuses;
|
|
15
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/modules/queue/internal/sequential/types.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;aACR,YAAO,GAAG,aAAa,CAAC;aACxB,eAAU,GAAG,gBAAgB,CAAC;aAC9B,WAAM,GAAG,YAAY,CAAC;aACtB,YAAO,GAAG,aAAa,CAAC;aAExB,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjG,MAAM,CAAC,OAAO,CAAC,MAAc;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;;AAVH,sCAWC"}
|
|
@@ -19,7 +19,7 @@ export interface IKafkaBaseOptions<TClient extends Base<BaseOptions>> {
|
|
|
19
19
|
* through `this.client`. Broker events are wired automatically in the constructor.
|
|
20
20
|
*/
|
|
21
21
|
export declare abstract class BaseKafkaHelper<TClient extends Base<BaseOptions>> extends BaseHelper {
|
|
22
|
-
protected
|
|
22
|
+
protected client: TClient;
|
|
23
23
|
protected readonly shutdownTimeout: number;
|
|
24
24
|
protected healthStatus: TKafkaHealthStatus;
|
|
25
25
|
/** Per-broker connection state. Key = "host:port" */
|
|
@@ -35,6 +35,8 @@ export declare abstract class BaseKafkaHelper<TClient extends Base<BaseOptions>>
|
|
|
35
35
|
protected configureBrokerDisconnect(): void;
|
|
36
36
|
protected configureBrokerFailed(): void;
|
|
37
37
|
protected configureBrokerEvents(): void;
|
|
38
|
+
protected unconfigureBrokerEvents(): void;
|
|
39
|
+
protected swapClient(newClient: TClient): void;
|
|
38
40
|
protected resetHealthState(): void;
|
|
39
41
|
protected closeClient(): Promise<void>;
|
|
40
42
|
protected gracefulCloseClient(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/modules/queue/kafka/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAA8B,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,IAAI,CAAC,WAAW,CAAC;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;CAChD;AAED;;;;;;;GAOG;AACH,8BAAsB,eAAe,CAAC,OAAO,SAAS,IAAI,CAAC,WAAW,CAAC,CAAE,SAAQ,UAAU;IACzF,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/modules/queue/kafka/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAA8B,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,IAAI,CAAC,WAAW,CAAC;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;CAChD;AAED;;;;;;;GAOG;AACH,8BAAsB,eAAe,CAAC,OAAO,SAAS,IAAI,CAAC,WAAW,CAAC,CAAE,SAAQ,UAAU;IACzF,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAE3C,SAAS,CAAC,YAAY,EAAE,kBAAkB,CAA+B;IAEzE,qDAAqD;IACrD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IAEtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAA4B;IAC7D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAA4B;gBAEpD,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAQ5C,SAAS,IAAI,OAAO;IAIpB,OAAO,IAAI,OAAO;IAIlB,eAAe,IAAI,kBAAkB;IAIrC,uBAAuB,IAAI,MAAM;IAIjC,SAAS,CAAC,sBAAsB;IAehC,SAAS,CAAC,yBAAyB;IAmBnC,SAAS,CAAC,qBAAqB;IAkB/B,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAMvC,SAAS,CAAC,uBAAuB,IAAI,IAAI;IAMzC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAO9C,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAKlC,SAAS,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC,SAAS,CAAC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ/C"}
|
|
@@ -69,6 +69,17 @@ class BaseKafkaHelper extends ignis_helpers_1.BaseHelper {
|
|
|
69
69
|
this.configureBrokerDisconnect();
|
|
70
70
|
this.configureBrokerFailed();
|
|
71
71
|
}
|
|
72
|
+
unconfigureBrokerEvents() {
|
|
73
|
+
this.client.removeAllListeners(constants_1.KafkaClientEvents.BROKER_CONNECT);
|
|
74
|
+
this.client.removeAllListeners(constants_1.KafkaClientEvents.BROKER_DISCONNECT);
|
|
75
|
+
this.client.removeAllListeners(constants_1.KafkaClientEvents.BROKER_FAILED);
|
|
76
|
+
}
|
|
77
|
+
swapClient(newClient) {
|
|
78
|
+
this.unconfigureBrokerEvents();
|
|
79
|
+
this.client = newClient;
|
|
80
|
+
this.resetHealthState();
|
|
81
|
+
this.configureBrokerEvents();
|
|
82
|
+
}
|
|
72
83
|
resetHealthState() {
|
|
73
84
|
this.connectedBrokers.clear();
|
|
74
85
|
this.healthStatus = constants_1.KafkaHealthStatuses.DISCONNECTED;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/modules/queue/kafka/base.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/modules/queue/kafka/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,8 @@ export declare class KafkaConsumerHelper<KeyType = string, ValueType = string, H
|
|
|
36
36
|
private consumeLoop;
|
|
37
37
|
private consumeStartOptions;
|
|
38
38
|
private lagMonitoringActive;
|
|
39
|
+
private lagMonitoringOptions;
|
|
40
|
+
private sessionLikelyStale;
|
|
39
41
|
private readonly onMessage?;
|
|
40
42
|
private readonly onMessageDone?;
|
|
41
43
|
private readonly onMessageError?;
|
|
@@ -45,8 +47,10 @@ export declare class KafkaConsumerHelper<KeyType = string, ValueType = string, H
|
|
|
45
47
|
private readonly onHeartbeatError?;
|
|
46
48
|
private readonly onLag?;
|
|
47
49
|
private readonly onLagError?;
|
|
50
|
+
private readonly initialOptions;
|
|
48
51
|
constructor(opts: IKafkaConsumerOptions<KeyType, ValueType, HeaderKeyType, HeaderValueType>);
|
|
49
52
|
static newInstance<KeyType = string, ValueType = string, HeaderKeyType = string, HeaderValueType = string>(opts: IKafkaConsumerOptions<KeyType, ValueType, HeaderKeyType, HeaderValueType>): KafkaConsumerHelper<KeyType, ValueType, HeaderKeyType, HeaderValueType>;
|
|
53
|
+
private static buildConsumerClient;
|
|
50
54
|
getConsumer(): Consumer<KeyType, ValueType, HeaderKeyType, HeaderValueType>;
|
|
51
55
|
getStream(): MessagesStream<KeyType, ValueType, HeaderKeyType, HeaderValueType> | null;
|
|
52
56
|
isReady(): boolean;
|
|
@@ -64,8 +68,12 @@ export declare class KafkaConsumerHelper<KeyType = string, ValueType = string, H
|
|
|
64
68
|
private consumeMessages;
|
|
65
69
|
private drainStream;
|
|
66
70
|
private attemptReconnect;
|
|
71
|
+
private rebuildClient;
|
|
72
|
+
private closeOldClient;
|
|
73
|
+
private handleAllBrokersDown;
|
|
67
74
|
private destroyDeadStream;
|
|
68
75
|
private closeStream;
|
|
76
|
+
protected unconfigureBrokerEvents(): void;
|
|
69
77
|
protected configureBrokerEvents(): void;
|
|
70
78
|
}
|
|
71
79
|
//# sourceMappingURL=consumer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consumer.d.ts","sourceRoot":"","sources":["../../../../src/modules/queue/kafka/consumer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"consumer.d.ts","sourceRoot":"","sources":["../../../../src/modules/queue/kafka/consumer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAKV,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,OAAO,KAAK,EACV,yBAAyB,EACzB,qBAAqB,EAUtB,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,mBAAmB,CAC9B,OAAO,GAAG,MAAM,EAChB,SAAS,GAAG,MAAM,EAClB,aAAa,GAAG,MAAM,EACtB,eAAe,GAAG,MAAM,CACxB,SAAQ,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IACrF,OAAO,CAAC,MAAM,CAAmF;IACjG,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,mBAAmB,CAA0C;IACrE,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,oBAAoB,CAAwD;IACpF,OAAO,CAAC,kBAAkB,CAAS;IAGnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAKzB;IACF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAK7B;IACF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAK9B;IAGF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAA0B;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAA2B;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAA+B;IACjE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAA+B;IAGjE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAyB;IAErD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAK7B;gBAEU,IAAI,EAAE,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,CAAC;IA+B3F,MAAM,CAAC,WAAW,CAChB,OAAO,GAAG,MAAM,EAChB,SAAS,GAAG,MAAM,EAClB,aAAa,GAAG,MAAM,EACtB,eAAe,GAAG,MAAM,EACxB,IAAI,EAAE,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,CAAC;IAIjF,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAoClC,WAAW,IAAI,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,CAAC;IAI3E,SAAS,IAAI,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,CAAC,GAAG,IAAI;IAI7E,OAAO,IAAI,OAAO;IAIrB,KAAK,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC3D,kBAAkB,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAoBvE,iBAAiB,IAAI,IAAI;cAYN,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAYzC,KAAK,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAqB1C,gBAAgB;YA0Bf,eAAe;YAgDf,WAAW;YAwBZ,gBAAgB;YAoFhB,aAAa;YAoCb,cAAc;IA0B5B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,iBAAiB;YAKX,WAAW;cAeN,uBAAuB,IAAI,IAAI;cAU/B,qBAAqB,IAAI,IAAI;CAyEjD"}
|