aspect-sync 0.1.11 → 0.1.13

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"batchManager.js","sourceRoot":"","sources":["../src/batchManager.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- declare class CliDisplay {
2
- #private;
3
- start(): void;
4
- stop(): void;
5
- persistCurrentBatchLine(): void;
6
- }
7
- export declare const cliDisplay: CliDisplay;
8
- export {};
9
- //# sourceMappingURL=cliDisplay.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cliDisplay.d.ts","sourceRoot":"","sources":["../src/cliDisplay.ts"],"names":[],"mappings":"AAMA,cAAM,UAAU;;IAUd,KAAK,IAAI,IAAI;IAwBb,IAAI,IAAI,IAAI;IAoBZ,uBAAuB,IAAI,IAAI;CA4ThC;AAED,eAAO,MAAM,UAAU,YAAmB,CAAA"}
@@ -1,302 +0,0 @@
1
- import logUpdate from "log-update";
2
- import chalk from "chalk";
3
- import { statusTracker } from "./statusTracker.js";
4
- import { UploadStatus, BatchPhase } from "./types.js";
5
- import { formatBytes, formatSpeed, formatTimeRemaining } from "./util.js";
6
- class CliDisplay {
7
- #completedLines = [];
8
- #completedFileIds = new Set();
9
- #updateInterval = null;
10
- #statsInterval = null;
11
- #isRunning = false;
12
- #completedBatches = new Map(); // batchNumber -> completed line
13
- #lastDownloadEtaText = null;
14
- #lastUploadEtaText = null;
15
- start() {
16
- if (this.#isRunning)
17
- return;
18
- this.#isRunning = true;
19
- this.#completedLines = [];
20
- this.#completedFileIds = new Set();
21
- this.#completedBatches.clear();
22
- // Update display every 500ms for smooth progress bars
23
- // this.#updateInterval = setInterval(() => {
24
- // }, 500)
25
- // Update stats every 1 second for stable speed/time calculations
26
- this.#statsInterval = setInterval(() => {
27
- statusTracker.updateUploadStats();
28
- this.#render();
29
- }, 1000);
30
- // Calculate stats immediately on start
31
- statusTracker.updateUploadStats();
32
- this.#lastDownloadEtaText = null;
33
- this.#lastUploadEtaText = null;
34
- }
35
- stop() {
36
- if (!this.#isRunning)
37
- return;
38
- this.#isRunning = false;
39
- if (this.#updateInterval) {
40
- clearInterval(this.#updateInterval);
41
- this.#updateInterval = null;
42
- }
43
- if (this.#statsInterval) {
44
- clearInterval(this.#statsInterval);
45
- this.#statsInterval = null;
46
- }
47
- // Update stats one final time for accurate final display
48
- statusTracker.updateUploadStats();
49
- this.#render();
50
- logUpdate.done();
51
- }
52
- persistCurrentBatchLine() {
53
- if (!this.#isRunning)
54
- return;
55
- const batchProgress = statusTracker.getBatchProgress();
56
- if (!batchProgress || batchProgress.currentPhase !== BatchPhase.COMPLETE) {
57
- return;
58
- }
59
- const downloadProgress = statusTracker.getDownloadProgress();
60
- const totals = statusTracker.getUploadTotals();
61
- const stats = statusTracker.uploadStats;
62
- const completedLine = this.#formatBatchLine(batchProgress, downloadProgress, totals, stats);
63
- this.#completedBatches.set(batchProgress.currentBatch, completedLine);
64
- }
65
- #render() {
66
- const batchProgress = statusTracker.getBatchProgress();
67
- const downloadProgress = statusTracker.getDownloadProgress();
68
- // Batch mode rendering
69
- if (batchProgress) {
70
- this.#renderBatchMode(batchProgress, downloadProgress);
71
- return;
72
- }
73
- // Original non-batch mode rendering
74
- const inProgressFiles = statusTracker.getInProgressFiles();
75
- const allFiles = statusTracker.getAllUploadFiles();
76
- const totals = statusTracker.getUploadTotals();
77
- // Check for newly completed/failed/skipped files since last render
78
- for (const file of allFiles) {
79
- if ((file.uploadStatus === UploadStatus.SUCCESS ||
80
- file.uploadStatus === UploadStatus.FAILED ||
81
- file.uploadStatus === UploadStatus.SKIPPED) &&
82
- !this.#completedFileIds.has(file.fileId)) {
83
- this.#addCompletedLine(file);
84
- this.#completedFileIds.add(file.fileId);
85
- }
86
- }
87
- // Build the output
88
- const lines = [];
89
- // Add all completed lines (these are frozen)
90
- lines.push(...this.#completedLines);
91
- // COMMENTED OUT: Per-file progress display (can be re-enabled if needed)
92
- // Add in-progress files (these update dynamically)
93
- // for (const file of inProgressFiles) {
94
- // lines.push(this.#formatInProgressFile(file))
95
- // }
96
- // Add summary lines
97
- lines.push("");
98
- lines.push(this.#formatSummary(totals));
99
- lines.push(this.#formatByteStats(totals));
100
- // Update the display
101
- logUpdate(lines.join("\n"));
102
- }
103
- #addCompletedLine(file) {
104
- if (file.uploadStatus === UploadStatus.SUCCESS) {
105
- this.#completedLines.push(`${chalk.green("✓")} ${file.relativePath} ${chalk.green("(100%)")}`);
106
- }
107
- else if (file.uploadStatus === UploadStatus.FAILED) {
108
- this.#completedLines.push(`${chalk.red("✗")} ${file.relativePath} ${chalk.red(`(Failed: ${file.errorMessage || "Unknown error"})`)}`);
109
- }
110
- else if (file.uploadStatus === UploadStatus.SKIPPED) {
111
- this.#completedLines.push(`${chalk.yellow("⊘")} ${file.relativePath} ${chalk.yellow("(Skipped - already exists)")}`);
112
- }
113
- }
114
- #formatInProgressFile(file) {
115
- const percentage = file.totalBytesToUpload > 0
116
- ? Math.floor((file.bytesUploaded / file.totalBytesToUpload) * 100)
117
- : 0;
118
- const bytesUploadedFormatted = formatBytes(file.bytesUploaded);
119
- const totalBytesFormatted = formatBytes(file.totalBytesToUpload);
120
- return `${chalk.blue("↑")} ${file.relativePath} ${chalk.blue(`(${bytesUploadedFormatted} / ${totalBytesFormatted} - ${percentage}%)`)}`;
121
- }
122
- #formatSummary(totals) {
123
- const parts = [
124
- `Total: ${totals.totalFileCount}`,
125
- chalk.green(`Success: ${totals.successFileCount}`),
126
- chalk.red(`Failed: ${totals.failedFileCount}`),
127
- chalk.yellow(`Skipped: ${totals.skippedFileCount}`),
128
- chalk.blue(`In Progress: ${totals.inProgressFileCount}`),
129
- chalk.gray(`Queued: ${totals.queuedFileCount}`),
130
- ];
131
- return parts.join(" | ");
132
- }
133
- #formatByteStats(totals) {
134
- // Stats are updated by the 1-second interval, just read cached values
135
- const stats = statusTracker.uploadStats;
136
- const totalBytesFormatted = formatBytes(totals.totalBytesToUpload);
137
- const uploadedBytesFormatted = formatBytes(totals.totalBytesUploaded);
138
- const remainingBytes = totals.totalBytesToUpload - totals.totalBytesUploaded;
139
- const remainingBytesFormatted = formatBytes(remainingBytes);
140
- const parts = [
141
- `Total: ${totalBytesFormatted}`,
142
- chalk.green(`Uploaded: ${uploadedBytesFormatted}`),
143
- chalk.yellow(`Remaining: ${remainingBytesFormatted}`),
144
- ];
145
- const statsLine = stats.uploadSpeedBps !== null && stats.timeRemainingSeconds !== null ? [
146
- chalk.cyan(`Speed: ${stats.formattedSpeed}`),
147
- chalk.magenta(`Time remaining: ${stats.formattedTime}`),
148
- ] : [];
149
- return `${parts.join(" | ")}${statsLine.length > 0 ? ` | ${statsLine.join(" | ")}` : ""}`;
150
- }
151
- #renderBatchMode(batchProgress, downloadProgress) {
152
- const lines = [];
153
- const totals = statusTracker.getUploadTotals();
154
- const stats = statusTracker.uploadStats;
155
- // Add all completed batch lines (frozen)
156
- for (let i = 1; i < batchProgress.currentBatch; i++) {
157
- if (this.#completedBatches.has(i)) {
158
- lines.push(this.#completedBatches.get(i));
159
- }
160
- }
161
- // Current batch line (dynamic)
162
- const currentBatchLine = this.#formatBatchLine(batchProgress, downloadProgress, totals, stats);
163
- lines.push(currentBatchLine);
164
- // If batch is complete, save it to completed batches
165
- if (batchProgress.currentPhase === BatchPhase.COMPLETE) {
166
- this.#completedBatches.set(batchProgress.currentBatch, currentBatchLine);
167
- }
168
- // Overall totals line (always at the bottom)
169
- const overallFilesCompleted = batchProgress.overallFilesCompleted + (totals.successFileCount + totals.skippedFileCount);
170
- const overallBytesTransferred = batchProgress.overallBytesTransferred + totals.totalBytesUploaded;
171
- const overallBytesRemaining = batchProgress.overallBytesTotal - overallBytesTransferred;
172
- const completedDownloadBytes = batchProgress.overallBytesTransferred + (downloadProgress ? downloadProgress.bytesTransferred : 0);
173
- const downloadBytesRemaining = Math.max(batchProgress.overallBytesTotal - completedDownloadBytes, 0);
174
- let downloadEtaSeconds = null;
175
- if (downloadBytesRemaining === 0) {
176
- downloadEtaSeconds = 0;
177
- }
178
- else if (downloadProgress && downloadProgress.speed > 0) {
179
- downloadEtaSeconds = Math.ceil(downloadBytesRemaining / downloadProgress.speed);
180
- }
181
- let downloadEtaText;
182
- if (downloadEtaSeconds !== null) {
183
- downloadEtaText = `Download ETA: ${formatTimeRemaining(downloadEtaSeconds) || "..."}`;
184
- this.#lastDownloadEtaText = downloadEtaText;
185
- }
186
- else {
187
- downloadEtaText = this.#lastDownloadEtaText ?? "Download ETA: ...";
188
- }
189
- const uploadBytesCompleted = batchProgress.overallBytesTransferred + totals.totalBytesUploaded;
190
- const uploadBytesRemaining = Math.max(batchProgress.overallBytesTotal - uploadBytesCompleted, 0);
191
- let uploadEtaSeconds = null;
192
- if (uploadBytesRemaining === 0) {
193
- uploadEtaSeconds = 0;
194
- }
195
- else if (stats.uploadSpeedBps !== null && stats.uploadSpeedBps > 0) {
196
- uploadEtaSeconds = Math.ceil(uploadBytesRemaining / stats.uploadSpeedBps);
197
- }
198
- let uploadEtaText;
199
- if (uploadEtaSeconds !== null) {
200
- uploadEtaText = `Upload ETA: ${formatTimeRemaining(uploadEtaSeconds) || "..."}`;
201
- this.#lastUploadEtaText = uploadEtaText;
202
- }
203
- else {
204
- uploadEtaText = this.#lastUploadEtaText ?? "Upload ETA: ...";
205
- }
206
- let totalEtaText;
207
- if (downloadEtaSeconds !== null && uploadEtaSeconds !== null) {
208
- const totalSeconds = downloadEtaSeconds + uploadEtaSeconds;
209
- totalEtaText = `Total ETA: ${formatTimeRemaining(totalSeconds) || "..."}`;
210
- }
211
- else {
212
- const lastDownloadSeconds = this.#extractSecondsFromEtaText(this.#lastDownloadEtaText);
213
- const lastUploadSeconds = this.#extractSecondsFromEtaText(this.#lastUploadEtaText);
214
- if (lastDownloadSeconds !== null && lastUploadSeconds !== null) {
215
- totalEtaText = `Total ETA: ${formatTimeRemaining(lastDownloadSeconds + lastUploadSeconds) || "..."}`;
216
- }
217
- else {
218
- totalEtaText = "Total ETA: ...";
219
- }
220
- }
221
- const totalParts = [
222
- `${overallFilesCompleted}/${batchProgress.overallFilesTotal} files`,
223
- `${formatBytes(overallBytesTransferred)} / ${formatBytes(batchProgress.overallBytesTotal)}`,
224
- chalk.yellow(`${formatBytes(overallBytesRemaining)} remaining`),
225
- downloadEtaText,
226
- uploadEtaText,
227
- totalEtaText,
228
- ];
229
- lines.push(`Total: ${totalParts.join(", ")}`);
230
- // Update the display
231
- logUpdate(lines.join("\n"));
232
- }
233
- #formatBatchLine(batchProgress, downloadProgress, totals, stats) {
234
- const phase = batchProgress.currentPhase;
235
- const batchNum = `Batch ${batchProgress.currentBatch}/${batchProgress.totalBatches}`;
236
- switch (phase) {
237
- case BatchPhase.DOWNLOADING:
238
- if (downloadProgress) {
239
- const dlPercent = downloadProgress.percentComplete.toFixed(1);
240
- const dlSpeed = formatSpeed(downloadProgress.speed) || "...";
241
- const dlEta = formatTimeRemaining(downloadProgress.eta);
242
- return `${batchNum}: ${chalk.blue("↓ Downloading")} (${formatBytes(downloadProgress.bytesTransferred)} / ${formatBytes(downloadProgress.totalBytes)}, ${dlPercent}%, ${dlSpeed}, ETA: ${dlEta})`;
243
- }
244
- return `${batchNum}: ${chalk.blue("↓ Downloading...")}`;
245
- case BatchPhase.SCANNING:
246
- return `${batchNum}: ${chalk.yellow("Scanning...")}`;
247
- case BatchPhase.SYNCING_FOLDERS:
248
- return `${batchNum}: ${chalk.yellow("Syncing folders...")}`;
249
- case BatchPhase.UPLOADING:
250
- const uploadedFiles = totals.successFileCount + totals.failedFileCount + totals.skippedFileCount;
251
- const uploadedBytes = totals.totalBytesUploaded;
252
- const uploadPercent = batchProgress.batchBytesTotal > 0
253
- ? ((uploadedBytes / batchProgress.batchBytesTotal) * 100).toFixed(1)
254
- : "0.0";
255
- let uploadLine = `${batchNum}: ${chalk.blue("↑ Uploading")} (${uploadedFiles}/${batchProgress.batchFilesTotal} files, ${formatBytes(uploadedBytes)} / ${formatBytes(batchProgress.batchBytesTotal)}, ${uploadPercent}%`;
256
- // Add speed and ETA if available
257
- if (stats.uploadSpeedBps !== null && stats.timeRemainingSeconds !== null) {
258
- uploadLine += `, ${stats.formattedSpeed}, ETA: ${stats.formattedTime}`;
259
- }
260
- uploadLine += ")";
261
- return uploadLine;
262
- case BatchPhase.CLEANING:
263
- return `${batchNum}: ${chalk.yellow("Cleaning...")}`;
264
- case BatchPhase.COMPLETE:
265
- const batchSize = formatBytes(batchProgress.batchBytesTotal);
266
- return `${batchNum}: ${chalk.green("✓ Complete")} (${batchProgress.batchFilesTotal} files, ${batchSize}${batchProgress.extraDetails ? `, ${batchProgress.extraDetails}` : ""})`;
267
- default:
268
- return `${batchNum}: ${chalk.gray("Processing...")}`;
269
- }
270
- }
271
- #extractSecondsFromEtaText(etaText) {
272
- if (!etaText) {
273
- return null;
274
- }
275
- const match = etaText.match(/(\d+)h/) || etaText.match(/(\d+)m/) || etaText.match(/(\d+)s/);
276
- if (!match) {
277
- return null;
278
- }
279
- let remainingText = etaText.replace("Download ETA:", "").replace("Upload ETA:", "").replace("Total ETA:", "").trim();
280
- if (remainingText === "Calculating...") {
281
- return null;
282
- }
283
- let totalSeconds = 0;
284
- const hourMatch = remainingText.match(/(\d+)h/);
285
- if (hourMatch) {
286
- totalSeconds += parseInt(hourMatch[1], 10) * 3600;
287
- remainingText = remainingText.replace(hourMatch[0], "");
288
- }
289
- const minuteMatch = remainingText.match(/(\d+)m/);
290
- if (minuteMatch) {
291
- totalSeconds += parseInt(minuteMatch[1], 10) * 60;
292
- remainingText = remainingText.replace(minuteMatch[0], "");
293
- }
294
- const secondMatch = remainingText.match(/(\d+)s/);
295
- if (secondMatch) {
296
- totalSeconds += parseInt(secondMatch[1], 10);
297
- }
298
- return totalSeconds > 0 ? totalSeconds : null;
299
- }
300
- }
301
- export const cliDisplay = new CliDisplay();
302
- //# sourceMappingURL=cliDisplay.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cliDisplay.js","sourceRoot":"","sources":["../src/cliDisplay.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,153 +0,0 @@
1
- /**
2
- * WeightedAsyncQueue - A concurrency queue that manages tasks with weighted costs
3
- *
4
- * ## Overview
5
- *
6
- * This queue allows you to enqueue tasks with different "weights" (point costs). The queue
7
- * has a maximum concurrency limit (e.g., 4 points), and tasks compete for these points.
8
- *
9
- * ## How It Works
10
- *
11
- * 1. **Starting tasks**: When you enqueue a task with a certain weight, it will start running
12
- * as soon as at least 1 point is available in the global pool. The task reserves its full
13
- * weight from the pool immediately upon starting.
14
- *
15
- * 2. **Managing concurrency within tasks**: Once a task starts, it can use the `acquire()`
16
- * method to control how many of its reserved points are actively being used at once. This
17
- * is useful for tasks that have multiple subtasks (like uploading file chunks) that need
18
- * to run with controlled concurrency.
19
- *
20
- * 3. **Releasing points**: When a subtask completes, call `release()` to free that point back
21
- * to the global pool. This makes it available for other tasks waiting in the queue, or for
22
- * other subtasks within the same task.
23
- *
24
- * 4. **Automatic cleanup**: If a task finishes without calling `release()` for all its points,
25
- * any unreleased points are automatically freed back to the global pool.
26
- *
27
- * 5. **Simple tasks**: For single-point tasks that don't need internal concurrency management,
28
- * you don't need to call `acquire()` or `release()` at all. Just do your work, and when
29
- * the task completes, its point will be automatically released.
30
- *
31
- * ## Example Usage
32
- *
33
- * ```typescript
34
- * const queue = new WeightedAsyncQueue({ maxConcurrency: 4 })
35
- *
36
- * // Simple single-point upload (no acquire/release needed)
37
- * queue.enqueue(1, async (controller) => {
38
- * await uploadFile(file)
39
- * // Point automatically released when task completes
40
- * })
41
- *
42
- * // Multi-part upload with 3 chunks (uses acquire/release)
43
- * queue.enqueue(3, async (controller) => {
44
- * for (const chunk of chunks) {
45
- * await controller.acquire() // Wait for a point to be available
46
- * uploadChunk(chunk).then(() => controller.release()) // Free the point when done
47
- * }
48
- * })
49
- * ```
50
- *
51
- * ## Key Benefits
52
- *
53
- * - Tasks with high weights can run subtasks with controlled concurrency
54
- * - Simple tasks don't need to worry about point management
55
- * - Automatic cleanup prevents point leaks when tasks error or are cancelled
56
- */
57
- export declare class WeightedTaskController {
58
- #private;
59
- constructor({ taskWeight, queue, releaseGlobalPoints, acquireGlobalConcurrentPoints, }: {
60
- taskWeight: number;
61
- queue: WeightedAsyncQueue;
62
- releaseGlobalPoints: (points: number) => void;
63
- acquireGlobalConcurrentPoints: (points: number) => void;
64
- });
65
- /**
66
- * Acquire points internally (doesn't affect global pool, just manages internal concurrency)
67
- * Blocks if would exceed task's weight.
68
- */
69
- acquire(): Promise<void>;
70
- /**
71
- * Release points internally
72
- */
73
- release(): void;
74
- /**
75
- * Process waiting internal requests
76
- */
77
- _processWaitingInternalRequests(): void;
78
- /**
79
- * Get task weight
80
- */
81
- getTaskWeight(): number;
82
- /**
83
- * Get unreleased points
84
- */
85
- getUnreleasedPoints(): number;
86
- /**
87
- * Get concurrent points
88
- */
89
- getConcurrentPoints(): number;
90
- }
91
- /**
92
- * Configuration options for the WeightedAsyncQueue
93
- */
94
- interface WeightedAsyncQueueOptions {
95
- /** Maximum total points of concurrent work allowed */
96
- maxConcurrency: number;
97
- /** Optional callback when a task completes successfully */
98
- onTaskComplete?: (taskId: string, result: unknown) => void;
99
- /** Optional callback when a task fails */
100
- onTaskError?: (taskId: string, error: unknown) => void;
101
- /** Optional callback when queue becomes empty */
102
- onQueueEmpty?: () => void;
103
- }
104
- /**
105
- * Statistics about the current weighted queue state
106
- */
107
- interface WeightedQueueStats {
108
- queuedTasks: number;
109
- runningTasks: number;
110
- allocatedPoints: number;
111
- concurrentPoints: number;
112
- availablePoints: number;
113
- totalProcessed: number;
114
- totalFailed: number;
115
- }
116
- /**
117
- * WeightedAsyncQueue manages concurrent execution of async tasks with weighted concurrency.
118
- *
119
- * Simple model:
120
- * - When a task starts, it reserves its full weight from the global pool
121
- * - When a task ends, it releases its full weight back to the global pool
122
- * - Tasks use acquire/release ONLY for internal concurrency management (doesn't affect global pool)
123
- */
124
- export declare class WeightedAsyncQueue {
125
- #private;
126
- constructor(options: WeightedAsyncQueueOptions);
127
- /**
128
- * Add a weighted task to the queue
129
- */
130
- enqueue<TResult>(weight: number, taskFunction: (controller: WeightedTaskController) => Promise<TResult>, taskId?: string): Promise<TResult>;
131
- /**
132
- * Get current queue statistics
133
- */
134
- getStats(): WeightedQueueStats;
135
- /**
136
- * Check if the queue is currently processing any tasks
137
- */
138
- isActive(): boolean;
139
- /**
140
- * Clear all pending tasks from the queue (does not stop running tasks)
141
- */
142
- clearPendingTasks(): number;
143
- /**
144
- * Cancel a task by its ID
145
- */
146
- cancelTask(taskId: string): void;
147
- /**
148
- * Destroy the queue and reject all pending tasks
149
- */
150
- destroy(): void;
151
- }
152
- export {};
153
- //# sourceMappingURL=weightedAsyncQueue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"weightedAsyncQueue.d.ts","sourceRoot":"","sources":["../../src/lib/weightedAsyncQueue.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,qBAAa,sBAAsB;;gBAWrB,EACV,UAAU,EACV,KAAK,EACL,mBAAmB,EACnB,6BAA6B,GAC9B,EAAE;QACD,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,kBAAkB,CAAA;QACzB,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;QAC7C,6BAA6B,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;KACxD;IAUD;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB9B;;OAEG;IACH,OAAO,IAAI,IAAI;IASf;;OAEG;IACH,+BAA+B,IAAI,IAAI;IAiBvC;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,mBAAmB,IAAI,MAAM;CAM9B;AAaD;;GAEG;AACH,UAAU,yBAAyB;IACjC,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAA;IACtB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IAC1D,0CAA0C;IAC1C,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACtD,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B;AAED;;GAEG;AACH,UAAU,kBAAkB;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;GAOG;AACH,qBAAa,kBAAkB;;gBAejB,OAAO,EAAE,yBAAyB;IAO9C;;OAEG;IACG,OAAO,CAAC,OAAO,EACnB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,CAAC,UAAU,EAAE,sBAAsB,KAAK,OAAO,CAAC,OAAO,CAAC,EACtE,MAAM,GAAE,MAA+B,GACtC,OAAO,CAAC,OAAO,CAAC;IAuBnB;;OAEG;IACH,QAAQ,IAAI,kBAAkB;IAY9B;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAY3B;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIhC;;OAEG;IACH,OAAO,IAAI,IAAI;CA0FhB"}