kinetex 1.2.0 → 1.4.0
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 +1164 -453
- package/dist/browser/kinetex.esm.js +38 -22
- package/dist/browser/kinetex.js +3127 -715
- package/dist/browser/kinetex.min.js +38 -22
- package/dist/cjs/aws-sigv4.js +137 -20
- package/dist/cjs/cache.js +101 -21
- package/dist/cjs/circuit-breaker.js +69 -7
- package/dist/cjs/client.js +838 -191
- package/dist/cjs/cookie-parser.js +110 -9
- package/dist/cjs/cookie-store.js +141 -36
- package/dist/cjs/core.js +501 -63
- package/dist/cjs/dedup.js +58 -18
- package/dist/cjs/digest.js +185 -23
- package/dist/cjs/graphql.js +164 -24
- package/dist/cjs/headers.js +362 -48
- package/dist/cjs/interceptors.js +285 -29
- package/dist/cjs/lifecycle.js +89 -40
- package/dist/cjs/logging.js +169 -16
- package/dist/cjs/mod.js +3 -2
- package/dist/cjs/pagination.js +261 -28
- package/dist/cjs/progress.js +282 -52
- package/dist/cjs/proxy.js +412 -0
- package/dist/cjs/response.js +316 -47
- package/dist/cjs/socks5.js +167 -36
- package/dist/cjs/sse.js +201 -34
- package/dist/cjs/url.js +191 -45
- package/dist/cjs/utils.js +222 -48
- package/dist/cjs/worker.js +6 -6
- package/dist/cjs/ws.js +32 -16
- package/dist/esm/aws-sigv4.js +137 -20
- package/dist/esm/aws-sigv4.js.map +1 -1
- package/dist/esm/cache.js +101 -21
- package/dist/esm/cache.js.map +1 -1
- package/dist/esm/circuit-breaker.js +69 -7
- package/dist/esm/circuit-breaker.js.map +1 -1
- package/dist/esm/client.js +838 -191
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/cookie-parser.js +110 -9
- package/dist/esm/cookie-parser.js.map +1 -1
- package/dist/esm/cookie-store.js +141 -36
- package/dist/esm/cookie-store.js.map +1 -1
- package/dist/esm/core.js +501 -63
- package/dist/esm/core.js.map +1 -1
- package/dist/esm/dedup.js +58 -18
- package/dist/esm/dedup.js.map +1 -1
- package/dist/esm/digest.js +185 -23
- package/dist/esm/digest.js.map +1 -1
- package/dist/esm/graphql.js +164 -24
- package/dist/esm/graphql.js.map +1 -1
- package/dist/esm/headers.js +362 -48
- package/dist/esm/headers.js.map +1 -1
- package/dist/esm/interceptors.js +285 -29
- package/dist/esm/interceptors.js.map +1 -1
- package/dist/esm/lifecycle.js +89 -40
- package/dist/esm/lifecycle.js.map +1 -1
- package/dist/esm/logging.js +169 -16
- package/dist/esm/logging.js.map +1 -1
- package/dist/esm/mod.js +3 -2
- package/dist/esm/mod.js.map +1 -1
- package/dist/esm/pagination.js +261 -28
- package/dist/esm/pagination.js.map +1 -1
- package/dist/esm/progress.js +282 -52
- package/dist/esm/progress.js.map +1 -1
- package/dist/esm/proxy.js +413 -0
- package/dist/esm/proxy.js.map +1 -0
- package/dist/esm/response.js +316 -47
- package/dist/esm/response.js.map +1 -1
- package/dist/esm/socks5.js +167 -36
- package/dist/esm/socks5.js.map +1 -1
- package/dist/esm/sse.js +201 -34
- package/dist/esm/sse.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/url.js +191 -45
- package/dist/esm/url.js.map +1 -1
- package/dist/esm/utils.js +222 -48
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/worker.js +6 -6
- package/dist/esm/worker.js.map +1 -1
- package/dist/esm/ws.js +32 -16
- package/dist/esm/ws.js.map +1 -1
- package/dist/types/aws-sigv4.d.ts.map +1 -1
- package/dist/types/cache.d.ts +27 -2
- package/dist/types/cache.d.ts.map +1 -1
- package/dist/types/circuit-breaker.d.ts +14 -1
- package/dist/types/circuit-breaker.d.ts.map +1 -1
- package/dist/types/client.d.ts +98 -23
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/cookie-parser.d.ts +0 -17
- package/dist/types/cookie-parser.d.ts.map +1 -1
- package/dist/types/cookie-store.d.ts.map +1 -1
- package/dist/types/core.d.ts +109 -25
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/dedup.d.ts +0 -7
- package/dist/types/dedup.d.ts.map +1 -1
- package/dist/types/digest.d.ts +31 -37
- package/dist/types/digest.d.ts.map +1 -1
- package/dist/types/graphql.d.ts.map +1 -1
- package/dist/types/headers.d.ts +62 -29
- package/dist/types/headers.d.ts.map +1 -1
- package/dist/types/interceptors.d.ts +102 -0
- package/dist/types/interceptors.d.ts.map +1 -1
- package/dist/types/lifecycle.d.ts +19 -2
- package/dist/types/lifecycle.d.ts.map +1 -1
- package/dist/types/logging.d.ts +23 -4
- package/dist/types/logging.d.ts.map +1 -1
- package/dist/types/mod.d.ts +5 -3
- package/dist/types/mod.d.ts.map +1 -1
- package/dist/types/pagination.d.ts +0 -25
- package/dist/types/pagination.d.ts.map +1 -1
- package/dist/types/progress.d.ts +1 -1
- package/dist/types/progress.d.ts.map +1 -1
- package/dist/types/proxy.d.ts +50 -0
- package/dist/types/proxy.d.ts.map +1 -0
- package/dist/types/response.d.ts +7 -1
- package/dist/types/response.d.ts.map +1 -1
- package/dist/types/socks5.d.ts.map +1 -1
- package/dist/types/sse.d.ts.map +1 -1
- package/dist/types/types.d.ts +139 -5
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/url.d.ts +0 -14
- package/dist/types/url.d.ts.map +1 -1
- package/dist/types/utils.d.ts.map +1 -1
- package/dist/types/worker.d.ts +6 -6
- package/dist/types/worker.d.ts.map +1 -1
- package/dist/types/ws.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/pagination.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/pagination.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/progress.js
CHANGED
|
@@ -48,8 +48,16 @@ export class ProgressTracker {
|
|
|
48
48
|
smoothedRate = 0;
|
|
49
49
|
smoothing;
|
|
50
50
|
_done = false;
|
|
51
|
-
// Throttle state
|
|
52
|
-
|
|
51
|
+
// Throttle state.
|
|
52
|
+
//
|
|
53
|
+
// `-Infinity` rather than 0: the gate is `now - lastEmitMs >= minIntervalMs`
|
|
54
|
+
// and `now` comes from `performance.now()`, which is time since *process*
|
|
55
|
+
// start. With a 0 baseline the very first update passes only once the
|
|
56
|
+
// process has been alive for a full interval, so for the first second of
|
|
57
|
+
// any CLI or serverless invocation **no progress event was emitted at all**.
|
|
58
|
+
// A transfer starting at t=200 ms and finishing at t=800 ms reported
|
|
59
|
+
// nothing but the forced final snapshot — a progress bar that never moves.
|
|
60
|
+
lastEmitMs = -Infinity;
|
|
53
61
|
minIntervalMs;
|
|
54
62
|
onProgress;
|
|
55
63
|
constructor(total, options = {}) {
|
|
@@ -118,8 +126,13 @@ export class ProgressTracker {
|
|
|
118
126
|
this.lastMs = now;
|
|
119
127
|
this.lastLoaded = this.loaded;
|
|
120
128
|
}
|
|
129
|
+
// Clamped at BOTH ends. The upper clamp was there; a negative chunk — a
|
|
130
|
+
// caller bug, or a Content-Length revised downward mid-transfer — put
|
|
131
|
+
// `percent` below zero and every progress line rendered "(-50.0%)". A
|
|
132
|
+
// running total of transferred bytes cannot be meaningfully negative, so
|
|
133
|
+
// the ratio is bounded to [0, 100].
|
|
121
134
|
const percent = this.total !== null && this.total > 0
|
|
122
|
-
? Math.min(100, (this.loaded / this.total) * 100)
|
|
135
|
+
? Math.min(100, Math.max(0, (this.loaded / this.total) * 100))
|
|
123
136
|
: null;
|
|
124
137
|
const eta = this.total !== null && this.smoothedRate > 0
|
|
125
138
|
? Math.max(0, ((this.total - this.loaded) / this.smoothedRate) * 1000)
|
|
@@ -178,41 +191,94 @@ export function withUploadProgress(body, total, options = {}) {
|
|
|
178
191
|
},
|
|
179
192
|
});
|
|
180
193
|
}
|
|
194
|
+
// PULL-BASED, not start()-based. The old implementation drained the whole
|
|
195
|
+
// source inside start(), enqueueing every chunk before the transport read a
|
|
196
|
+
// single byte — a large upload was fully buffered in memory and the
|
|
197
|
+
// ReadableStream highWaterMark bought nothing. pull() reads one chunk per
|
|
198
|
+
// demand, so backpressure reaches the source.
|
|
199
|
+
let reader = null;
|
|
200
|
+
let onUploadAbort = null;
|
|
201
|
+
// Distinguishes an end-of-stream from a cancellation, which a pending
|
|
202
|
+
// `read()` reports identically. `withDownloadProgress` already kept this
|
|
203
|
+
// flag; without it here, aborting an upload ran the `done` branch below —
|
|
204
|
+
// `tracker.complete()` and `controller.close()` — on the path that was
|
|
205
|
+
// aborting, so the transfer was still announced as finished and 100% done
|
|
206
|
+
// even after removing the `complete()` from the abort handler itself.
|
|
207
|
+
let aborted = false;
|
|
208
|
+
const detach = () => {
|
|
209
|
+
if (onUploadAbort) {
|
|
210
|
+
options.signal?.removeEventListener("abort", onUploadAbort);
|
|
211
|
+
onUploadAbort = null;
|
|
212
|
+
}
|
|
213
|
+
};
|
|
181
214
|
const stream = new ReadableStream({
|
|
182
|
-
|
|
183
|
-
const reader = source.getReader();
|
|
215
|
+
start(controller) {
|
|
184
216
|
// Handle already-aborted signal immediately
|
|
185
217
|
if (options.signal?.aborted) {
|
|
186
|
-
reader.cancel("aborted").catch(() => { });
|
|
187
218
|
controller.error(new DOMException("Upload aborted", "AbortError"));
|
|
188
219
|
return;
|
|
189
220
|
}
|
|
190
|
-
|
|
191
|
-
|
|
221
|
+
reader = source.getReader();
|
|
222
|
+
onUploadAbort = () => {
|
|
223
|
+
if (aborted)
|
|
224
|
+
return;
|
|
225
|
+
aborted = true;
|
|
226
|
+
const r = reader;
|
|
227
|
+
reader = null;
|
|
228
|
+
void r?.cancel("aborted").catch(() => { });
|
|
229
|
+
// The tracker is deliberately NOT completed here. `complete()` reports
|
|
230
|
+
// `done: true` and, because `done` is what forces the final percent,
|
|
231
|
+
// `percent: 100`: an upload aborted 10 bytes into a 100-byte body was
|
|
232
|
+
// announced to every `onProgress` listener as a finished, 100%-complete
|
|
233
|
+
// transfer. The caller learns the real outcome from the AbortError the
|
|
234
|
+
// stream is errored with, which is the same contract
|
|
235
|
+
// `withDownloadProgress` already followed on abort.
|
|
192
236
|
controller.error(new DOMException("Upload aborted", "AbortError"));
|
|
193
237
|
};
|
|
194
|
-
// Removed in
|
|
195
|
-
// signal do not accumulate listeners (leak fix).
|
|
238
|
+
// Removed in detach() on close/cancel/error so repeated uploads sharing
|
|
239
|
+
// one signal do not accumulate listeners (leak fix).
|
|
196
240
|
options.signal?.addEventListener("abort", onUploadAbort, { once: true });
|
|
241
|
+
},
|
|
242
|
+
async pull(controller) {
|
|
243
|
+
// Captured once, before the await. The abort handler nulls the shared
|
|
244
|
+
// `reader` while a read is pending, and re-reading the variable after
|
|
245
|
+
// the await meant `releaseLock()` below dereferenced `null`.
|
|
246
|
+
const r = reader;
|
|
247
|
+
if (!r)
|
|
248
|
+
return;
|
|
197
249
|
try {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
250
|
+
const { done, value } = await r.read();
|
|
251
|
+
if (done) {
|
|
252
|
+
detach();
|
|
253
|
+
if (reader === r)
|
|
254
|
+
reader = null;
|
|
255
|
+
r.releaseLock();
|
|
256
|
+
// `done` here can just as well mean "cancelled by the abort
|
|
257
|
+
// handler", in which case the stream is already errored and the
|
|
258
|
+
// transfer must not be reported as a completed one.
|
|
259
|
+
if (!aborted) {
|
|
201
260
|
tracker.complete();
|
|
202
261
|
controller.close();
|
|
203
|
-
break;
|
|
204
262
|
}
|
|
205
|
-
|
|
206
|
-
controller.enqueue(value);
|
|
263
|
+
return;
|
|
207
264
|
}
|
|
265
|
+
tracker.update(value.byteLength);
|
|
266
|
+
controller.enqueue(value);
|
|
208
267
|
}
|
|
209
268
|
catch (err) {
|
|
210
|
-
|
|
269
|
+
detach();
|
|
270
|
+
if (reader === r)
|
|
271
|
+
reader = null;
|
|
272
|
+
if (!aborted)
|
|
273
|
+
tracker.complete();
|
|
211
274
|
controller.error(err);
|
|
212
275
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
276
|
+
},
|
|
277
|
+
cancel(reason) {
|
|
278
|
+
detach();
|
|
279
|
+
const r = reader;
|
|
280
|
+
reader = null;
|
|
281
|
+
void r?.cancel(reason).catch(() => { });
|
|
216
282
|
},
|
|
217
283
|
});
|
|
218
284
|
return { stream, tracker };
|
|
@@ -246,44 +312,76 @@ export function withDownloadProgress(response, options = {}) {
|
|
|
246
312
|
return { response, tracker };
|
|
247
313
|
}
|
|
248
314
|
const body = response.body;
|
|
315
|
+
// PULL-BASED for the same reason as withUploadProgress: the start()-based
|
|
316
|
+
// version buffered the entire download in memory before the consumer read it.
|
|
317
|
+
let reader = null;
|
|
318
|
+
let aborted = false;
|
|
319
|
+
let onAbort = null;
|
|
320
|
+
const detach = () => {
|
|
321
|
+
if (onAbort) {
|
|
322
|
+
options.signal?.removeEventListener("abort", onAbort);
|
|
323
|
+
onAbort = null;
|
|
324
|
+
}
|
|
325
|
+
};
|
|
249
326
|
const trackedStream = new ReadableStream({
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
327
|
+
start(controller) {
|
|
328
|
+
if (options.signal?.aborted) {
|
|
329
|
+
aborted = true;
|
|
330
|
+
controller.error(new DOMException("Download aborted", "AbortError"));
|
|
331
|
+
return;
|
|
332
|
+
}
|
|
333
|
+
reader = body.getReader();
|
|
334
|
+
onAbort = () => {
|
|
254
335
|
if (aborted)
|
|
255
336
|
return;
|
|
256
337
|
aborted = true;
|
|
338
|
+
const r = reader;
|
|
339
|
+
reader = null;
|
|
257
340
|
// Ensure tracker knows we're aborting (don't wait for complete)
|
|
258
|
-
|
|
341
|
+
void r?.cancel("aborted").catch(() => { });
|
|
259
342
|
controller.error(new DOMException("Download aborted", "AbortError"));
|
|
260
343
|
};
|
|
261
344
|
options.signal?.addEventListener("abort", onAbort, { once: true });
|
|
345
|
+
},
|
|
346
|
+
async pull(controller) {
|
|
347
|
+
// Captured before the await, for the same reason as the upload wrapper:
|
|
348
|
+
// the abort handler nulls the shared `reader` while a read is pending.
|
|
349
|
+
const r = reader;
|
|
350
|
+
if (!r)
|
|
351
|
+
return;
|
|
262
352
|
try {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
353
|
+
const { done, value } = await r.read();
|
|
354
|
+
if (done) {
|
|
355
|
+
detach();
|
|
356
|
+
if (reader === r)
|
|
357
|
+
reader = null;
|
|
358
|
+
r.releaseLock();
|
|
359
|
+
// Ensure tracker is marked as complete even on error
|
|
360
|
+
if (!aborted) {
|
|
266
361
|
tracker.complete();
|
|
267
|
-
controller.close();
|
|
268
|
-
break;
|
|
269
362
|
}
|
|
270
|
-
|
|
271
|
-
|
|
363
|
+
controller.close();
|
|
364
|
+
return;
|
|
272
365
|
}
|
|
366
|
+
tracker.update(value.byteLength);
|
|
367
|
+
controller.enqueue(value);
|
|
273
368
|
}
|
|
274
369
|
catch (err) {
|
|
370
|
+
detach();
|
|
371
|
+
if (reader === r)
|
|
372
|
+
reader = null;
|
|
275
373
|
// Ensure tracker is marked as complete even on error
|
|
276
374
|
if (!aborted) {
|
|
277
375
|
tracker.complete();
|
|
278
376
|
}
|
|
279
377
|
controller.error(err);
|
|
280
378
|
}
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
}
|
|
379
|
+
},
|
|
380
|
+
cancel(reason) {
|
|
381
|
+
detach();
|
|
382
|
+
const r = reader;
|
|
383
|
+
reader = null;
|
|
384
|
+
void r?.cancel(reason).catch(() => { });
|
|
287
385
|
},
|
|
288
386
|
});
|
|
289
387
|
const trackedResponse = new Response(trackedStream, {
|
|
@@ -291,6 +389,21 @@ export function withDownloadProgress(response, options = {}) {
|
|
|
291
389
|
statusText: response.statusText,
|
|
292
390
|
headers: response.headers,
|
|
293
391
|
});
|
|
392
|
+
// A reconstructed Response reports url === "" and redirected === false, which
|
|
393
|
+
// silently broke anything downstream that reads them. `url` and `redirected`
|
|
394
|
+
// are prototype getters, so shadow them with own properties on the instance.
|
|
395
|
+
for (const prop of ["url", "redirected", "type"]) {
|
|
396
|
+
try {
|
|
397
|
+
Object.defineProperty(trackedResponse, prop, {
|
|
398
|
+
value: response[prop],
|
|
399
|
+
enumerable: true,
|
|
400
|
+
configurable: true,
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
catch {
|
|
404
|
+
/* non-configurable in this runtime — leave the default in place */
|
|
405
|
+
}
|
|
406
|
+
}
|
|
294
407
|
return { response: trackedResponse, tracker };
|
|
295
408
|
}
|
|
296
409
|
// ============================================================================
|
|
@@ -346,10 +459,23 @@ export async function collectStream(stream, total, options = {}) {
|
|
|
346
459
|
// Handle already-aborted signal
|
|
347
460
|
if (options.signal?.aborted) {
|
|
348
461
|
reader.cancel("aborted").catch(() => { });
|
|
462
|
+
reader.releaseLock();
|
|
349
463
|
throw new DOMException("Stream aborted", "AbortError");
|
|
350
464
|
}
|
|
465
|
+
// An abort has to REJECT, not merely stop the reads.
|
|
466
|
+
//
|
|
467
|
+
// `reader.cancel()` resolves the pending `read()` with `{ done: true }`,
|
|
468
|
+
// which is indistinguishable from an ordinary end-of-stream: the loop broke
|
|
469
|
+
// out, `tracker.complete()` ran, and the truncated buffer was returned as a
|
|
470
|
+
// successful result. A caller collecting a 100-byte body under an abort that
|
|
471
|
+
// arrived after 3 bytes got `data: 3 bytes, isDone: true` and no error, so
|
|
472
|
+
// the partial body was stored as if it were the whole one. The sibling API
|
|
473
|
+
// `streamWithProgress` throws `AbortError` for exactly this case, so the two
|
|
474
|
+
// disagreed about the same event.
|
|
475
|
+
let aborted = false;
|
|
351
476
|
// Register abort handler (removed in the finally below — leak fix)
|
|
352
477
|
const abortHandler = () => {
|
|
478
|
+
aborted = true;
|
|
353
479
|
reader.cancel("aborted").catch(() => { });
|
|
354
480
|
};
|
|
355
481
|
if (options.signal) {
|
|
@@ -358,11 +484,17 @@ export async function collectStream(stream, total, options = {}) {
|
|
|
358
484
|
try {
|
|
359
485
|
while (true) {
|
|
360
486
|
const { done, value } = await reader.read();
|
|
487
|
+
// Once the abort handler has cancelled the reader, this read — including
|
|
488
|
+
// one already in flight — resolves `{ done: true }`, so the loop always
|
|
489
|
+
// breaks and the check below is reached. There is no path that skips it.
|
|
361
490
|
if (done)
|
|
362
491
|
break;
|
|
363
492
|
chunks.push(value);
|
|
364
493
|
tracker.update(value.byteLength);
|
|
365
494
|
}
|
|
495
|
+
// `done` above can equally mean "cancelled by the abort handler".
|
|
496
|
+
if (aborted)
|
|
497
|
+
throw new DOMException("Stream aborted", "AbortError");
|
|
366
498
|
}
|
|
367
499
|
finally {
|
|
368
500
|
reader.releaseLock();
|
|
@@ -421,6 +553,17 @@ export class MultiPartProgressAggregator {
|
|
|
421
553
|
* @returns A ProgressTracker instance for this part.
|
|
422
554
|
*/
|
|
423
555
|
createPartTracker(partIndex, partSize, options = {}) {
|
|
556
|
+
// "Create or retrieve", as this method documents itself. It always
|
|
557
|
+
// created: a second call for the same index built a fresh tracker and
|
|
558
|
+
// overwrote the stored one, so the bytes already recorded for that part
|
|
559
|
+
// were silently discarded and the aggregate fell back to 0 — a caller
|
|
560
|
+
// re-acquiring a tracker it had lost a handle to erased the part's
|
|
561
|
+
// progress rather than recovering it. The first call's `partSize` wins,
|
|
562
|
+
// because changing it would restate a total the bytes were counted
|
|
563
|
+
// against.
|
|
564
|
+
const existing = this.trackers.get(partIndex);
|
|
565
|
+
if (existing)
|
|
566
|
+
return existing;
|
|
424
567
|
this.totals.set(partIndex, partSize);
|
|
425
568
|
const tracker = new ProgressTracker(partSize, {
|
|
426
569
|
...options,
|
|
@@ -466,7 +609,13 @@ export class MultiPartProgressAggregator {
|
|
|
466
609
|
maxElapsed = snap.elapsed;
|
|
467
610
|
}
|
|
468
611
|
const hasTotal = totalBytes > 0;
|
|
469
|
-
|
|
612
|
+
// Bounded at BOTH ends, for the same reason `ProgressTracker._snapshot`
|
|
613
|
+
// bounds its own: a negative chunk — a caller bug, or a `Content-Length`
|
|
614
|
+
// revised downward mid-transfer — put the aggregate below zero and
|
|
615
|
+
// rendered "(-50.0%)". The tracker was clamped in an earlier round and
|
|
616
|
+
// the aggregate that sums the same snapshots was not, so the overall view
|
|
617
|
+
// was the one place the fix did not reach.
|
|
618
|
+
const percent = hasTotal ? Math.max(0, Math.min(100, (totalLoaded / totalBytes) * 100)) : null;
|
|
470
619
|
const eta = hasTotal && totalRate > 0
|
|
471
620
|
? Math.max(0, ((totalBytes - totalLoaded) / totalRate) * 1000)
|
|
472
621
|
: null;
|
|
@@ -512,6 +661,19 @@ export function xhrFetch(url, options) {
|
|
|
512
661
|
reject(new Error("XMLHttpRequest is not available in this runtime. Use fetch() instead."));
|
|
513
662
|
return;
|
|
514
663
|
}
|
|
664
|
+
// `XHRResult.body` is a string, but `responseType` is typed with the whole
|
|
665
|
+
// XHR enum — and everything outside "" / "text" hands back a parsed value
|
|
666
|
+
// rather than text. `String(xhr.response)` turned an ArrayBuffer, a Blob
|
|
667
|
+
// and a parsed JSON object alike into the literal string
|
|
668
|
+
// "[object Object]", which is indistinguishable from a body and is not one:
|
|
669
|
+
// the upload path is the reason this function exists, and a binary
|
|
670
|
+
// response came back as seven characters of nothing. Refused here, before
|
|
671
|
+
// anything is constructed, so the request is never opened.
|
|
672
|
+
if (options.responseType && options.responseType !== "text") {
|
|
673
|
+
reject(new TypeError(`xhrFetch: responseType "${options.responseType}" cannot produce a text body. ` +
|
|
674
|
+
`XHRResult.body is a string — use "text", or omit responseType.`));
|
|
675
|
+
return;
|
|
676
|
+
}
|
|
515
677
|
const xhr = new _XHR();
|
|
516
678
|
const uploadTracker = new ProgressTracker(null, {
|
|
517
679
|
...(options.onUploadProgress !== undefined ? { onProgress: options.onUploadProgress } : {}),
|
|
@@ -553,21 +715,53 @@ export function xhrFetch(url, options) {
|
|
|
553
715
|
downloadTracker.update(e.loaded - downloadTracker.bytesLoaded);
|
|
554
716
|
});
|
|
555
717
|
}
|
|
556
|
-
// Abort signal
|
|
557
|
-
|
|
718
|
+
// Abort signal. The listener is detached on settle: with `{ once: true }`
|
|
719
|
+
// it only self-removes when it actually fires, so a caller reusing one
|
|
720
|
+
// signal across many xhrFetch calls accumulated listeners — and each one
|
|
721
|
+
// kept the whole XHR + promise closures alive after the request finished.
|
|
722
|
+
const onAbort = () => {
|
|
558
723
|
xhr.abort();
|
|
559
724
|
reject(new DOMException("Request aborted", "AbortError"));
|
|
560
|
-
}
|
|
725
|
+
};
|
|
726
|
+
const detach = () => options.signal?.removeEventListener("abort", onAbort);
|
|
727
|
+
options.signal?.addEventListener("abort", onAbort, { once: true });
|
|
728
|
+
if (options.signal?.aborted) {
|
|
729
|
+
detach();
|
|
730
|
+
onAbort();
|
|
731
|
+
return;
|
|
732
|
+
}
|
|
561
733
|
xhr.addEventListener("load", () => {
|
|
734
|
+
detach();
|
|
562
735
|
downloadTracker.complete();
|
|
563
736
|
// Parse response headers
|
|
564
737
|
const rawHeaders = xhr.getAllResponseHeaders();
|
|
565
738
|
const headers = {};
|
|
566
|
-
for (const line of rawHeaders.
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
739
|
+
for (const line of rawHeaders.split(/[\r\n]+/)) {
|
|
740
|
+
// Split on the colon, not on `": "`. The separator is the *last* space
|
|
741
|
+
// before the value, so `trim()` first stripped the single space of an
|
|
742
|
+
// empty value — `"X-Empty: \r\n"` became `"X-Empty:"`, the search
|
|
743
|
+
// for `": "` missed it, and the header was dropped. A response whose
|
|
744
|
+
// headers were all empty-valued normalized to `{}`.
|
|
745
|
+
const idx = line.indexOf(":");
|
|
746
|
+
if (idx <= 0)
|
|
747
|
+
continue;
|
|
748
|
+
const name = line.slice(0, idx).trim().toLowerCase();
|
|
749
|
+
if (name === "")
|
|
750
|
+
continue;
|
|
751
|
+
const value = line.slice(idx + 1).trim();
|
|
752
|
+
// `__proto__` is a legal header name; a [[Set]] would send it to the
|
|
753
|
+
// inherited setter, which ignores a primitive, and the header would
|
|
754
|
+
// vanish rather than overwrite anything.
|
|
755
|
+
if (name === "__proto__") {
|
|
756
|
+
Object.defineProperty(headers, name, {
|
|
757
|
+
value,
|
|
758
|
+
writable: true,
|
|
759
|
+
enumerable: true,
|
|
760
|
+
configurable: true,
|
|
761
|
+
});
|
|
762
|
+
continue;
|
|
570
763
|
}
|
|
764
|
+
headers[name] = value;
|
|
571
765
|
}
|
|
572
766
|
resolve({
|
|
573
767
|
status: xhr.status,
|
|
@@ -577,12 +771,32 @@ export function xhrFetch(url, options) {
|
|
|
577
771
|
});
|
|
578
772
|
});
|
|
579
773
|
xhr.addEventListener("error", () => {
|
|
774
|
+
detach();
|
|
580
775
|
reject(new TypeError("Network request failed"));
|
|
581
776
|
});
|
|
582
777
|
xhr.addEventListener("timeout", () => {
|
|
778
|
+
detach();
|
|
583
779
|
reject(new TypeError("Request timed out"));
|
|
584
780
|
});
|
|
585
|
-
xhr.
|
|
781
|
+
xhr.addEventListener("abort", () => {
|
|
782
|
+
// Covers aborts initiated from inside the XHR (not via the signal).
|
|
783
|
+
detach();
|
|
784
|
+
reject(new DOMException("Request aborted", "AbortError"));
|
|
785
|
+
});
|
|
786
|
+
try {
|
|
787
|
+
xhr.send(options.body ?? null);
|
|
788
|
+
}
|
|
789
|
+
catch (err) {
|
|
790
|
+
// A body the implementation refuses — an invalid state, a type it will
|
|
791
|
+
// not put on the wire — throws straight out of the executor. The promise
|
|
792
|
+
// rejects with it, so the caller sees an error, but every handler above
|
|
793
|
+
// had already been wired and none of them runs on this path: the
|
|
794
|
+
// signal's `abort` listener stayed attached, holding this XHR and these
|
|
795
|
+
// closures alive for as long as the caller keeps the signal. The detach
|
|
796
|
+
// that every other exit performs happens here too.
|
|
797
|
+
detach();
|
|
798
|
+
throw err;
|
|
799
|
+
}
|
|
586
800
|
});
|
|
587
801
|
}
|
|
588
802
|
// ============================================================================
|
|
@@ -598,13 +812,26 @@ const UNITS = ["B", "KB", "MB", "GB", "TB"];
|
|
|
598
812
|
* @returns Formatted string (e.g. "1.18 MB").
|
|
599
813
|
*/
|
|
600
814
|
export function formatBytes(bytes, decimals = 2) {
|
|
815
|
+
if (Number.isNaN(bytes))
|
|
816
|
+
return "NaN B";
|
|
817
|
+
if (bytes === Infinity)
|
|
818
|
+
return "∞";
|
|
819
|
+
if (bytes === -Infinity)
|
|
820
|
+
return "-∞";
|
|
601
821
|
if (bytes === 0)
|
|
602
822
|
return "0 B";
|
|
603
823
|
const k = 1024;
|
|
604
824
|
const dm = Math.max(0, decimals);
|
|
605
|
-
const
|
|
606
|
-
const
|
|
607
|
-
|
|
825
|
+
const sign = bytes < 0 ? "-" : "";
|
|
826
|
+
const mag = Math.abs(bytes);
|
|
827
|
+
// Clamp the unit index into range. Math.log(0.5) / Math.log(1024) floors to
|
|
828
|
+
// -1, and Math.log of a negative or NaN is NaN — either one indexed past the
|
|
829
|
+
// end of UNITS and rendered "512 undefined" or "NaN undefined". A transfer
|
|
830
|
+
// rate below 1 byte/s is ordinary on a slow link, so formatRate — and with
|
|
831
|
+
// it every progress line — was affected.
|
|
832
|
+
const i = Math.min(Math.max(0, Math.floor(Math.log(mag) / Math.log(k))), UNITS.length - 1);
|
|
833
|
+
const unit = UNITS[i];
|
|
834
|
+
return `${sign}${parseFloat((mag / Math.pow(k, i)).toFixed(dm))} ${unit}`;
|
|
608
835
|
}
|
|
609
836
|
/**
|
|
610
837
|
* Format a transfer rate as human-readable bytes/sec.
|
|
@@ -640,7 +867,7 @@ export function formatETA(ms) {
|
|
|
640
867
|
* Build a human-readable progress string.
|
|
641
868
|
*
|
|
642
869
|
* Output format: "{loaded} / {total} ({percent}) @ {rate} ETA {eta}"
|
|
643
|
-
* Example: "
|
|
870
|
+
* Example: "488.28 KB / 976.56 KB (50.0%) @ 97.66 KB/s ETA 5s"
|
|
644
871
|
*
|
|
645
872
|
* @param snap Progress snapshot
|
|
646
873
|
* @returns Formatted progress string
|
|
@@ -683,7 +910,10 @@ export function formatProgress(snap) {
|
|
|
683
910
|
*/
|
|
684
911
|
export function throttleProgress(fn, hz = 10) {
|
|
685
912
|
const minInterval = hz > 0 ? 1000 / hz : 0;
|
|
686
|
-
|
|
913
|
+
// See ProgressTracker.lastEmitMs: a 0 baseline measures against process
|
|
914
|
+
// start, so the first call was dropped for the first interval of the
|
|
915
|
+
// process's life.
|
|
916
|
+
let lastCall = -Infinity;
|
|
687
917
|
return (snap) => {
|
|
688
918
|
const now = perfNow();
|
|
689
919
|
// Always emit final snapshot
|