aspect-sync 0.0.11 → 0.0.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.
- package/README.md +5 -1
- package/dist/cliDisplay.js +1 -1
- package/dist/cliDisplay.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/weightedAsyncQueue.d.ts +153 -0
- package/dist/lib/weightedAsyncQueue.d.ts.map +1 -0
- package/dist/lib/weightedAsyncQueue.js +322 -0
- package/dist/lib/weightedAsyncQueue.js.map +1 -0
- package/dist/rclone.d.ts.map +1 -1
- package/dist/rclone.js +3 -0
- package/dist/rclone.js.map +1 -1
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +2 -4
- package/dist/sync.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/uploader.d.ts +1 -7
- package/dist/uploader.d.ts.map +1 -1
- package/dist/uploader.js +103 -122
- package/dist/uploader.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -124,6 +124,9 @@ npx aspect-sync \
|
|
|
124
124
|
| `--keep-local` | Keep local files after upload (for debugging) | No | `false` |
|
|
125
125
|
| `--temp-dir <path>` | Base temporary directory for synced files | No | `~/.aspect/sync` |
|
|
126
126
|
| `--session <name>` | Session name for isolation. If not provided, auto-generates timestamp with nanosecond precision (YYYY-MM-DD_HHh-MMm-SSs-NNNNNNNNNns). Creates subdirectory in temp-dir. | No | Auto-generated |
|
|
127
|
+
| `--rclone-extra <arg>` | Additional rclone argument appended to the sync command. Repeat the flag to pass multiple values. | No | Not set |
|
|
128
|
+
|
|
129
|
+
Repeat `--rclone-extra` for each passthrough flag you need. Example: `--rclone-extra --drive-shared-with-me`.
|
|
127
130
|
|
|
128
131
|
### Environment Variables
|
|
129
132
|
|
|
@@ -162,7 +165,8 @@ aspect-sync \
|
|
|
162
165
|
--directory-id abc-123-def \
|
|
163
166
|
--project-id xyz-789-uvw \
|
|
164
167
|
--api-key your-api-key \
|
|
165
|
-
--concurrent 8
|
|
168
|
+
--concurrent 8 \
|
|
169
|
+
--rclone-extra --drive-shared-with-me
|
|
166
170
|
```
|
|
167
171
|
|
|
168
172
|
### Sync from S3 Bucket
|
package/dist/cliDisplay.js
CHANGED
|
@@ -25,8 +25,8 @@ class CliDisplay {
|
|
|
25
25
|
// }, 500)
|
|
26
26
|
// Update stats every 1 second for stable speed/time calculations
|
|
27
27
|
this.#statsInterval = setInterval(() => {
|
|
28
|
-
this.#render();
|
|
29
28
|
statusTracker.updateUploadStats();
|
|
29
|
+
this.#render();
|
|
30
30
|
}, 1000);
|
|
31
31
|
// Calculate stats immediately on start
|
|
32
32
|
statusTracker.updateUploadStats();
|
package/dist/cliDisplay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliDisplay.js","sourceRoot":"","sources":["../src/cliDisplay.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAwB,MAAM,YAAY,CAAA;AAE/D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,QAAQ,GAAG,CAAC,EAAE,EAAE;IACzD,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAC7B,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9D,MAAM,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC9C,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAA;AACxD,CAAC,CAAA;AAED,MAAM,UAAU;IACd,eAAe,GAAa,EAAE,CAAA;IAC9B,iBAAiB,GAAgB,IAAI,GAAG,EAAE,CAAA;IAC1C,eAAe,GAA0B,IAAI,CAAA;IAC7C,cAAc,GAA0B,IAAI,CAAA;IAC5C,UAAU,GAAY,KAAK,CAAA;IAE3B,KAAK;QACH,IAAI,IAAI,CAAC,UAAU;YAAE,OAAM;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QAEtB,sDAAsD;QACtD,6CAA6C;QAC7C,UAAU;QAEV,iEAAiE;QACjE,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YACrC,
|
|
1
|
+
{"version":3,"file":"cliDisplay.js","sourceRoot":"","sources":["../src/cliDisplay.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -31,6 +31,7 @@ program
|
|
|
31
31
|
.option("--rclone-multi-thread-cutoff <size>", "Minimum file size for multi-threading (default: 64MiB)", "64MiB")
|
|
32
32
|
.option("--rclone-buffer-size <size>", "Buffer size per transfer (default: 64M, memory = transfers × buffer-size)", "64M")
|
|
33
33
|
.option("--rclone-no-mmap", "Disable memory-mapped I/O (reduces memory efficiency)", false)
|
|
34
|
+
.option("--rclone-extra <arg>", "Additional rclone argument to append (repeatable)", (value, previous) => (previous ?? []).concat(value), [])
|
|
34
35
|
.action(async (options) => {
|
|
35
36
|
// Validate required options
|
|
36
37
|
if (!options.apiKey) {
|
|
@@ -90,6 +91,7 @@ program
|
|
|
90
91
|
multiThreadCutoff: options.rcloneMultiThreadCutoff,
|
|
91
92
|
bufferSize: options.rcloneBufferSize,
|
|
92
93
|
useMmap: !options.rcloneNoMmap,
|
|
94
|
+
extraRcloneArgs: options.rcloneExtra,
|
|
93
95
|
},
|
|
94
96
|
};
|
|
95
97
|
// Validate config
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAG5C,iCAAiC;AACjC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAClE,CAAA;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AAE/B,OAAO;KACJ,cAAc,CAAC,mBAAmB,EAAE,oCAAoC,CAAC;KACzE,cAAc,CAAC,eAAe,EAAE,0BAA0B,CAAC;KAC3D,cAAc,CAAC,qBAAqB,EAAE,kCAAkC,CAAC;KACzE,cAAc,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;KACxD,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,wBAAwB,CAAC;KACnG,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;KAC7E,MAAM,CAAC,8BAA8B,EAAE,4CAA4C,EAAE,GAAG,CAAC;KACzF,MAAM,CAAC,cAAc,EAAE,+CAA+C,EAAE,KAAK,CAAC;KAC9E,MAAM,CAAC,mBAAmB,EAAE,4CAA4C,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;KACrH,MAAM,CAAC,kBAAkB,EAAE,gEAAgE,CAAC;KAC5F,MAAM,CAAC,6BAA6B,EAAE,gDAAgD,EAAE,GAAG,CAAC;KAC5F,MAAM,CAAC,wCAAwC,EAAE,kEAAkE,EAAE,GAAG,CAAC;KACzH,MAAM,CAAC,yCAAyC,EAAE,iDAAiD,EAAE,OAAO,CAAC;KAC7G,MAAM,CAAC,qCAAqC,EAAE,wDAAwD,EAAE,OAAO,CAAC;KAChH,MAAM,CAAC,6BAA6B,EAAE,2EAA2E,EAAE,KAAK,CAAC;KACzH,MAAM,CAAC,kBAAkB,EAAE,uDAAuD,EAAE,KAAK,CAAC;KAC1F,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,4BAA4B;IAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAA;QAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,4BAA4B;IAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAEjF,wCAAwC;IACxC,IAAI,WAAmB,CAAA;IACvB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,WAAW,GAAG,OAAO,CAAC,OAAO,CAAA;IAC/B,CAAC;SAAM,CAAC;QACN,2EAA2E;QAC3E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QACtB,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QACzD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QACrD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QACzD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAEzD,4CAA4C;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;QACtC,iFAAiF;QACjF,MAAM,KAAK,GAAG,MAAM,GAAG,WAAW,CAAA;QAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAE/C,WAAW,GAAG,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,IAAI,CAAA;IACzF,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IAExD,uBAAuB;IACvB,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;IAC7D,MAAM,wBAAwB,GAAG,QAAQ,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAA;IAE/E,6CAA6C;IAC7C,oCAAoC;IACpC,qCAAqC;IACrC,MAAM,cAAc,GAAG,eAAe,IAAI,EAAE;QAC1C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,eAAe,CAAA;IAEnB,eAAe;IACf,MAAM,MAAM,GAAe;QACzB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,OAAO,CAAC,IAAI;QACxB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;QACrD,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,YAAY,EAAE,YAAY;QAC1B,WAAW,EAAE,WAAW;QACxB,aAAa,EAAE;YACb,SAAS,EAAE,eAAe;YAC1B,QAAQ,EAAE,cAAc;YACxB,kBAAkB,EAAE,wBAAwB;YAC5C,oBAAoB,EAAE,OAAO,CAAC,0BAA0B;YACxD,iBAAiB,EAAE,OAAO,CAAC,uBAAuB;YAClD,UAAU,EAAE,OAAO,CAAC,gBAAgB;YACpC,OAAO,EAAE,CAAC,OAAO,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AAEnC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAA;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,MAAM,OAAO,sBAAsB;IACxB,WAAW,CAAQ;IACnB,MAAM,CAAoB;IACnC,gBAAgB,CAAQ;IACxB,iBAAiB,CAAQ;IACzB,iBAAiB,CAAQ;IACzB,cAAc,GAAY,KAAK,CAAA;IAC/B,wBAAwB,GAAmC,EAAE,CAAA;IACpD,oBAAoB,CAA0B;IAC9C,8BAA8B,CAA0B;IAEjE,YAAY,EACV,UAAU,EACV,KAAK,EACL,mBAAmB,EACnB,6BAA6B,GAM9B;QACC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAA;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAA;QAC/C,IAAI,CAAC,8BAA8B,GAAG,6BAA6B,CAAA;QACnE,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAA;QAClC,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAA;QACnC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAC5B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAE1B,qCAAqC;QACrC,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YAC7F,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC/C,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAA;YACxC,CAAC;YACD,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAA;YAC1B,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAA;YAC3B,OAAM;QACR,CAAC;QAED,6BAA6B;QAC7B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAA;QAC5B,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAA;QAC3B,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAA;QAE3B,yDAAyD;QACzD,IAAI,CAAC,+BAA+B,EAAE,CAAA;IACxC,CAAC;IAED;;OAEG;IACH,+BAA+B;QAC7B,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,OAAO,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAA;YAEpD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC9C,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAA;gBAC1B,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAA;gBAC3B,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAA;gBACtC,OAAO,CAAC,OAAO,EAAE,CAAA;YACnB,CAAC;iBAAM,CAAC;gBACN,KAAK,EAAE,CAAA;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,iBAAiB,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,iBAAiB,CAAA;QAC/B,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC;CACF;AAwCD;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAkB;IACpB,eAAe,CAAQ;IACvB,eAAe,CAA4C;IAC3D,YAAY,CAA2C;IACvD,aAAa,CAAa;IAEnC,UAAU,GAAwB,EAAE,CAAA;IACpC,aAAa,GAAgB,IAAI,GAAG,EAAE,CAAA;IACtC,gBAAgB,GAAW,CAAC,CAAA,CAAC,wEAAwE;IACrG,iBAAiB,GAAW,CAAC,CAAA,CAAC,sFAAsF;IACpH,eAAe,GAAW,CAAC,CAAA;IAC3B,YAAY,GAAW,CAAC,CAAA;IACxB,YAAY,GAAY,KAAK,CAAA;IAC7B,YAAY,GAAgC,IAAI,GAAG,EAAE,CAAA;IAErD,YAAY,OAAkC;QAC5C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;QAC1D,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,CAAA;QAC7C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAA;QACvC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAA;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,MAAc,EACd,YAAsE,EACtE,SAAiB,IAAI,CAAC,eAAe,EAAE;QAEvC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAA;QACtF,CAAC;QAED,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjD,CAAC;QAED,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9C,MAAM,IAAI,GAAsB;gBAC9B,YAAY,EAAE,YAAwE;gBACtF,MAAM;gBACN,MAAM;gBACN,OAAO,EAAE,OAAmC;gBAC5C,MAAM;aACP,CAAA;YAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC1B,IAAI,CAAC,aAAa,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;YACnC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;YACrC,eAAe,EAAE,IAAI,CAAC,gBAAgB;YACtC,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;YACxC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC3E,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,WAAW,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAA;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAA;IAClE,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;QAEhD,2BAA2B;QAC3B,sCAAsC;QACtC,0DAA0D;QAC1D,KAAK;QAEL,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACpB,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAc;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;IAC5E,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,aAAa;QACX,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAM;QACR,CAAC;QAED,yCAAyC;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAE/B,0DAA0D;YAC1D,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBACjD,wCAAwC;gBACxC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAA;gBACpC,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAA;gBAC3B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;gBACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YACzB,CAAC;iBAAM,CAAC;gBACN,mCAAmC;gBACnC,MAAK;YACP,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,aAAa,EAAE,EAAE,CAAA;QACxB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,IAAuB;QACxC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEnC,MAAM,UAAU,GAAG,IAAI,sBAAsB,CAAC;YAC5C,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,KAAK,EAAE,IAAI;YACX,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC9B,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAA;gBAC/B,IAAI,CAAC,iBAAiB,IAAI,MAAM,CAAA;gBAChC,IAAI,CAAC,aAAa,EAAE,CAAA;YACtB,CAAC;YACD,6BAA6B,EAAE,CAAC,MAAM,EAAE,EAAE;gBACxC,IAAI,CAAC,iBAAiB,IAAI,MAAM,CAAA;YAClC,CAAC;SACF,CAAC,CAAA;QACF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAEjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;YAClD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACpB,IAAI,CAAC,eAAe,EAAE,CAAA;YACtB,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAClB,IAAI,CAAC,YAAY,EAAE,CAAA;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC;gBAAS,CAAC;YACT,sDAAsD;YACtD,IAAI,CAAC,gBAAgB,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAA;YACzD,IAAI,CAAC,iBAAiB,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAA;YAC1D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAEpC,WAAW;YACX,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAEtC,0BAA0B;YAC1B,IAAI,CAAC,aAAa,EAAE,CAAA;YAEpB,wBAAwB;YACxB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBACvC,UAAU,CAAC,+BAA+B,EAAE,CAAA;YAC9C,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,YAAY,EAAE,CAAA;IACvB,CAAC;CACF"}
|
package/dist/rclone.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rclone.d.ts","sourceRoot":"","sources":["../src/rclone.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,qBAAa,WAAY,SAAQ,KAAK;aACS,MAAM,EAAE,MAAM;gBAA/C,OAAO,EAAE,MAAM,EAAkB,MAAM,EAAE,MAAM;CAI5D;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoB1D;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"rclone.d.ts","sourceRoot":"","sources":["../src/rclone.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,qBAAa,WAAY,SAAQ,KAAK;aACS,MAAM,EAAE,MAAM;gBAA/C,OAAO,EAAE,MAAM,EAAkB,MAAM,EAAE,MAAM;CAI5D;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoB1D;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAgEf;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CA0CnB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAyC/E;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMrE;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B5E"}
|
package/dist/rclone.js
CHANGED
|
@@ -52,6 +52,9 @@ export async function syncFromRemote(remote, remotePath, localPath, options) {
|
|
|
52
52
|
if (options.useMmap) {
|
|
53
53
|
args.push("--use-mmap");
|
|
54
54
|
}
|
|
55
|
+
if (options.extraRcloneArgs?.length) {
|
|
56
|
+
args.push(...options.extraRcloneArgs);
|
|
57
|
+
}
|
|
55
58
|
const rcloneProcess = spawn("rclone", args, {
|
|
56
59
|
stdio: 'inherit' // Inherit all streams for native terminal behavior
|
|
57
60
|
});
|
package/dist/rclone.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rclone.js","sourceRoot":"","sources":["../src/rclone.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rclone.js","sourceRoot":"","sources":["../src/rclone.ts"],"names":[],"mappings":"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"}
|
package/dist/sync.d.ts.map
CHANGED
|
@@ -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;;
|
|
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,
|
|
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
|
|
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":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,IAAI,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,iBAAiB,EAAE,MAAM,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,IAAI,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,iBAAiB,EAAE,MAAM,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,aAAa,CAAA;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,iBAAiB,EAAE,CAAA;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB"}
|
package/dist/uploader.d.ts
CHANGED
|
@@ -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
|
|
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
|
package/dist/uploader.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
|
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
|
|
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
|
|
87
|
+
async #uploadFileAttempt(fileId, filePath, directoryId) {
|
|
109
88
|
const fileStats = await fs.promises.stat(filePath);
|
|
110
89
|
const fileName = path.basename(filePath);
|
|
111
|
-
|
|
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
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
const
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
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
|
-
|
|
168
|
-
|
|
169
|
-
|
|
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
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
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
|
-
|
|
188
|
-
|
|
145
|
+
uploadedChunkBytes[chunkIndex] = 0;
|
|
146
|
+
statusTracker.updateUploadProgress(fileId, calculateTotalProgress());
|
|
147
|
+
await uploadOneChunk(chunkIndex);
|
|
148
|
+
return;
|
|
189
149
|
}
|
|
190
|
-
catch (
|
|
191
|
-
|
|
192
|
-
|
|
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
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
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
|
package/dist/uploader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploader.js","sourceRoot":"","sources":["../src/uploader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"uploader.js","sourceRoot":"","sources":["../src/uploader.ts"],"names":[],"mappings":"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"}
|