aspect-sync 0.1.11 → 0.1.12
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 +8 -6
- package/dist/index.js +10 -169
- package/package.json +11 -7
- package/dist/batchManager.d.ts +0 -21
- package/dist/batchManager.d.ts.map +0 -1
- package/dist/batchManager.js +0 -121
- package/dist/batchManager.js.map +0 -1
- package/dist/cliDisplay.d.ts +0 -9
- package/dist/cliDisplay.d.ts.map +0 -1
- package/dist/cliDisplay.js +0 -302
- package/dist/cliDisplay.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/weightedAsyncQueue.d.ts +0 -153
- package/dist/lib/weightedAsyncQueue.d.ts.map +0 -1
- package/dist/lib/weightedAsyncQueue.js +0 -322
- package/dist/lib/weightedAsyncQueue.js.map +0 -1
- package/dist/rclone.d.ts +0 -28
- package/dist/rclone.d.ts.map +0 -1
- package/dist/rclone.js +0 -397
- package/dist/rclone.js.map +0 -1
- package/dist/statusTracker.d.ts +0 -46
- package/dist/statusTracker.d.ts.map +0 -1
- package/dist/statusTracker.js +0 -272
- package/dist/statusTracker.js.map +0 -1
- package/dist/sync.d.ts +0 -9
- package/dist/sync.d.ts.map +0 -1
- package/dist/sync.js +0 -531
- package/dist/sync.js.map +0 -1
- package/dist/types.d.ts +0 -135
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -18
- package/dist/types.js.map +0 -1
- package/dist/uploader.d.ts +0 -7
- package/dist/uploader.d.ts.map +0 -1
- package/dist/uploader.js +0 -203
- package/dist/uploader.js.map +0 -1
- package/dist/util.d.ts +0 -4
- package/dist/util.d.ts.map +0 -1
- package/dist/util.js +0 -41
- package/dist/util.js.map +0 -1
package/dist/batchManager.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"batchManager.js","sourceRoot":"","sources":["../src/batchManager.ts"],"names":[],"mappings":"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"}
|
package/dist/cliDisplay.d.ts
DELETED
package/dist/cliDisplay.d.ts.map
DELETED
|
@@ -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"}
|
package/dist/cliDisplay.js
DELETED
|
@@ -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
|
package/dist/cliDisplay.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cliDisplay.js","sourceRoot":"","sources":["../src/cliDisplay.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -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"}
|