@chrismessina/raycast-downloader 0.1.0 → 0.1.2

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 CHANGED
@@ -33,7 +33,9 @@ watchStatus(ticket.id, {
33
33
 
34
34
  **Survives:** Raycast dismissal, the command being unloaded, the parent process exiting.
35
35
 
36
- **Does not survive** (without user action): machine sleep, power loss, unattended network drops. Partial files are always retained, so an interrupted transfer resumes via HTTP Range instead of starting over.
36
+ **Does not survive** (without user action): machine sleep, power loss, unattended network drops. A partial file is retained so an interrupted transfer resumes via HTTP Range instead of starting over.
37
+
38
+ **One exception, and it is deliberate:** a partial is discarded when it cannot be proven safe to resume from. An unfollowed 3xx leaves the redirect body in the `.part` file; that tail is rolled back, and if the rollback cannot be verified the partial is deleted rather than kept. `curl -C -` appends from the file's current size, so resuming onto unverified bytes would splice the real file after redirect HTML and publish it under the user's filename. Progress is recoverable; a corrupt file is not. If the partial cannot be deleted either, the status records the failure and consumers must not resume that path.
37
39
 
38
40
  This is stated narrowly on purpose. Detached spawn solves parent-process-exit — the problem Raycast creates. It is not a download supervisor.
39
41
 
@@ -119,8 +121,25 @@ Import from the root or from a subpath (`@chrismessina/raycast-downloader/paths`
119
121
 
120
122
  ## Notes for consumers
121
123
 
124
+ **A 3xx is never a successful download — including with redirects on.** Success is strictly 2xx. With redirects on (the default) curl follows the hops and reports the final 2xx, so the usual redirect is invisible to you; but `--location` only follows a response carrying a usable `Location`, so a **304** (you sent a conditional header) or a **300** ends the transfer as itself. Those now fail with `http_client` rather than publishing an empty or stale file. With `followRedirects: false`, curl writes the redirect *body* to the `.part` file and exits 0 — that stub is discarded and the download fails with "The server redirected (HTTP 302) but redirects are disabled." Expose the preference if your users need it; don't expect a 302 to still produce a file.
125
+
122
126
  **Never put a signed URL in `meta`.** It is persisted to the status file. Store an identifier you can re-resolve from instead.
123
127
 
128
+ **Validating `outputPath` is yours.** Layer A writes to the path you hand it, and does not check that the path lands where you meant. That is deliberate — the user picks the download location, and a library that overrode it would be wrong more often than right — but it means a path you derived from anything untrusted is your problem, not the library's. A `Content-Disposition` filename, an API-supplied name, or a title pulled from a page can all contain `../` or a path separator, and a symlink in the destination directory can redirect the final rename after your own check passed.
129
+
130
+ `paths` exports the two pieces for this, and the only reason they are not applied for you is that doing so would constrain legitimate destinations:
131
+
132
+ ```ts
133
+ import { isContained, sanitizeFilename } from "@chrismessina/raycast-downloader/paths";
134
+
135
+ const filename = sanitizeFilename(remoteName); // strips separators and traversal runs
136
+ const outputPath = join(downloadsDir, filename);
137
+ // Note the order: candidate first, root second.
138
+ if (!isContained(outputPath, downloadsDir)) throw new Error("refusing to write outside the download directory");
139
+ ```
140
+
141
+ `isContained` is component-aware and resolves existing symlink ancestors, so it is doing more than a `startsWith` on the two strings.
142
+
124
143
  **Retry policy is yours.** Consumers differ too much to share one: `DownloadError.retryable` gives you the signal, the loop stays in your code.
125
144
 
126
145
  **`uniquePath` numbering starts where you say.** Existing extensions differ (`(1)` vs `(2)`); `startAt` preserves that, because unifying it silently renames files users already have.
package/dist/curl.d.ts CHANGED
@@ -94,6 +94,8 @@ export interface ClassifyCurlInput {
94
94
  stderrTail?: string;
95
95
  /** True when the local process deliberately terminated curl. */
96
96
  cancelled?: boolean;
97
+ /** Whether the request was made with redirects enabled. Default true. */
98
+ followRedirects?: boolean;
97
99
  }
98
100
  /**
99
101
  * Turn a finished curl invocation into a typed error.
@@ -1 +1 @@
1
- {"version":3,"file":"curl.d.ts","sourceRoot":"","sources":["../src/curl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,aAAa,EAA0B,KAAK,UAAU,EAAsB,MAAM,UAAU,CAAC;AAetG,wBAAgB,OAAO,IAAI,OAAO,CAWjC;AAED,yFAAyF;AACzF,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAC9C,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA+ClE;AAuBD,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CA0BlE;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAW3E;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAQ/E;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAU1D;AAwBD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,aAAa,CAwB3E"}
1
+ {"version":3,"file":"curl.d.ts","sourceRoot":"","sources":["../src/curl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,aAAa,EAA0B,KAAK,UAAU,EAAsB,MAAM,UAAU,CAAC;AAetG,wBAAgB,OAAO,IAAI,OAAO,CAWjC;AAED,yFAAyF;AACzF,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAC9C,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA+ClE;AAuBD,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CA0BlE;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAW3E;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAQ/E;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAU1D;AAwBD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,aAAa,CA4C3E"}
package/dist/curl.js CHANGED
@@ -225,10 +225,26 @@ const EXIT_CODES = {
225
225
  * "curl exited 22".
226
226
  */
227
227
  function classifyCurlFailure(input) {
228
- const { exitCode, signal, httpCode, stderrTail, cancelled } = input;
228
+ const { exitCode, signal, httpCode, stderrTail, cancelled, followRedirects = true } = input;
229
229
  if (cancelled || signal === "SIGTERM" || signal === "SIGINT") {
230
230
  return new errors_1.DownloadError("cancelled", "Download cancelled.", { exitCode, signal });
231
231
  }
232
+ // A 3xx only reaches here when redirects were DISABLED: with `location` set,
233
+ // curl reports the status of the final hop, never the redirect itself. curl
234
+ // exits 0 for an unfollowed redirect, so without this branch the code falls
235
+ // past EXIT_CODES[0] into the last-resort message and reports
236
+ // "Download failed (curl exit 0)." for a perfectly explicable outcome.
237
+ // Gated on a CLEAN exit: curl exits 47 ("Too many redirects") while reporting
238
+ // a 3xx http_code, and that is a redirect loop, not an unfollowed redirect.
239
+ // Letting this branch win would relabel it.
240
+ if (exitCode === 0 && httpCode !== undefined && httpCode >= 300 && httpCode < 400) {
241
+ return new errors_1.DownloadError(
242
+ // `http_client`, not a new code: the request did not yield the body and
243
+ // the caller must change something (enable redirects, drop a conditional
244
+ // header, pass the final URL) — exactly the non-retryable bucket
245
+ // `http_client` names.
246
+ "http_client", unfollowedRedirectMessage(httpCode, followRedirects), { httpStatus: httpCode, exitCode, signal });
247
+ }
232
248
  if (httpCode !== undefined && httpCode >= 400) {
233
249
  const code = (0, errors_1.classifyHttpStatus)(httpCode);
234
250
  return new errors_1.DownloadError(code, httpErrorMessage(httpCode), { httpStatus: httpCode, exitCode, signal });
@@ -241,6 +257,21 @@ function classifyCurlFailure(input) {
241
257
  const detail = stderrTail?.trim().split("\n").pop()?.trim();
242
258
  return new errors_1.DownloadError("unknown", detail ? `Download failed: ${detail}` : `Download failed (curl exit ${exitCode ?? "unknown"}).`, { exitCode, signal, httpStatus: httpCode });
243
259
  }
260
+ /**
261
+ * Wording for a 3xx that curl exited 0 on.
262
+ *
263
+ * `location` does NOT guarantee the absence of a final 3xx: curl only follows a
264
+ * response that carries a usable `Location`. A 304 (the caller sent a
265
+ * conditional header) and a 300 (multiple choices, no `Location`) both end the
266
+ * transfer as themselves, with redirects fully enabled.
267
+ */
268
+ function unfollowedRedirectMessage(status, followRedirects) {
269
+ if (status === 304)
270
+ return "The server reported the file as unchanged (HTTP 304) and sent no content.";
271
+ if (!followRedirects)
272
+ return `The server redirected (HTTP ${status}) but redirects are disabled.`;
273
+ return `The server returned a redirect that could not be followed (HTTP ${status}).`;
274
+ }
244
275
  function httpErrorMessage(status) {
245
276
  switch (status) {
246
277
  case 401:
package/dist/curl.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"curl.js","sourceRoot":"","sources":["../src/curl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"curl.js","sourceRoot":"","sources":["../src/curl.ts"],"names":[],"mappings":"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"}
package/dist/detach.d.ts CHANGED
@@ -45,6 +45,13 @@ export interface StartDownloadOptions {
45
45
  sizeCheck?: "strict" | "advisory";
46
46
  /** Continue from an existing partial file via HTTP Range. Default true. */
47
47
  resume?: boolean;
48
+ /**
49
+ * Follow HTTP redirects (curl `--location`). Default true.
50
+ *
51
+ * Turning it off is a real choice, not a no-op: an unfollowed 3xx is then a
52
+ * FAILURE, because the body curl writes is the redirect stub, not the file.
53
+ */
54
+ followRedirects?: boolean;
48
55
  speedLimitBytes?: number;
49
56
  stallSeconds?: number;
50
57
  /** Cap transfer rate in bytes/sec. Actually slows the download. */
@@ -1 +1 @@
1
- {"version":3,"file":"detach.d.ts","sourceRoot":"","sources":["../src/detach.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAUH,OAAO,EASL,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAClC,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACjF;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AA2DD;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAWnC;AAED,+EAA+E;AAC/E,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAqI1F;AAuBD,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EACpC,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,OAAO,CAAC,CAoFlB;AAoCD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,CAEpF"}
1
+ {"version":3,"file":"detach.d.ts","sourceRoot":"","sources":["../src/detach.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAUH,OAAO,EASL,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAClC,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACjF;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AA2DD;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAWnC;AAED,+EAA+E;AAC/E,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAuI1F;AAuBD,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EACpC,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,OAAO,CAAC,CAoFlB;AAoCD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,CAEpF"}
package/dist/detach.js CHANGED
@@ -115,7 +115,7 @@ function runnerSearchPaths() {
115
115
  * status, so the caller can immediately watch a file that exists.
116
116
  */
117
117
  async function startDownload(options) {
118
- const { id = (0, node_crypto_1.randomUUID)(), url, outputPath, headers, expectedBytes, resume = true, speedLimitBytes, stallSeconds, limitRateBytes, sizeCheck = "strict", meta, statusDir = (0, status_1.statusDir)(), runnerPath: runnerOverride, notifyOnFinish, } = options;
118
+ const { id = (0, node_crypto_1.randomUUID)(), url, outputPath, headers, expectedBytes, resume = true, followRedirects = true, speedLimitBytes, stallSeconds, limitRateBytes, sizeCheck = "strict", meta, statusDir = (0, status_1.statusDir)(), runnerPath: runnerOverride, notifyOnFinish, } = options;
119
119
  // Rejects an id that could escape statusDir via `join()`. Done before any
120
120
  // path is built from it.
121
121
  (0, status_1.assertSafeId)(id);
@@ -149,6 +149,7 @@ async function startDownload(options) {
149
149
  headers,
150
150
  expectedBytes,
151
151
  resume,
152
+ followRedirects,
152
153
  speedLimitBytes,
153
154
  stallSeconds,
154
155
  limitRateBytes,
@@ -1 +1 @@
1
- {"version":3,"file":"detach.js","sourceRoot":"","sources":["../src/detach.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;AA0IH,gCAWC;AAGD,8CAEC;AAMD,sCAqIC;AAsCD,oCAuFC;AA4CD,8BAEC;AA9cD,2DAA2C;AAC3C,6CAAyC;AACzC,qCAAiD;AACjD,yCAAiC;AAEjC,iCAAiC;AACjC,qCAAyC;AACzC,mCAA0C;AAC1C,qCAUkB;AAuDlB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,gBAAgB;IACvB,4EAA4E;IAC5E,0EAA0E;IAC1E,8EAA8E;IAC9E,IAAI,UAA8B,CAAC;IACnC,IAAI,CAAC;QACH,8DAA8D;QAC9D,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,cAAc,CAA8C,CAAC;QAC7F,UAAU,GAAG,WAAW,EAAE,UAAU,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,qDAAqD;IACvD,CAAC;IAED,OAAO;QACL,2DAA2D;QAC3D,OAAO,CAAC,GAAG,CAAC,yBAAyB;QACrC,yEAAyE;QACzE,sEAAsE;QACtE,qEAAqE;QACrE,6DAA6D;QAC7D,UAAU,CAAC,CAAC,CAAC,IAAA,gBAAI,EAAC,UAAU,EAAE,8BAA8B,CAAC,CAAC,CAAC,CAAC,SAAS;QACzE,yEAAyE;QACzE,oEAAoE;QACpE,IAAA,gBAAI,EAAC,SAAS,EAAE,kBAAkB,CAAC;QACnC,IAAA,gBAAI,EAAC,SAAS,EAAE,WAAW,CAAC;QAC5B,2DAA2D;QAC3D,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,EAAE,kBAAkB,CAAC;QACtG,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,EAAE,WAAW,CAAC;QAC/F,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,8BAA8B,CAAC;QAC7D,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC;QACvC,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC;KACjC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAuB,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,mEAAmE;AACnE,IAAI,cAAkC,CAAC;AAEvC;;;;;GAKG;AACH,SAAgB,UAAU;IACxB,IAAI,cAAc,IAAI,IAAA,oBAAU,EAAC,cAAc,CAAC;QAAE,OAAO,cAAc,CAAC;IAExE,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,EAAE,CAAC;QAC3C,IAAI,IAAA,oBAAU,EAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,cAAc,GAAG,SAAS,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAA,gBAAI,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACtC,CAAC;AAED,+EAA+E;AAC/E,SAAgB,iBAAiB;IAC/B,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,aAAa,CAAC,OAA6B;IAC/D,MAAM,EACJ,EAAE,GAAG,IAAA,wBAAU,GAAE,EACjB,GAAG,EACH,UAAU,EACV,OAAO,EACP,aAAa,EACb,MAAM,GAAG,IAAI,EACb,eAAe,EACf,YAAY,EACZ,cAAc,EACd,SAAS,GAAG,QAAQ,EACpB,IAAI,EACJ,SAAS,GAAG,IAAA,kBAAgB,GAAE,EAC9B,UAAU,EAAE,cAAc,EAC1B,cAAc,GACf,GAAG,OAAO,CAAC;IAEZ,0EAA0E;IAC1E,yBAAyB;IACzB,IAAA,qBAAY,EAAC,EAAE,CAAC,CAAC;IAEjB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC;IAC/E,MAAM,QAAQ,GAAG,GAAG,UAAU,OAAO,CAAC;IACtC,MAAM,MAAM,GAAG,cAAc,IAAI,UAAU,EAAE,CAAC;IAE9C,IAAI,CAAC,IAAA,oBAAU,EAAC,MAAM,CAAC,EAAE,CAAC;QACxB,yEAAyE;QACzE,0DAA0D;QAC1D,MAAM,IAAI,sBAAa,CACrB,YAAY,EACZ,0CAA0C,iBAAiB,EAAE;aAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;aACtB,IAAI,CAAC,IAAI,CAAC,IAAI;YACf,6FAA6F;YAC7F,+CAA+C,CAClD,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,wDAAwD;IACxD,IAAI,CAAC,IAAA,cAAO,GAAE,EAAE,CAAC;QACf,MAAM,IAAI,sBAAa,CACrB,YAAY,EACZ,sEAAsE,CACvE,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,6EAA6E;IAC7E,MAAM,WAAW,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;IAC1D,IAAA,uBAAe,EACb,WAAW,EACX,IAAI,CAAC,SAAS,CAAC;QACb,EAAE;QACF,GAAG;QACH,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,OAAO;QACP,aAAa;QACb,MAAM;QACN,eAAe;QACf,YAAY;QACZ,cAAc;QACd,SAAS;QACT,IAAI;QACJ,cAAc;KACf,CAAC,CACH,CAAC;IAEF,MAAM,KAAK,GAAG,IAAA,0BAAK,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE;QAC3D,wEAAwE;QACxE,yEAAyE;QACzE,0BAA0B;QAC1B,EAAE;QACF,uEAAuE;QACvE,wEAAwE;QACxE,sEAAsE;QACtE,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;QACtC,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,EAAE,CAAC;IAEd,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACtB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,IAAA,oBAAU,EAAC,WAAW,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;QACD,MAAM,IAAI,sBAAa,CAAC,SAAS,EAAE,uCAAuC,CAAC,CAAC;IAC9E,CAAC;IAED,6EAA6E;IAC7E,kDAAkD;IAClD,EAAE;IACF,8EAA8E;IAC9E,8EAA8E;IAC9E,gEAAgE;IAChE,6EAA6E;IAC7E,8EAA8E;IAC9E,2EAA2E;IAC3E,6EAA6E;IAC7E,wCAAwC;IACxC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,qEAAqE;QACrE,uEAAuE;QACvE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAA,oBAAW,EACT;YACE,MAAM,EAAE,CAAC;YACT,EAAE;YACF,GAAG;YACH,WAAW,EAAE,IAAA,2BAAkB,EAAC,GAAG,CAAC,IAAI,GAAG;YAC3C,KAAK,EAAE,UAAU;YACjB,QAAQ;YACR,UAAU;YACV,QAAQ;YACR,eAAe,EAAE,CAAC;YAClB,UAAU,EAAE,aAAa;YACzB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,GAAG;YAChB,IAAI;SACL,EACD,SAAS,CACV,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,IAAA,gBAAI,EAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,aAAa,CAC1B,EAAU,EACV,GAAW,EACX,SAAiB,EACjB,GAAW;IAEX,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACnC,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG;YAAE,OAAO,MAAM,CAAC;QAChD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAQD;;;;;;;;GAQG;AACI,KAAK,UAAU,YAAY,CAChC,MAAoC,EACpC,UAAuB,EAAE;IAEzB,MAAM,EAAE,SAAS,GAAG,IAAA,kBAAgB,GAAE,EAAE,OAAO,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEnE,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,6EAA6E;IAC7E,8CAA8C;IAC9C,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAExE,uCAAuC;IACvC,IAAI,CAAC,IAAA,gBAAO,EAAC,MAAM,CAAC,EAAE,CAAC;QACrB,0EAA0E;QAC1E,IAAI,CAAC,IAAA,mBAAU,EAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAA,oBAAW,EAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wEAAwE;IACxE,yEAAyE;IACzE,EAAE;IACF,8EAA8E;IAC9E,0EAA0E;IAC1E,8EAA8E;IAC9E,YAAY;IACZ,IAAI,IAAA,2BAAkB,EAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;QACjD,IAAA,oBAAW,EACT;YACE,GAAG,MAAM;YACT,KAAK,EAAE,WAAW;YAClB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,KAAK,EAAE;gBACL,IAAI,EAAE,WAAW;gBACjB,OAAO,EACL,6IAA6I;aAChJ;SACF,EACD,SAAS,CACV,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAExD,0EAA0E;IAC1E,2CAA2C;IAC3C,EAAE;IACF,4EAA4E;IAC5E,0EAA0E;IAC1E,sEAAsE;IACtE,6EAA6E;IAC7E,4EAA4E;IAC5E,mBAAmB;IACnB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,WAAW,GACf,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,CAAC;IACzF,IAAI,KAAK,IAAI,WAAW,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACpC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,oDAAoD;IACpD,EAAE;IACF,8EAA8E;IAC9E,2EAA2E;IAC3E,0EAA0E;IAC1E,6EAA6E;IAC7E,EAAE;IACF,8EAA8E;IAC9E,0EAA0E;IAC1E,8BAA8B;IAC9B,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACjD,IACE,OAAO;QACP,OAAO,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG;QAC1B,OAAO,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW;QAC1C,CAAC,IAAA,mBAAU,EAAC,OAAO,CAAC,KAAK,CAAC;QAC1B,CAAC,IAAA,gBAAO,EAAC,OAAO,CAAC,EACjB,CAAC;QACD,IAAA,oBAAW,EAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,MAA6B;IAC/D,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,8DAA8D;YAC9D,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAwC,CAAC;YAC9F,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YACzC,yEAAyE;YACzE,sBAAsB;YACtB,IAAI,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,SAAS,CAAC,MAAsB,EAAE,SAAkB;IAClE,OAAO,IAAA,uBAAc,EAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,eAAe,CAAC,MAAsB,EAAE,SAAkB;IACjE,0EAA0E;IAC1E,4EAA4E;IAC5E,wDAAwD;IACxD,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACjD,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,CAAC;QAAE,OAAO,OAAO,CAAC;IAC1G,MAAM,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC;IAElC,IAAI,IAAA,mBAAU,EAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9C,IAAI,IAAA,gBAAO,EAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAErC,MAAM,WAAW,GAAG,IAAA,oBAAU,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,WAAW,GACf,WAAW;QACX,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAE5F,MAAM,UAAU,GACd,OAAO,CAAC,KAAK,KAAK,YAAY,IAAI,WAAW;QAC3C,CAAC,CAAC;YACE,GAAG,OAAO;YACV,KAAK,EAAE,WAAW;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE;YAC5C,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;SAC9C;QACH,CAAC,CAAC;YACE,GAAG,OAAO;YACV,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE;YAC5C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,mBAAmB,CAAC,OAAO,CAAC;SACrD,CAAC;IAER,IAAI,CAAC;QACH,IAAA,oBAAW,EAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,kEAAkE;IACpE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,mBAAmB,CAAC,MAAsB;IACjD,MAAM,YAAY,GAAG,IAAA,oBAAU,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjF,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,iFAAiF;SAC3F,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,4EAA4E;IAC5E,+EAA+E;IAC/E,mDAAmD;IACnD,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,OAAO,EACL,uGAAuG;YACvG,8BAA8B;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,CAAC;QACH,8DAA8D;QAC9D,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,CAA6B,CAAC;QACpE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"detach.js","sourceRoot":"","sources":["../src/detach.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -37,7 +37,7 @@
37
37
  * enforce it for history (opt-in; the default persists what you pass).
38
38
  */
39
39
  export { DownloadError, isDownloadError, classifyHttpStatus, type DownloadErrorCode, type DownloadErrorDetail, } from "./errors";
40
- export { expandHome, isContained, resolveDirectory, uniquePath, releaseReservation, sanitizeFilename, type ResolveDirectoryOptions, type UniquePathOptions, } from "./paths";
40
+ export { expandHome, isContained, resolveDirectory, uniquePath, releaseReservation, rollbackPartial, sanitizeFilename, type ResolveDirectoryOptions, type UniquePathOptions, } from "./paths";
41
41
  export { formatBytes, formatSpeed, formatEta, formatProgressLine, createThrottle, type ProgressLineInput, } from "./progress";
42
42
  export { createDownloadHistory, reconcileHistory, looksLikeSignedUrl, type HistoryUrlPolicy, type DownloadHistory, type DownloadRecord, type HistoryOptions, type HistoryStorage, type ReconcilableStatus, } from "./history";
43
43
  export { statusDir, statusPath, writeStatus, readStatus, listStatuses, clearStatus, pruneStatuses, watchStatus, isAlive, isTerminal, isStalled, processStartTimeMs, canVerifyProcessIdentity, acquireLease, releaseLease, statusLockPath, withStatusLock, type DownloadStatus, type DownloadState, type StatusWatcher, type WatchOptions, } from "./status";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EACL,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,GACvB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,KAAK,iBAAiB,GACvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,WAAW,EACX,OAAO,EACP,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,OAAO,EACP,eAAe,EACf,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EACL,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,GACvB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,KAAK,iBAAiB,GACvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,WAAW,EACX,OAAO,EACP,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,OAAO,EACP,eAAe,EACf,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,QAAQ,CAAC"}
package/dist/index.js CHANGED
@@ -38,7 +38,7 @@
38
38
  * enforce it for history (opt-in; the default persists what you pass).
39
39
  */
40
40
  Object.defineProperty(exports, "__esModule", { value: true });
41
- exports.classifyCurlFailure = exports.parseWriteOut = exports.parseCurlDuration = exports.parseCurlSize = exports.parseCurlMeter = exports.buildCurlConfig = exports.hasCurl = exports.runnerSearchPaths = exports.runnerPath = exports.reconcile = exports.killDownload = exports.startDownload = exports.withStatusLock = exports.statusLockPath = exports.releaseLease = exports.acquireLease = exports.canVerifyProcessIdentity = exports.processStartTimeMs = exports.isStalled = exports.isTerminal = exports.isAlive = exports.watchStatus = exports.pruneStatuses = exports.clearStatus = exports.listStatuses = exports.readStatus = exports.writeStatus = exports.statusPath = exports.statusDir = exports.looksLikeSignedUrl = exports.reconcileHistory = exports.createDownloadHistory = exports.createThrottle = exports.formatProgressLine = exports.formatEta = exports.formatSpeed = exports.formatBytes = exports.sanitizeFilename = exports.releaseReservation = exports.uniquePath = exports.resolveDirectory = exports.isContained = exports.expandHome = exports.classifyHttpStatus = exports.isDownloadError = exports.DownloadError = void 0;
41
+ exports.classifyCurlFailure = exports.parseWriteOut = exports.parseCurlDuration = exports.parseCurlSize = exports.parseCurlMeter = exports.buildCurlConfig = exports.hasCurl = exports.runnerSearchPaths = exports.runnerPath = exports.reconcile = exports.killDownload = exports.startDownload = exports.withStatusLock = exports.statusLockPath = exports.releaseLease = exports.acquireLease = exports.canVerifyProcessIdentity = exports.processStartTimeMs = exports.isStalled = exports.isTerminal = exports.isAlive = exports.watchStatus = exports.pruneStatuses = exports.clearStatus = exports.listStatuses = exports.readStatus = exports.writeStatus = exports.statusPath = exports.statusDir = exports.looksLikeSignedUrl = exports.reconcileHistory = exports.createDownloadHistory = exports.createThrottle = exports.formatProgressLine = exports.formatEta = exports.formatSpeed = exports.formatBytes = exports.sanitizeFilename = exports.rollbackPartial = exports.releaseReservation = exports.uniquePath = exports.resolveDirectory = exports.isContained = exports.expandHome = exports.classifyHttpStatus = exports.isDownloadError = exports.DownloadError = void 0;
42
42
  var errors_1 = require("./errors");
43
43
  Object.defineProperty(exports, "DownloadError", { enumerable: true, get: function () { return errors_1.DownloadError; } });
44
44
  Object.defineProperty(exports, "isDownloadError", { enumerable: true, get: function () { return errors_1.isDownloadError; } });
@@ -49,6 +49,7 @@ Object.defineProperty(exports, "isContained", { enumerable: true, get: function
49
49
  Object.defineProperty(exports, "resolveDirectory", { enumerable: true, get: function () { return paths_1.resolveDirectory; } });
50
50
  Object.defineProperty(exports, "uniquePath", { enumerable: true, get: function () { return paths_1.uniquePath; } });
51
51
  Object.defineProperty(exports, "releaseReservation", { enumerable: true, get: function () { return paths_1.releaseReservation; } });
52
+ Object.defineProperty(exports, "rollbackPartial", { enumerable: true, get: function () { return paths_1.rollbackPartial; } });
52
53
  Object.defineProperty(exports, "sanitizeFilename", { enumerable: true, get: function () { return paths_1.sanitizeFilename; } });
53
54
  var progress_1 = require("./progress");
54
55
  Object.defineProperty(exports, "formatBytes", { enumerable: true, get: function () { return progress_1.formatBytes; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;;;AAEH,mCAMkB;AALhB,uGAAA,aAAa,OAAA;AACb,yGAAA,eAAe,OAAA;AACf,4GAAA,kBAAkB,OAAA;AAKpB,iCASiB;AARf,mGAAA,UAAU,OAAA;AACV,oGAAA,WAAW,OAAA;AACX,yGAAA,gBAAgB,OAAA;AAChB,mGAAA,UAAU,OAAA;AACV,2GAAA,kBAAkB,OAAA;AAClB,yGAAA,gBAAgB,OAAA;AAKlB,uCAOoB;AANlB,uGAAA,WAAW,OAAA;AACX,uGAAA,WAAW,OAAA;AACX,qGAAA,SAAS,OAAA;AACT,8GAAA,kBAAkB,OAAA;AAClB,0GAAA,cAAc,OAAA;AAIhB,qCAUmB;AATjB,gHAAA,qBAAqB,OAAA;AACrB,2GAAA,gBAAgB,OAAA;AAChB,6GAAA,kBAAkB,OAAA;AASpB,mCAsBkB;AArBhB,mGAAA,SAAS,OAAA;AACT,oGAAA,UAAU,OAAA;AACV,qGAAA,WAAW,OAAA;AACX,oGAAA,UAAU,OAAA;AACV,sGAAA,YAAY,OAAA;AACZ,qGAAA,WAAW,OAAA;AACX,uGAAA,aAAa,OAAA;AACb,qGAAA,WAAW,OAAA;AACX,iGAAA,OAAO,OAAA;AACP,oGAAA,UAAU,OAAA;AACV,mGAAA,SAAS,OAAA;AACT,4GAAA,kBAAkB,OAAA;AAClB,kHAAA,wBAAwB,OAAA;AACxB,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,wGAAA,cAAc,OAAA;AACd,wGAAA,cAAc,OAAA;AAOhB,mCASkB;AARhB,uGAAA,aAAa,OAAA;AACb,sGAAA,YAAY,OAAA;AACZ,mGAAA,SAAS,OAAA;AACT,oGAAA,UAAU,OAAA;AACV,2GAAA,iBAAiB,OAAA;AAMnB,+BAYgB;AAXd,+FAAA,OAAO,OAAA;AACP,uGAAA,eAAe,OAAA;AACf,sGAAA,cAAc,OAAA;AACd,qGAAA,aAAa,OAAA;AACb,yGAAA,iBAAiB,OAAA;AACjB,qGAAA,aAAa,OAAA;AACb,2GAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;;;AAEH,mCAMkB;AALhB,uGAAA,aAAa,OAAA;AACb,yGAAA,eAAe,OAAA;AACf,4GAAA,kBAAkB,OAAA;AAKpB,iCAUiB;AATf,mGAAA,UAAU,OAAA;AACV,oGAAA,WAAW,OAAA;AACX,yGAAA,gBAAgB,OAAA;AAChB,mGAAA,UAAU,OAAA;AACV,2GAAA,kBAAkB,OAAA;AAClB,wGAAA,eAAe,OAAA;AACf,yGAAA,gBAAgB,OAAA;AAKlB,uCAOoB;AANlB,uGAAA,WAAW,OAAA;AACX,uGAAA,WAAW,OAAA;AACX,qGAAA,SAAS,OAAA;AACT,8GAAA,kBAAkB,OAAA;AAClB,0GAAA,cAAc,OAAA;AAIhB,qCAUmB;AATjB,gHAAA,qBAAqB,OAAA;AACrB,2GAAA,gBAAgB,OAAA;AAChB,6GAAA,kBAAkB,OAAA;AASpB,mCAsBkB;AArBhB,mGAAA,SAAS,OAAA;AACT,oGAAA,UAAU,OAAA;AACV,qGAAA,WAAW,OAAA;AACX,oGAAA,UAAU,OAAA;AACV,sGAAA,YAAY,OAAA;AACZ,qGAAA,WAAW,OAAA;AACX,uGAAA,aAAa,OAAA;AACb,qGAAA,WAAW,OAAA;AACX,iGAAA,OAAO,OAAA;AACP,oGAAA,UAAU,OAAA;AACV,mGAAA,SAAS,OAAA;AACT,4GAAA,kBAAkB,OAAA;AAClB,kHAAA,wBAAwB,OAAA;AACxB,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,wGAAA,cAAc,OAAA;AACd,wGAAA,cAAc,OAAA;AAOhB,mCASkB;AARhB,uGAAA,aAAa,OAAA;AACb,sGAAA,YAAY,OAAA;AACZ,mGAAA,SAAS,OAAA;AACT,oGAAA,UAAU,OAAA;AACV,2GAAA,iBAAiB,OAAA;AAMnB,+BAYgB;AAXd,+FAAA,OAAO,OAAA;AACP,uGAAA,eAAe,OAAA;AACf,sGAAA,cAAc,OAAA;AACd,qGAAA,aAAa,OAAA;AACb,yGAAA,iBAAiB,OAAA;AACjB,qGAAA,aAAa,OAAA;AACb,2GAAA,mBAAmB,OAAA"}
package/dist/paths.d.ts CHANGED
@@ -114,4 +114,33 @@ export declare function sanitizeFilename(name: string, options?: {
114
114
  maxLength?: number;
115
115
  reserveBytes?: number;
116
116
  }): string;
117
+ /**
118
+ * Roll a `.part` file back to a byte count that is known good.
119
+ *
120
+ * Used after an unfollowed 3xx: curl writes the redirect BODY into the partial,
121
+ * and on a RESUMED transfer the bytes before it are the user's real progress,
122
+ * so the tail is removed rather than the whole file.
123
+ *
124
+ * Returns false when the partial cannot be left in a state that is safe to
125
+ * resume from, and does everything it can to make it non-resumable first. A
126
+ * resume runs `curl -C -`, which appends from the file's CURRENT size, so a
127
+ * partial still carrying redirect HTML gets the real recording spliced onto the
128
+ * end of it and published under the user's filename. Losing progress is
129
+ * recoverable; a corrupt media file is not.
130
+ *
131
+ * Three things here are load-bearing:
132
+ *
133
+ * - **Every operation is bound to ONE open file descriptor.** Doing this by
134
+ * pathname across stat / truncate / re-stat is a TOCTOU: another attempt or
135
+ * an external actor can replace the file mid-sequence, and the cleanup then
136
+ * lands on a healthy partial belonging to someone else.
137
+ * - **The size is VERIFIED after truncating.** A truncate that throws is
138
+ * obvious; one that leaves the file longer than asked is not, and only the
139
+ * second corrupts the next resume.
140
+ * - **`keepBytes` is validated before anything destructive runs.** It is a
141
+ * caller-supplied number on an exported function, and a negative value
142
+ * reaches `ftruncateSync`, throws, and would otherwise fall through to the
143
+ * cleanup path — turning bad input into deleted progress.
144
+ */
145
+ export declare function rollbackPartial(partPath: string, keepBytes: number): boolean;
117
146
  //# sourceMappingURL=paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAgBH;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAYpE;AA0BD,MAAM,WAAW,uBAAuB;IACtC,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,GAAE,uBAA4B,GAAG,MAAM,CAwCzG;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,SAAU,GAAG,IAAI,CAOpF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAchE;AAQD,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,yDAAyD;AACzD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAyFjG;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D,MAAM,CAoCR"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAmBH;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAYpE;AA0BD,MAAM,WAAW,uBAAuB;IACtC,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,GAAE,uBAA4B,GAAG,MAAM,CAwCzG;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,SAAU,GAAG,IAAI,CAOpF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAchE;AAQD,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,yDAAyD;AACzD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAyFjG;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D,MAAM,CAoCR;AAuBD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CA4B5E"}
package/dist/paths.js CHANGED
@@ -19,6 +19,7 @@ exports.releaseReservation = releaseReservation;
19
19
  exports.writeSecretFile = writeSecretFile;
20
20
  exports.uniquePath = uniquePath;
21
21
  exports.sanitizeFilename = sanitizeFilename;
22
+ exports.rollbackPartial = rollbackPartial;
22
23
  const node_fs_1 = require("node:fs");
23
24
  const node_os_1 = require("node:os");
24
25
  const node_path_1 = require("node:path");
@@ -325,4 +326,88 @@ function truncateToBytes(value, maxBytes) {
325
326
  }
326
327
  return result || value.slice(0, 1);
327
328
  }
329
+ /**
330
+ * Roll a `.part` file back to a byte count that is known good.
331
+ *
332
+ * Used after an unfollowed 3xx: curl writes the redirect BODY into the partial,
333
+ * and on a RESUMED transfer the bytes before it are the user's real progress,
334
+ * so the tail is removed rather than the whole file.
335
+ *
336
+ * Returns false when the partial cannot be left in a state that is safe to
337
+ * resume from, and does everything it can to make it non-resumable first. A
338
+ * resume runs `curl -C -`, which appends from the file's CURRENT size, so a
339
+ * partial still carrying redirect HTML gets the real recording spliced onto the
340
+ * end of it and published under the user's filename. Losing progress is
341
+ * recoverable; a corrupt media file is not.
342
+ *
343
+ * Three things here are load-bearing:
344
+ *
345
+ * - **Every operation is bound to ONE open file descriptor.** Doing this by
346
+ * pathname across stat / truncate / re-stat is a TOCTOU: another attempt or
347
+ * an external actor can replace the file mid-sequence, and the cleanup then
348
+ * lands on a healthy partial belonging to someone else.
349
+ * - **The size is VERIFIED after truncating.** A truncate that throws is
350
+ * obvious; one that leaves the file longer than asked is not, and only the
351
+ * second corrupts the next resume.
352
+ * - **`keepBytes` is validated before anything destructive runs.** It is a
353
+ * caller-supplied number on an exported function, and a negative value
354
+ * reaches `ftruncateSync`, throws, and would otherwise fall through to the
355
+ * cleanup path — turning bad input into deleted progress.
356
+ */
357
+ function rollbackPartial(partPath, keepBytes) {
358
+ // Reject bad input BEFORE any destructive step, and without cleanup: the
359
+ // partial is not known to be unsafe, the argument is.
360
+ if (!Number.isInteger(keepBytes) || keepBytes < 0)
361
+ return false;
362
+ let fd;
363
+ try {
364
+ fd = (0, node_fs_1.openSync)(partPath, "r+");
365
+ const stat = (0, node_fs_1.fstatSync)(fd);
366
+ // Only a regular file is ours to truncate; a symlink or device is not.
367
+ if (!stat.isFile())
368
+ return false;
369
+ if (stat.size <= keepBytes)
370
+ return true;
371
+ (0, node_fs_1.ftruncateSync)(fd, keepBytes);
372
+ if ((0, node_fs_1.fstatSync)(fd).size === keepBytes)
373
+ return true;
374
+ }
375
+ catch {
376
+ // Fall through: the partial is not known-safe, so it is neutralised below.
377
+ }
378
+ finally {
379
+ if (fd !== undefined) {
380
+ try {
381
+ (0, node_fs_1.closeSync)(fd);
382
+ }
383
+ catch {
384
+ /* nothing useful to do */
385
+ }
386
+ }
387
+ }
388
+ return neutralisePartial(partPath);
389
+ }
390
+ /**
391
+ * Delete a partial that cannot be vouched for, and report that it is unsafe.
392
+ *
393
+ * Always returns false. Deletion is the only cleanup worth attempting: an
394
+ * earlier version also tried emptying the file, but that fallback cannot fire —
395
+ * any filesystem state permitting `truncate(path, 0)` also permits the
396
+ * `ftruncateSync` above, which would have succeeded and returned already.
397
+ *
398
+ * When deletion is denied too, the redirect body stays on disk and NOTHING here
399
+ * can change that. The return value is then the entire mitigation: the runner
400
+ * records it in the status so a consumer refuses to resume this path, because
401
+ * `curl -C -` would otherwise append the real recording after the HTML.
402
+ */
403
+ function neutralisePartial(partPath) {
404
+ try {
405
+ (0, node_fs_1.unlinkSync)(partPath);
406
+ }
407
+ catch {
408
+ // Denied. The caller's `false` and the status it writes are what protect
409
+ // the next attempt now.
410
+ }
411
+ return false;
412
+ }
328
413
  //# sourceMappingURL=paths.js.map
package/dist/paths.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
@@ -316,10 +316,26 @@ const EXIT_CODES = {
316
316
  * "curl exited 22".
317
317
  */
318
318
  function classifyCurlFailure(input) {
319
- const { exitCode, signal, httpCode, stderrTail, cancelled } = input;
319
+ const { exitCode, signal, httpCode, stderrTail, cancelled, followRedirects = true } = input;
320
320
  if (cancelled || signal === "SIGTERM" || signal === "SIGINT") {
321
321
  return new errors_1.DownloadError("cancelled", "Download cancelled.", { exitCode, signal });
322
322
  }
323
+ // A 3xx only reaches here when redirects were DISABLED: with `location` set,
324
+ // curl reports the status of the final hop, never the redirect itself. curl
325
+ // exits 0 for an unfollowed redirect, so without this branch the code falls
326
+ // past EXIT_CODES[0] into the last-resort message and reports
327
+ // "Download failed (curl exit 0)." for a perfectly explicable outcome.
328
+ // Gated on a CLEAN exit: curl exits 47 ("Too many redirects") while reporting
329
+ // a 3xx http_code, and that is a redirect loop, not an unfollowed redirect.
330
+ // Letting this branch win would relabel it.
331
+ if (exitCode === 0 && httpCode !== undefined && httpCode >= 300 && httpCode < 400) {
332
+ return new errors_1.DownloadError(
333
+ // `http_client`, not a new code: the request did not yield the body and
334
+ // the caller must change something (enable redirects, drop a conditional
335
+ // header, pass the final URL) — exactly the non-retryable bucket
336
+ // `http_client` names.
337
+ "http_client", unfollowedRedirectMessage(httpCode, followRedirects), { httpStatus: httpCode, exitCode, signal });
338
+ }
323
339
  if (httpCode !== undefined && httpCode >= 400) {
324
340
  const code = (0, errors_1.classifyHttpStatus)(httpCode);
325
341
  return new errors_1.DownloadError(code, httpErrorMessage(httpCode), { httpStatus: httpCode, exitCode, signal });
@@ -332,6 +348,21 @@ function classifyCurlFailure(input) {
332
348
  const detail = stderrTail?.trim().split("\n").pop()?.trim();
333
349
  return new errors_1.DownloadError("unknown", detail ? `Download failed: ${detail}` : `Download failed (curl exit ${exitCode ?? "unknown"}).`, { exitCode, signal, httpStatus: httpCode });
334
350
  }
351
+ /**
352
+ * Wording for a 3xx that curl exited 0 on.
353
+ *
354
+ * `location` does NOT guarantee the absence of a final 3xx: curl only follows a
355
+ * response that carries a usable `Location`. A 304 (the caller sent a
356
+ * conditional header) and a 300 (multiple choices, no `Location`) both end the
357
+ * transfer as themselves, with redirects fully enabled.
358
+ */
359
+ function unfollowedRedirectMessage(status, followRedirects) {
360
+ if (status === 304)
361
+ return "The server reported the file as unchanged (HTTP 304) and sent no content.";
362
+ if (!followRedirects)
363
+ return `The server redirected (HTTP ${status}) but redirects are disabled.`;
364
+ return `The server returned a redirect that could not be followed (HTTP ${status}).`;
365
+ }
335
366
  function httpErrorMessage(status) {
336
367
  switch (status) {
337
368
  case 401:
@@ -376,6 +407,7 @@ exports.releaseReservation = releaseReservation;
376
407
  exports.writeSecretFile = writeSecretFile;
377
408
  exports.uniquePath = uniquePath;
378
409
  exports.sanitizeFilename = sanitizeFilename;
410
+ exports.rollbackPartial = rollbackPartial;
379
411
  const node_fs_1 = require("node:fs");
380
412
  const node_os_1 = require("node:os");
381
413
  const node_path_1 = require("node:path");
@@ -682,6 +714,90 @@ function truncateToBytes(value, maxBytes) {
682
714
  }
683
715
  return result || value.slice(0, 1);
684
716
  }
717
+ /**
718
+ * Roll a `.part` file back to a byte count that is known good.
719
+ *
720
+ * Used after an unfollowed 3xx: curl writes the redirect BODY into the partial,
721
+ * and on a RESUMED transfer the bytes before it are the user's real progress,
722
+ * so the tail is removed rather than the whole file.
723
+ *
724
+ * Returns false when the partial cannot be left in a state that is safe to
725
+ * resume from, and does everything it can to make it non-resumable first. A
726
+ * resume runs `curl -C -`, which appends from the file's CURRENT size, so a
727
+ * partial still carrying redirect HTML gets the real recording spliced onto the
728
+ * end of it and published under the user's filename. Losing progress is
729
+ * recoverable; a corrupt media file is not.
730
+ *
731
+ * Three things here are load-bearing:
732
+ *
733
+ * - **Every operation is bound to ONE open file descriptor.** Doing this by
734
+ * pathname across stat / truncate / re-stat is a TOCTOU: another attempt or
735
+ * an external actor can replace the file mid-sequence, and the cleanup then
736
+ * lands on a healthy partial belonging to someone else.
737
+ * - **The size is VERIFIED after truncating.** A truncate that throws is
738
+ * obvious; one that leaves the file longer than asked is not, and only the
739
+ * second corrupts the next resume.
740
+ * - **`keepBytes` is validated before anything destructive runs.** It is a
741
+ * caller-supplied number on an exported function, and a negative value
742
+ * reaches `ftruncateSync`, throws, and would otherwise fall through to the
743
+ * cleanup path — turning bad input into deleted progress.
744
+ */
745
+ function rollbackPartial(partPath, keepBytes) {
746
+ // Reject bad input BEFORE any destructive step, and without cleanup: the
747
+ // partial is not known to be unsafe, the argument is.
748
+ if (!Number.isInteger(keepBytes) || keepBytes < 0)
749
+ return false;
750
+ let fd;
751
+ try {
752
+ fd = (0, node_fs_1.openSync)(partPath, "r+");
753
+ const stat = (0, node_fs_1.fstatSync)(fd);
754
+ // Only a regular file is ours to truncate; a symlink or device is not.
755
+ if (!stat.isFile())
756
+ return false;
757
+ if (stat.size <= keepBytes)
758
+ return true;
759
+ (0, node_fs_1.ftruncateSync)(fd, keepBytes);
760
+ if ((0, node_fs_1.fstatSync)(fd).size === keepBytes)
761
+ return true;
762
+ }
763
+ catch {
764
+ // Fall through: the partial is not known-safe, so it is neutralised below.
765
+ }
766
+ finally {
767
+ if (fd !== undefined) {
768
+ try {
769
+ (0, node_fs_1.closeSync)(fd);
770
+ }
771
+ catch {
772
+ /* nothing useful to do */
773
+ }
774
+ }
775
+ }
776
+ return neutralisePartial(partPath);
777
+ }
778
+ /**
779
+ * Delete a partial that cannot be vouched for, and report that it is unsafe.
780
+ *
781
+ * Always returns false. Deletion is the only cleanup worth attempting: an
782
+ * earlier version also tried emptying the file, but that fallback cannot fire —
783
+ * any filesystem state permitting `truncate(path, 0)` also permits the
784
+ * `ftruncateSync` above, which would have succeeded and returned already.
785
+ *
786
+ * When deletion is denied too, the redirect body stays on disk and NOTHING here
787
+ * can change that. The return value is then the entire mitigation: the runner
788
+ * records it in the status so a consumer refuses to resume this path, because
789
+ * `curl -C -` would otherwise append the real recording after the HTML.
790
+ */
791
+ function neutralisePartial(partPath) {
792
+ try {
793
+ (0, node_fs_1.unlinkSync)(partPath);
794
+ }
795
+ catch {
796
+ // Denied. The caller's `false` and the status it writes are what protect
797
+ // the next attempt now.
798
+ }
799
+ return false;
800
+ }
685
801
  //# sourceMappingURL=paths.js.map
686
802
  },
687
803
  "lock": function (exports, module) {
@@ -1618,12 +1734,14 @@ function main() {
1618
1734
  // zero-byte or absent file makes curl error rather than start cleanly.
1619
1735
  const existingBytes = (0, node_fs_1.existsSync)(payload.partPath) ? safeSize(payload.partPath) : 0;
1620
1736
  const resume = Boolean(payload.resume) && existingBytes > 0;
1737
+ const followRedirects = payload.followRedirects ?? true;
1621
1738
  let configPath;
1622
1739
  try {
1623
1740
  const config = (0, curl_1.buildCurlConfig)({
1624
1741
  url: payload.url,
1625
1742
  outputPath: payload.partPath,
1626
1743
  headers: payload.headers,
1744
+ followRedirects,
1627
1745
  resume,
1628
1746
  speedLimitBytes: payload.speedLimitBytes,
1629
1747
  stallSeconds: payload.stallSeconds,
@@ -1734,20 +1852,63 @@ function main() {
1734
1852
  removeConfig();
1735
1853
  const writeOut = (0, curl_1.parseWriteOut)(stdout);
1736
1854
  const httpCode = writeOut.httpCode;
1737
- const succeeded = exitCode === 0 && (httpCode === undefined || (httpCode >= 200 && httpCode < 400));
1855
+ // Success is strictly 2xx. A 3xx is NEVER a downloaded file:
1856
+ //
1857
+ // - redirects off: curl writes the redirect BODY to the `.part` file and
1858
+ // exits 0, so accepting it renames a stub to the user's expected
1859
+ // filename and publishes it as a completed download;
1860
+ // - redirects ON: `location` only follows a response carrying a usable
1861
+ // `Location`, so a 304 (caller sent a conditional header) or a 300 is
1862
+ // still the final status. A 304 writes NO body, which on a resumed
1863
+ // transfer would publish the existing partial as if it were whole.
1864
+ //
1865
+ // When redirects were followed and the transfer really succeeded, curl
1866
+ // reports the 2xx of the final hop, so nothing legitimate is lost here.
1867
+ const httpOk = httpCode === undefined || (httpCode >= 200 && httpCode < 300);
1868
+ const succeeded = exitCode === 0 && httpOk;
1738
1869
  if (!succeeded) {
1739
- const error = (0, curl_1.classifyCurlFailure)({ exitCode, signal, httpCode, stderrTail: stderr });
1870
+ const error = (0, curl_1.classifyCurlFailure)({ exitCode, signal, httpCode, stderrTail: stderr, followRedirects });
1740
1871
  // The .part file is retained so a retry can resume — but only when it
1741
1872
  // holds something to resume FROM. curl creates the file on open, so a
1742
1873
  // request that failed before its first byte (404, DNS, TLS) leaves a
1743
1874
  // 0-byte file that can never be resumed and that the user has no way to
1744
1875
  // account for sitting in their Downloads folder.
1745
- discardEmptyPart(payload.partPath);
1876
+ // …except whatever a 3xx wrote, which is never resumable content. curl
1877
+ // writes the redirect BODY to the `.part` file, so a later retry would
1878
+ // `continue-at` past that HTML and splice the real file onto it — the
1879
+ // exact silent corruption `fail` exists to prevent.
1880
+ //
1881
+ // Rolled back to `existingBytes` rather than deleted outright: on a
1882
+ // resumed transfer those bytes are the user's real progress and a 304
1883
+ // response in particular means the partial is still valid. Only the bytes
1884
+ // THIS attempt appended are garbage.
1885
+ const redirectStub = error.httpStatus !== undefined && error.httpStatus >= 300 && error.httpStatus < 400;
1886
+ // `rolledBack` is READ, not discarded. When the partial could not be made
1887
+ // safe — deletion denied AND emptying denied — the redirect body is still
1888
+ // on disk, and the next attempt would compute `existingBytes` from that
1889
+ // longer file and `curl -C -` the real recording onto the end of it. That
1890
+ // is precisely the corruption this branch exists to prevent, so it has to
1891
+ // reach the status: a consumer cannot see a cleanup failure any other way.
1892
+ let unsafePartial = false;
1893
+ if (redirectStub && existingBytes > 0)
1894
+ unsafePartial = !(0, paths_1.rollbackPartial)(payload.partPath, existingBytes);
1895
+ else if (redirectStub)
1896
+ discardPart(payload.partPath);
1897
+ else
1898
+ discardEmptyPart(payload.partPath);
1746
1899
  const cancelled = error.code === "cancelled";
1900
+ const message = unsafePartial
1901
+ ? `${error.message} The partial file could not be cleaned up and must not be resumed; delete it before retrying.`
1902
+ : error.message;
1747
1903
  persist({
1748
1904
  state: cancelled ? "cancelled" : "failed",
1749
1905
  finishedAt: Date.now(),
1750
- error: { code: error.code, message: error.message, httpStatus: error.httpStatus },
1906
+ // Conditional spread, NOT `unsafePartial ? 0 : undefined`: persist does
1907
+ // `{ ...status, ...next }`, so an explicit undefined would overwrite a
1908
+ // real byte count — and readStatusFile rejects a status whose
1909
+ // bytesDownloaded is not finite, making the whole file unreadable.
1910
+ ...(unsafePartial ? { bytesDownloaded: 0 } : {}),
1911
+ error: { code: error.code, message, httpStatus: error.httpStatus },
1751
1912
  });
1752
1913
  // Cancellation is deliberately silent: the user performed it, so telling
1753
1914
  // them it happened is noise. A genuine failure is the opposite — with the
@@ -1893,6 +2054,16 @@ function notify(payload, subtitle, message) {
1893
2054
  * Only the empty case — where there is provably nothing to resume from — is
1894
2055
  * safe to discard.
1895
2056
  */
2057
+ /** Roll a `.part` file back to the byte count it held before this attempt. */
2058
+ /** Remove a `.part` file outright, whatever it holds. */
2059
+ function discardPart(partPath) {
2060
+ try {
2061
+ (0, node_fs_1.unlinkSync)(partPath);
2062
+ }
2063
+ catch {
2064
+ // Best effort.
2065
+ }
2066
+ }
1896
2067
  function discardEmptyPart(partPath) {
1897
2068
  try {
1898
2069
  if ((0, node_fs_1.existsSync)(partPath) && (0, node_fs_1.statSync)(partPath).size === 0)
package/dist/runner.js CHANGED
@@ -93,12 +93,14 @@ function main() {
93
93
  // zero-byte or absent file makes curl error rather than start cleanly.
94
94
  const existingBytes = (0, node_fs_1.existsSync)(payload.partPath) ? safeSize(payload.partPath) : 0;
95
95
  const resume = Boolean(payload.resume) && existingBytes > 0;
96
+ const followRedirects = payload.followRedirects ?? true;
96
97
  let configPath;
97
98
  try {
98
99
  const config = (0, curl_1.buildCurlConfig)({
99
100
  url: payload.url,
100
101
  outputPath: payload.partPath,
101
102
  headers: payload.headers,
103
+ followRedirects,
102
104
  resume,
103
105
  speedLimitBytes: payload.speedLimitBytes,
104
106
  stallSeconds: payload.stallSeconds,
@@ -209,20 +211,63 @@ function main() {
209
211
  removeConfig();
210
212
  const writeOut = (0, curl_1.parseWriteOut)(stdout);
211
213
  const httpCode = writeOut.httpCode;
212
- const succeeded = exitCode === 0 && (httpCode === undefined || (httpCode >= 200 && httpCode < 400));
214
+ // Success is strictly 2xx. A 3xx is NEVER a downloaded file:
215
+ //
216
+ // - redirects off: curl writes the redirect BODY to the `.part` file and
217
+ // exits 0, so accepting it renames a stub to the user's expected
218
+ // filename and publishes it as a completed download;
219
+ // - redirects ON: `location` only follows a response carrying a usable
220
+ // `Location`, so a 304 (caller sent a conditional header) or a 300 is
221
+ // still the final status. A 304 writes NO body, which on a resumed
222
+ // transfer would publish the existing partial as if it were whole.
223
+ //
224
+ // When redirects were followed and the transfer really succeeded, curl
225
+ // reports the 2xx of the final hop, so nothing legitimate is lost here.
226
+ const httpOk = httpCode === undefined || (httpCode >= 200 && httpCode < 300);
227
+ const succeeded = exitCode === 0 && httpOk;
213
228
  if (!succeeded) {
214
- const error = (0, curl_1.classifyCurlFailure)({ exitCode, signal, httpCode, stderrTail: stderr });
229
+ const error = (0, curl_1.classifyCurlFailure)({ exitCode, signal, httpCode, stderrTail: stderr, followRedirects });
215
230
  // The .part file is retained so a retry can resume — but only when it
216
231
  // holds something to resume FROM. curl creates the file on open, so a
217
232
  // request that failed before its first byte (404, DNS, TLS) leaves a
218
233
  // 0-byte file that can never be resumed and that the user has no way to
219
234
  // account for sitting in their Downloads folder.
220
- discardEmptyPart(payload.partPath);
235
+ // …except whatever a 3xx wrote, which is never resumable content. curl
236
+ // writes the redirect BODY to the `.part` file, so a later retry would
237
+ // `continue-at` past that HTML and splice the real file onto it — the
238
+ // exact silent corruption `fail` exists to prevent.
239
+ //
240
+ // Rolled back to `existingBytes` rather than deleted outright: on a
241
+ // resumed transfer those bytes are the user's real progress and a 304
242
+ // response in particular means the partial is still valid. Only the bytes
243
+ // THIS attempt appended are garbage.
244
+ const redirectStub = error.httpStatus !== undefined && error.httpStatus >= 300 && error.httpStatus < 400;
245
+ // `rolledBack` is READ, not discarded. When the partial could not be made
246
+ // safe — deletion denied AND emptying denied — the redirect body is still
247
+ // on disk, and the next attempt would compute `existingBytes` from that
248
+ // longer file and `curl -C -` the real recording onto the end of it. That
249
+ // is precisely the corruption this branch exists to prevent, so it has to
250
+ // reach the status: a consumer cannot see a cleanup failure any other way.
251
+ let unsafePartial = false;
252
+ if (redirectStub && existingBytes > 0)
253
+ unsafePartial = !(0, paths_1.rollbackPartial)(payload.partPath, existingBytes);
254
+ else if (redirectStub)
255
+ discardPart(payload.partPath);
256
+ else
257
+ discardEmptyPart(payload.partPath);
221
258
  const cancelled = error.code === "cancelled";
259
+ const message = unsafePartial
260
+ ? `${error.message} The partial file could not be cleaned up and must not be resumed; delete it before retrying.`
261
+ : error.message;
222
262
  persist({
223
263
  state: cancelled ? "cancelled" : "failed",
224
264
  finishedAt: Date.now(),
225
- error: { code: error.code, message: error.message, httpStatus: error.httpStatus },
265
+ // Conditional spread, NOT `unsafePartial ? 0 : undefined`: persist does
266
+ // `{ ...status, ...next }`, so an explicit undefined would overwrite a
267
+ // real byte count — and readStatusFile rejects a status whose
268
+ // bytesDownloaded is not finite, making the whole file unreadable.
269
+ ...(unsafePartial ? { bytesDownloaded: 0 } : {}),
270
+ error: { code: error.code, message, httpStatus: error.httpStatus },
226
271
  });
227
272
  // Cancellation is deliberately silent: the user performed it, so telling
228
273
  // them it happened is noise. A genuine failure is the opposite — with the
@@ -368,6 +413,16 @@ function notify(payload, subtitle, message) {
368
413
  * Only the empty case — where there is provably nothing to resume from — is
369
414
  * safe to discard.
370
415
  */
416
+ /** Roll a `.part` file back to the byte count it held before this attempt. */
417
+ /** Remove a `.part` file outright, whatever it holds. */
418
+ function discardPart(partPath) {
419
+ try {
420
+ (0, node_fs_1.unlinkSync)(partPath);
421
+ }
422
+ catch {
423
+ // Best effort.
424
+ }
425
+ }
371
426
  function discardEmptyPart(partPath) {
372
427
  try {
373
428
  if ((0, node_fs_1.existsSync)(partPath) && (0, node_fs_1.statSync)(partPath).size === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chrismessina/raycast-downloader",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Downloads for Raycast extensions that survive the window closing: detached transfers, resumable via HTTP Range, with safe paths, progress and history",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",