aspect-sync 0.0.11 → 0.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"cliDisplay.d.ts","sourceRoot":"","sources":["../src/cliDisplay.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,EAAE,iBAAY,WAMtD,CAAA;AAED,cAAM,UAAU;;IAOd,KAAK,IAAI,IAAI;IAkBb,IAAI,IAAI,IAAI;CAkIb;AAED,eAAO,MAAM,UAAU,YAAmB,CAAA"}
1
+ {"version":3,"file":"cliDisplay.d.ts","sourceRoot":"","sources":["../src/cliDisplay.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,EAAE,iBAAY,WAMtD,CAAA;AAED,cAAM,UAAU;;IAMd,KAAK,IAAI,IAAI;IAkBb,IAAI,IAAI,IAAI;CA8Hb;AAED,eAAO,MAAM,UAAU,YAAmB,CAAA"}
@@ -11,7 +11,6 @@ export const formatBytes = (bytes, decimals = 2) => {
11
11
  return `${size.toFixed(decimals)} ${units[unitIndex]}`;
12
12
  };
13
13
  class CliDisplay {
14
- #completedLines = [];
15
14
  #completedFileIds = new Set();
16
15
  #updateInterval = null;
17
16
  #statsInterval = null;
@@ -43,10 +42,8 @@ class CliDisplay {
43
42
  clearInterval(this.#statsInterval);
44
43
  this.#statsInterval = null;
45
44
  }
46
- // Update stats one final time for accurate final display
47
- statusTracker.updateUploadStats();
48
- this.#render();
49
- logUpdate.done();
45
+ // Clear the dynamic log-update section, leaving only permanent console.log output
46
+ logUpdate.clear();
50
47
  }
51
48
  #render() {
52
49
  const inProgressFiles = statusTracker.getInProgressFiles();
@@ -62,10 +59,8 @@ class CliDisplay {
62
59
  this.#completedFileIds.add(file.fileId);
63
60
  }
64
61
  }
65
- // Build the output
62
+ // Build the output (only in-progress files and summary - completed files are printed with console.log)
66
63
  const lines = [];
67
- // Add all completed lines (these are frozen)
68
- lines.push(...this.#completedLines);
69
64
  // Add in-progress files (these update dynamically)
70
65
  for (const file of inProgressFiles) {
71
66
  lines.push(this.#formatInProgressFile(file));
@@ -74,18 +69,19 @@ class CliDisplay {
74
69
  lines.push("");
75
70
  lines.push(this.#formatSummary(totals));
76
71
  lines.push(this.#formatByteStats(totals));
77
- // Update the display
72
+ // Update the display (only the dynamic in-progress section)
78
73
  logUpdate(lines.join("\n"));
79
74
  }
80
75
  #addCompletedLine(file) {
76
+ // Print completed files immediately to stdout (permanent, scrollable)
81
77
  if (file.uploadStatus === UploadStatus.SUCCESS) {
82
- this.#completedLines.push(`${chalk.green("✓")} ${file.relativePath} ${chalk.green("(100%)")}`);
78
+ console.log(`${chalk.green("✓")} ${file.relativePath} ${chalk.green("(100%)")}`);
83
79
  }
84
80
  else if (file.uploadStatus === UploadStatus.FAILED) {
85
- this.#completedLines.push(`${chalk.red("✗")} ${file.relativePath} ${chalk.red(`(Failed: ${file.errorMessage || "Unknown error"})`)}`);
81
+ console.log(`${chalk.red("✗")} ${file.relativePath} ${chalk.red(`(Failed: ${file.errorMessage || "Unknown error"})`)}`);
86
82
  }
87
83
  else if (file.uploadStatus === UploadStatus.SKIPPED) {
88
- this.#completedLines.push(`${chalk.yellow("⊘")} ${file.relativePath} ${chalk.yellow("(Skipped - already exists)")}`);
84
+ console.log(`${chalk.yellow("⊘")} ${file.relativePath} ${chalk.yellow("(Skipped - already exists)")}`);
89
85
  }
90
86
  }
91
87
  #formatInProgressFile(file) {
@@ -1 +1 @@
1
- {"version":3,"file":"cliDisplay.js","sourceRoot":"","sources":["../src/cliDisplay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cliDisplay.js","sourceRoot":"","sources":["../src/cliDisplay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,322 @@
1
+ import { v4 as uuidv4 } from "uuid";
2
+ const generateUUID = () => uuidv4();
3
+ /**
4
+ * WeightedAsyncQueue - A concurrency queue that manages tasks with weighted costs
5
+ *
6
+ * ## Overview
7
+ *
8
+ * This queue allows you to enqueue tasks with different "weights" (point costs). The queue
9
+ * has a maximum concurrency limit (e.g., 4 points), and tasks compete for these points.
10
+ *
11
+ * ## How It Works
12
+ *
13
+ * 1. **Starting tasks**: When you enqueue a task with a certain weight, it will start running
14
+ * as soon as at least 1 point is available in the global pool. The task reserves its full
15
+ * weight from the pool immediately upon starting.
16
+ *
17
+ * 2. **Managing concurrency within tasks**: Once a task starts, it can use the `acquire()`
18
+ * method to control how many of its reserved points are actively being used at once. This
19
+ * is useful for tasks that have multiple subtasks (like uploading file chunks) that need
20
+ * to run with controlled concurrency.
21
+ *
22
+ * 3. **Releasing points**: When a subtask completes, call `release()` to free that point back
23
+ * to the global pool. This makes it available for other tasks waiting in the queue, or for
24
+ * other subtasks within the same task.
25
+ *
26
+ * 4. **Automatic cleanup**: If a task finishes without calling `release()` for all its points,
27
+ * any unreleased points are automatically freed back to the global pool.
28
+ *
29
+ * 5. **Simple tasks**: For single-point tasks that don't need internal concurrency management,
30
+ * you don't need to call `acquire()` or `release()` at all. Just do your work, and when
31
+ * the task completes, its point will be automatically released.
32
+ *
33
+ * ## Example Usage
34
+ *
35
+ * ```typescript
36
+ * const queue = new WeightedAsyncQueue({ maxConcurrency: 4 })
37
+ *
38
+ * // Simple single-point upload (no acquire/release needed)
39
+ * queue.enqueue(1, async (controller) => {
40
+ * await uploadFile(file)
41
+ * // Point automatically released when task completes
42
+ * })
43
+ *
44
+ * // Multi-part upload with 3 chunks (uses acquire/release)
45
+ * queue.enqueue(3, async (controller) => {
46
+ * for (const chunk of chunks) {
47
+ * await controller.acquire() // Wait for a point to be available
48
+ * uploadChunk(chunk).then(() => controller.release()) // Free the point when done
49
+ * }
50
+ * })
51
+ * ```
52
+ *
53
+ * ## Key Benefits
54
+ *
55
+ * - Tasks with high weights can run subtasks with controlled concurrency
56
+ * - Simple tasks don't need to worry about point management
57
+ * - Automatic cleanup prevents point leaks when tasks error or are cancelled
58
+ */
59
+ export class WeightedTaskController {
60
+ #taskWeight;
61
+ #queue;
62
+ #pointsLeftToRun;
63
+ #unreleasedPoints;
64
+ #concurrentPoints;
65
+ #calledAcquire = false;
66
+ #waitingInternalRequests = [];
67
+ #releaseGlobalPoints;
68
+ #acquireGlobalConcurrentPoints;
69
+ constructor({ taskWeight, queue, releaseGlobalPoints, acquireGlobalConcurrentPoints, }) {
70
+ this.#taskWeight = taskWeight;
71
+ this.#queue = queue;
72
+ this.#releaseGlobalPoints = releaseGlobalPoints;
73
+ this.#acquireGlobalConcurrentPoints = acquireGlobalConcurrentPoints;
74
+ this.#pointsLeftToRun = taskWeight;
75
+ this.#unreleasedPoints = taskWeight;
76
+ this.#concurrentPoints = 0;
77
+ }
78
+ /**
79
+ * Acquire points internally (doesn't affect global pool, just manages internal concurrency)
80
+ * Blocks if would exceed task's weight.
81
+ */
82
+ async acquire() {
83
+ this.#calledAcquire = true;
84
+ // Check if we have internal capacity
85
+ if (this.#pointsLeftToRun === this.#taskWeight || this.#queue.getStats().availablePoints > 0) {
86
+ if (this.#pointsLeftToRun !== this.#taskWeight) {
87
+ this.#acquireGlobalConcurrentPoints(1);
88
+ }
89
+ this.#pointsLeftToRun -= 1;
90
+ this.#concurrentPoints += 1;
91
+ return;
92
+ }
93
+ // Wait for internal capacity
94
+ await new Promise((resolve) => {
95
+ this.#waitingInternalRequests.push({ resolve });
96
+ });
97
+ }
98
+ /**
99
+ * Release points internally
100
+ */
101
+ release() {
102
+ this.#releaseGlobalPoints(1);
103
+ this.#unreleasedPoints -= 1;
104
+ this.#concurrentPoints -= 1;
105
+ // Check if any waiting internal requests can now proceed
106
+ this._processWaitingInternalRequests();
107
+ }
108
+ /**
109
+ * Process waiting internal requests
110
+ */
111
+ _processWaitingInternalRequests() {
112
+ let index = 0;
113
+ while (index < this.#waitingInternalRequests.length) {
114
+ const request = this.#waitingInternalRequests[index];
115
+ if (this.#queue.getStats().availablePoints > 0) {
116
+ this.#waitingInternalRequests.splice(index, 1);
117
+ this.#pointsLeftToRun -= 1;
118
+ this.#concurrentPoints += 1;
119
+ this.#acquireGlobalConcurrentPoints(1);
120
+ request.resolve();
121
+ }
122
+ else {
123
+ index++;
124
+ }
125
+ }
126
+ }
127
+ /**
128
+ * Get task weight
129
+ */
130
+ getTaskWeight() {
131
+ return this.#taskWeight;
132
+ }
133
+ /**
134
+ * Get unreleased points
135
+ */
136
+ getUnreleasedPoints() {
137
+ return this.#unreleasedPoints;
138
+ }
139
+ /**
140
+ * Get concurrent points
141
+ */
142
+ getConcurrentPoints() {
143
+ if (this.#calledAcquire) {
144
+ return this.#concurrentPoints;
145
+ }
146
+ return 1;
147
+ }
148
+ }
149
+ /**
150
+ * WeightedAsyncQueue manages concurrent execution of async tasks with weighted concurrency.
151
+ *
152
+ * Simple model:
153
+ * - When a task starts, it reserves its full weight from the global pool
154
+ * - When a task ends, it releases its full weight back to the global pool
155
+ * - Tasks use acquire/release ONLY for internal concurrency management (doesn't affect global pool)
156
+ */
157
+ export class WeightedAsyncQueue {
158
+ #maxConcurrency;
159
+ #onTaskComplete;
160
+ #onTaskError;
161
+ #onQueueEmpty;
162
+ #taskQueue = [];
163
+ #runningTasks = new Set();
164
+ #allocatedPoints = 0; // number of points allocated to running tasks (can be > maxConcurrency)
165
+ #concurrentPoints = 0; // number of points currently being used by running tasks (cannot be > maxConcurrency)
166
+ #totalProcessed = 0;
167
+ #totalFailed = 0;
168
+ #isDestroyed = false;
169
+ #controllers = new Set();
170
+ constructor(options) {
171
+ this.#maxConcurrency = Math.max(1, options.maxConcurrency);
172
+ this.#onTaskComplete = options.onTaskComplete;
173
+ this.#onTaskError = options.onTaskError;
174
+ this.#onQueueEmpty = options.onQueueEmpty;
175
+ }
176
+ /**
177
+ * Add a weighted task to the queue
178
+ */
179
+ async enqueue(weight, taskFunction, taskId = this.#generateTaskId()) {
180
+ if (this.#isDestroyed) {
181
+ throw new Error('WeightedAsyncQueue has been destroyed and cannot accept new tasks');
182
+ }
183
+ if (weight <= 0) {
184
+ throw new Error('Task weight must be positive');
185
+ }
186
+ return new Promise((resolve, reject) => {
187
+ const task = {
188
+ taskFunction: taskFunction,
189
+ weight,
190
+ taskId,
191
+ resolve: resolve,
192
+ reject,
193
+ };
194
+ this.#taskQueue.push(task);
195
+ this.#processQueue();
196
+ });
197
+ }
198
+ /**
199
+ * Get current queue statistics
200
+ */
201
+ getStats() {
202
+ return {
203
+ queuedTasks: this.#taskQueue.length,
204
+ runningTasks: this.#runningTasks.size,
205
+ allocatedPoints: this.#allocatedPoints,
206
+ concurrentPoints: this.#concurrentPoints,
207
+ availablePoints: Math.max(0, this.#maxConcurrency - this.#concurrentPoints),
208
+ totalProcessed: this.#totalProcessed,
209
+ totalFailed: this.#totalFailed,
210
+ };
211
+ }
212
+ /**
213
+ * Check if the queue is currently processing any tasks
214
+ */
215
+ isActive() {
216
+ return this.#taskQueue.length > 0 || this.#runningTasks.size > 0;
217
+ }
218
+ /**
219
+ * Clear all pending tasks from the queue (does not stop running tasks)
220
+ */
221
+ clearPendingTasks() {
222
+ const clearedTasksCount = this.#taskQueue.length;
223
+ // Reject all pending tasks
224
+ // this.#taskQueue.forEach((task) => {
225
+ // task.reject(new Error('Task was cleared from queue'))
226
+ // })
227
+ this.#taskQueue = [];
228
+ return clearedTasksCount;
229
+ }
230
+ /**
231
+ * Cancel a task by its ID
232
+ */
233
+ cancelTask(taskId) {
234
+ this.#taskQueue = this.#taskQueue.filter((task) => task.taskId !== taskId);
235
+ }
236
+ /**
237
+ * Destroy the queue and reject all pending tasks
238
+ */
239
+ destroy() {
240
+ this.#isDestroyed = true;
241
+ this.clearPendingTasks();
242
+ }
243
+ /**
244
+ * Process tasks from the queue based on available capacity
245
+ */
246
+ #processQueue() {
247
+ if (this.#isDestroyed) {
248
+ return;
249
+ }
250
+ // Try to start as many tasks as possible
251
+ while (this.#taskQueue.length > 0) {
252
+ const task = this.#taskQueue[0];
253
+ // Check if we have enough capacity for this task's weight
254
+ if (this.#allocatedPoints < this.#maxConcurrency) {
255
+ // Reserve the points and start the task
256
+ this.#allocatedPoints += task.weight;
257
+ this.#concurrentPoints += 1;
258
+ this.#taskQueue.shift();
259
+ this.#executeTask(task);
260
+ }
261
+ else {
262
+ // Not enough capacity, stop trying
263
+ break;
264
+ }
265
+ }
266
+ // Check if queue is now empty
267
+ if (this.#taskQueue.length === 0 && this.#runningTasks.size === 0) {
268
+ this.#onQueueEmpty?.();
269
+ }
270
+ }
271
+ /**
272
+ * Execute a single weighted task and handle its completion
273
+ */
274
+ async #executeTask(task) {
275
+ this.#runningTasks.add(task.taskId);
276
+ const controller = new WeightedTaskController({
277
+ taskWeight: task.weight,
278
+ queue: this,
279
+ releaseGlobalPoints: (points) => {
280
+ this.#allocatedPoints -= points;
281
+ this.#concurrentPoints -= points;
282
+ this.#processQueue();
283
+ },
284
+ acquireGlobalConcurrentPoints: (points) => {
285
+ this.#concurrentPoints += points;
286
+ }
287
+ });
288
+ this.#controllers.add(controller);
289
+ try {
290
+ const result = await task.taskFunction(controller);
291
+ task.resolve(result);
292
+ this.#totalProcessed++;
293
+ this.#onTaskComplete?.(task.taskId, result);
294
+ }
295
+ catch (error) {
296
+ task.reject(error);
297
+ this.#totalFailed++;
298
+ this.#onTaskError?.(task.taskId, error);
299
+ }
300
+ finally {
301
+ // Release the task's reserved weight back to the pool
302
+ this.#allocatedPoints -= controller.getUnreleasedPoints();
303
+ this.#concurrentPoints -= controller.getConcurrentPoints();
304
+ this.#controllers.delete(controller);
305
+ // Clean up
306
+ this.#runningTasks.delete(task.taskId);
307
+ // Try to start more tasks
308
+ this.#processQueue();
309
+ // ping subtasks as well
310
+ this.#controllers.forEach((controller) => {
311
+ controller._processWaitingInternalRequests();
312
+ });
313
+ }
314
+ }
315
+ /**
316
+ * Generate a unique task ID
317
+ */
318
+ #generateTaskId() {
319
+ return generateUUID();
320
+ }
321
+ }
322
+ //# sourceMappingURL=weightedAsyncQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weightedAsyncQueue.js","sourceRoot":"","sources":["../../src/lib/weightedAsyncQueue.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,YAAY,CAAA;AAS/D,qBAAa,gBAAgB;;gBAOf,MAAM,EAAE,UAAU;IAaxB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuO3B"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,YAAY,CAAA;AAS/D,qBAAa,gBAAgB;;gBAMf,MAAM,EAAE,UAAU;IAYxB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsO3B"}
package/dist/sync.js CHANGED
@@ -3,19 +3,17 @@ import * as path from "path";
3
3
  import axios from "axios";
4
4
  import { v4 as uuidv4 } from "uuid";
5
5
  import { statusTracker } from "./statusTracker.js";
6
- import { Uploader, createTaskController, SkippedError } from "./uploader.js";
6
+ import { Uploader, SkippedError } from "./uploader.js";
7
7
  import { cliDisplay } from "./cliDisplay.js";
8
8
  import { checkRcloneInstalled, syncFromRemote, scanLocalDirectory, } from "./rclone.js";
9
9
  export class SyncOrchestrator {
10
10
  #config;
11
11
  #uploader;
12
- #taskController;
13
12
  #apiClient;
14
13
  #directoryCache = new Map(); // relativePath -> directoryId
15
14
  constructor(config) {
16
15
  this.#config = config;
17
16
  this.#uploader = new Uploader(config);
18
- this.#taskController = createTaskController(config.maxConcurrent);
19
17
  this.#apiClient = axios.create({
20
18
  baseURL: config.apiUrl,
21
19
  headers: {
@@ -70,7 +68,7 @@ export class SyncOrchestrator {
70
68
  const directoryId = this.#getDirectoryIdForFile(file.relativePath);
71
69
  statusTracker.addUploadFile(fileId, file.absolutePath, file.fileName, file.relativePath, file.size);
72
70
  try {
73
- await this.#uploader.uploadFile(fileId, file.absolutePath, directoryId, this.#taskController);
71
+ await this.#uploader.uploadFile(fileId, file.absolutePath, directoryId);
74
72
  }
75
73
  catch (error) {
76
74
  if (error instanceof SkippedError) {
package/dist/sync.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
@@ -3,15 +3,9 @@ export declare class SkippedError extends Error {
3
3
  readonly assetId: string;
4
4
  constructor(assetId: string, message?: string);
5
5
  }
6
- interface WeightedTaskController {
7
- acquire: () => Promise<void>;
8
- release: () => void;
9
- }
10
6
  export declare class Uploader {
11
7
  #private;
12
8
  constructor(config: SyncConfig);
13
- uploadFile(fileId: string, filePath: string, directoryId: string, taskController: WeightedTaskController): Promise<void>;
9
+ uploadFile(fileId: string, filePath: string, directoryId: string): Promise<void>;
14
10
  }
15
- export declare function createTaskController(maxConcurrent: number): WeightedTaskController;
16
- export {};
17
11
  //# sourceMappingURL=uploader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"uploader.d.ts","sourceRoot":"","sources":["../src/uploader.ts"],"names":[],"mappings":"AAKA,OAAO,EAAyG,KAAK,UAAU,EAAiC,MAAM,YAAY,CAAA;AAElL,qBAAa,YAAa,SAAQ,KAAK;aACT,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAA+B;CAItF;AAqCD,UAAU,sBAAsB;IAC9B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAgCD,qBAAa,QAAQ;;gBAIP,MAAM,EAAE,UAAU;IAWxB,UAAU,CACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,sBAAsB,GACrC,OAAO,CAAC,IAAI,CAAC;CA8NjB;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,sBAAsB,CAElF"}
1
+ {"version":3,"file":"uploader.d.ts","sourceRoot":"","sources":["../src/uploader.ts"],"names":[],"mappings":"AAKA,OAAO,EAAyG,KAAK,UAAU,EAAiC,MAAM,YAAY,CAAA;AAGlL,qBAAa,YAAa,SAAQ,KAAK;aACT,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAA+B;CAItF;AAqCD,qBAAa,QAAQ;;gBAKP,MAAM,EAAE,UAAU;IAcxB,UAAU,CACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;CAmOjB"}
package/dist/uploader.js CHANGED
@@ -3,6 +3,7 @@ import * as fs from "fs";
3
3
  import * as path from "path";
4
4
  import { Readable } from "stream";
5
5
  import { statusTracker } from "./statusTracker.js";
6
+ import { WeightedAsyncQueue } from "./lib/weightedAsyncQueue.js";
6
7
  export class SkippedError extends Error {
7
8
  assetId;
8
9
  constructor(assetId, message = "Asset already exists") {
@@ -36,35 +37,10 @@ function createProgressStream(buffer, onProgress) {
36
37
  }
37
38
  });
38
39
  }
39
- class SimpleWeightedTaskController {
40
- #maxConcurrent;
41
- #currentCount = 0;
42
- #queue = [];
43
- constructor(maxConcurrent) {
44
- this.#maxConcurrent = maxConcurrent;
45
- }
46
- async acquire() {
47
- if (this.#currentCount < this.#maxConcurrent) {
48
- this.#currentCount++;
49
- return;
50
- }
51
- return new Promise((resolve) => {
52
- this.#queue.push(resolve);
53
- });
54
- }
55
- release() {
56
- const nextInQueue = this.#queue.shift();
57
- if (nextInQueue) {
58
- nextInQueue();
59
- }
60
- else {
61
- this.#currentCount--;
62
- }
63
- }
64
- }
65
40
  export class Uploader {
66
41
  #config;
67
42
  #apiClient;
43
+ #uploadQueue;
68
44
  constructor(config) {
69
45
  this.#config = config;
70
46
  this.#apiClient = axios.create({
@@ -74,8 +50,11 @@ export class Uploader {
74
50
  "Content-Type": "application/json",
75
51
  }
76
52
  });
53
+ this.#uploadQueue = new WeightedAsyncQueue({
54
+ maxConcurrency: config.maxConcurrent
55
+ });
77
56
  }
78
- async uploadFile(fileId, filePath, directoryId, taskController) {
57
+ async uploadFile(fileId, filePath, directoryId) {
79
58
  const fileStats = await fs.promises.stat(filePath);
80
59
  const fileName = path.basename(filePath);
81
60
  // Check if asset already exists before attempting upload
@@ -87,7 +66,7 @@ export class Uploader {
87
66
  let retryCount = 0;
88
67
  while (retryCount <= MAX_FILE_UPLOAD_RETRIES) {
89
68
  try {
90
- await this.#uploadFileAttempt(fileId, filePath, directoryId, taskController);
69
+ await this.#uploadFileAttempt(fileId, filePath, directoryId);
91
70
  statusTracker.markUploadSuccess(fileId);
92
71
  return;
93
72
  }
@@ -105,106 +84,111 @@ export class Uploader {
105
84
  }
106
85
  }
107
86
  }
108
- async #uploadFileAttempt(fileId, filePath, directoryId, taskController) {
87
+ async #uploadFileAttempt(fileId, filePath, directoryId) {
109
88
  const fileStats = await fs.promises.stat(filePath);
110
89
  const fileName = path.basename(filePath);
111
- const { upload_id, asset_id } = await this.#initiateMultipartUpload(directoryId, fileName, fileStats.size);
112
- const fileHandle = await fs.promises.open(filePath, "r");
90
+ // Calculate weight based on file size
113
91
  const totalChunks = Math.ceil(fileStats.size / CHUNK_SIZE);
114
- const parts = [];
115
- const uploadedChunkBytes = new Array(totalChunks).fill(0);
116
- const calculateTotalProgress = () => {
117
- return uploadedChunkBytes.reduce((sum, bytes) => sum + bytes, 0);
118
- };
119
- const uploadOneChunk = async (chunkIndex) => {
120
- const partNumber = chunkIndex + 1;
121
- const start = chunkIndex * CHUNK_SIZE;
122
- const end = Math.min(start + CHUNK_SIZE, fileStats.size);
123
- const chunkSize = end - start;
124
- const buffer = Buffer.alloc(chunkSize);
125
- await fileHandle.read(buffer, 0, chunkSize, start);
126
- const { url } = await this.#getMultipartPartUrl(asset_id, upload_id, partNumber);
127
- // Create progress-tracking stream
128
- const stream = createProgressStream(buffer, (bytesUploaded) => {
129
- uploadedChunkBytes[chunkIndex] = bytesUploaded;
130
- const totalProgress = calculateTotalProgress();
131
- statusTracker.updateUploadProgress(fileId, totalProgress);
132
- });
133
- // Use native fetch with streaming body
134
- const response = await fetch(url, {
135
- method: "PUT",
136
- body: stream, // Node.js accepts Readable streams
137
- headers: {
138
- "Content-Type": "",
139
- "Content-Length": chunkSize.toString(),
140
- },
141
- // @ts-ignore - duplex is required for streaming request body in Node.js
142
- duplex: "half",
143
- });
144
- if (!response.ok) {
145
- throw new Error(`Upload failed with status ${response.status}: ${await response.text()}`);
146
- }
147
- const etag = response.headers.get("etag");
148
- if (!etag) {
149
- throw new Error(`No ETag returned for part ${partNumber}`);
150
- }
151
- parts.push({
152
- part_number: partNumber,
153
- etag: etag.replace(/"/g, ""),
154
- });
155
- uploadedChunkBytes[chunkIndex] = chunkSize;
156
- statusTracker.updateUploadProgress(fileId, calculateTotalProgress());
157
- };
158
- const uploadOneChunkWithRetry = async (chunkIndex) => {
159
- let lastError;
160
- for (let attempt = 0; attempt < MAX_PART_UPLOAD_RETRIES; attempt++) {
161
- try {
162
- uploadedChunkBytes[chunkIndex] = 0;
163
- statusTracker.updateUploadProgress(fileId, calculateTotalProgress());
164
- await uploadOneChunk(chunkIndex);
165
- return;
92
+ const weight = totalChunks;
93
+ // Enqueue the upload task with proper weight
94
+ await this.#uploadQueue.enqueue(weight, async (taskController) => {
95
+ const { upload_id, asset_id } = await this.#initiateMultipartUpload(directoryId, fileName, fileStats.size);
96
+ const fileHandle = await fs.promises.open(filePath, "r");
97
+ const parts = [];
98
+ const uploadedChunkBytes = new Array(totalChunks).fill(0);
99
+ const calculateTotalProgress = () => {
100
+ return uploadedChunkBytes.reduce((sum, bytes) => sum + bytes, 0);
101
+ };
102
+ const uploadOneChunk = async (chunkIndex) => {
103
+ const partNumber = chunkIndex + 1;
104
+ const start = chunkIndex * CHUNK_SIZE;
105
+ const end = Math.min(start + CHUNK_SIZE, fileStats.size);
106
+ const chunkSize = end - start;
107
+ const buffer = Buffer.alloc(chunkSize);
108
+ await fileHandle.read(buffer, 0, chunkSize, start);
109
+ const { url } = await this.#getMultipartPartUrl(asset_id, upload_id, partNumber);
110
+ // Create progress-tracking stream
111
+ const stream = createProgressStream(buffer, (bytesUploaded) => {
112
+ uploadedChunkBytes[chunkIndex] = bytesUploaded;
113
+ const totalProgress = calculateTotalProgress();
114
+ statusTracker.updateUploadProgress(fileId, totalProgress);
115
+ });
116
+ // Use native fetch with streaming body
117
+ const response = await fetch(url, {
118
+ method: "PUT",
119
+ body: stream, // Node.js accepts Readable streams
120
+ headers: {
121
+ "Content-Type": "",
122
+ "Content-Length": chunkSize.toString(),
123
+ },
124
+ // @ts-ignore - duplex is required for streaming request body in Node.js
125
+ duplex: "half",
126
+ });
127
+ if (!response.ok) {
128
+ throw new Error(`Upload failed with status ${response.status}: ${await response.text()}`);
166
129
  }
167
- catch (error) {
168
- lastError = error instanceof Error ? error : new Error(String(error));
169
- if (attempt === MAX_PART_UPLOAD_RETRIES - 1) {
170
- throw lastError;
171
- }
172
- uploadedChunkBytes[chunkIndex] = 0;
173
- statusTracker.updateUploadProgress(fileId, calculateTotalProgress());
174
- const backoffMs = 1000 * Math.pow(2, attempt);
175
- console.error(`Part ${chunkIndex + 1} failed (attempt ${attempt + 1}/${MAX_PART_UPLOAD_RETRIES}), retrying in ${backoffMs}ms...`, lastError);
176
- await sleep(backoffMs);
130
+ const etag = response.headers.get("etag");
131
+ if (!etag) {
132
+ throw new Error(`No ETag returned for part ${partNumber}`);
177
133
  }
178
- }
179
- throw lastError || new Error("Unknown error during chunk upload");
180
- };
181
- const promises = [];
182
- try {
183
- for (let chunkIndex = 0; chunkIndex < totalChunks; chunkIndex++) {
184
- await taskController.acquire();
185
- promises.push((async () => {
134
+ parts.push({
135
+ part_number: partNumber,
136
+ etag: etag.replace(/"/g, ""),
137
+ });
138
+ uploadedChunkBytes[chunkIndex] = chunkSize;
139
+ statusTracker.updateUploadProgress(fileId, calculateTotalProgress());
140
+ };
141
+ const uploadOneChunkWithRetry = async (chunkIndex) => {
142
+ let lastError;
143
+ for (let attempt = 0; attempt < MAX_PART_UPLOAD_RETRIES; attempt++) {
186
144
  try {
187
- await uploadOneChunkWithRetry(chunkIndex);
188
- taskController.release();
145
+ uploadedChunkBytes[chunkIndex] = 0;
146
+ statusTracker.updateUploadProgress(fileId, calculateTotalProgress());
147
+ await uploadOneChunk(chunkIndex);
148
+ return;
189
149
  }
190
- catch (e) {
191
- taskController.release();
192
- throw e;
150
+ catch (error) {
151
+ lastError = error instanceof Error ? error : new Error(String(error));
152
+ if (attempt === MAX_PART_UPLOAD_RETRIES - 1) {
153
+ throw lastError;
154
+ }
155
+ uploadedChunkBytes[chunkIndex] = 0;
156
+ statusTracker.updateUploadProgress(fileId, calculateTotalProgress());
157
+ const backoffMs = 1000 * Math.pow(2, attempt);
158
+ console.error(`Part ${chunkIndex + 1} failed (attempt ${attempt + 1}/${MAX_PART_UPLOAD_RETRIES}), retrying in ${backoffMs}ms...`, lastError);
159
+ await sleep(backoffMs);
193
160
  }
194
- })());
161
+ }
162
+ throw lastError || new Error("Unknown error during chunk upload");
163
+ };
164
+ const promises = [];
165
+ try {
166
+ for (let chunkIndex = 0; chunkIndex < totalChunks; chunkIndex++) {
167
+ await taskController.acquire();
168
+ promises.push((async () => {
169
+ try {
170
+ await uploadOneChunkWithRetry(chunkIndex);
171
+ taskController.release();
172
+ }
173
+ catch (e) {
174
+ taskController.release();
175
+ throw e;
176
+ }
177
+ })());
178
+ }
179
+ await Promise.all(promises);
180
+ await this.#completeMultipartUpload(asset_id, upload_id, parts.sort((a, b) => a.part_number - b.part_number));
195
181
  }
196
- await Promise.all(promises);
197
- await this.#completeMultipartUpload(asset_id, upload_id, parts.sort((a, b) => a.part_number - b.part_number));
198
- }
199
- catch (error) {
200
- await this.#abortMultipartUpload(asset_id, upload_id).catch(e => {
201
- console.error("Failed to abort multipart upload:", e);
202
- });
203
- throw error;
204
- }
205
- finally {
206
- await fileHandle.close();
207
- }
182
+ catch (error) {
183
+ await this.#abortMultipartUpload(asset_id, upload_id).catch(e => {
184
+ console.error("Failed to abort multipart upload:", e);
185
+ });
186
+ throw error;
187
+ }
188
+ finally {
189
+ await fileHandle.close();
190
+ }
191
+ }, fileId);
208
192
  }
209
193
  async #initiateMultipartUpload(directoryId, fileName, sizeBytes) {
210
194
  const response = await this.#apiClient.post("/assets/multipart/initiate", {
@@ -238,7 +222,4 @@ export class Uploader {
238
222
  return response.data;
239
223
  }
240
224
  }
241
- export function createTaskController(maxConcurrent) {
242
- return new SimpleWeightedTaskController(maxConcurrent);
243
- }
244
225
  //# sourceMappingURL=uploader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"uploader.js","sourceRoot":"","sources":["../src/uploader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uploader.js","sourceRoot":"","sources":["../src/uploader.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aspect-sync",
3
- "version": "0.0.11",
3
+ "version": "0.0.12",
4
4
  "description": "CLI tool to sync files from external services to Aspect via rclone",
5
5
  "main": "dist/index.js",
6
6
  "bin": {