@wirecat/cli-base 0.28.1 → 0.28.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.
@@ -0,0 +1,6 @@
1
+ export interface JsonResponseOptions {
2
+ maxBytes: number;
3
+ signal?: AbortSignal;
4
+ }
5
+ export declare const readJsonResponse: (response: Response, options: JsonResponseOptions) => Promise<unknown>;
6
+ //# sourceMappingURL=body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../src/http/body.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AA0BD,eAAO,MAAM,gBAAgB,aAAoB,QAAQ,WAAW,mBAAmB,KAAG,OAAO,CAAC,OAAO,CAkDxG,CAAA"}
@@ -0,0 +1,87 @@
1
+ import { CliError, isCliError } from "../errors.js";
2
+ const interrupted = (signal) => isCliError(signal.reason)
3
+ ? signal.reason
4
+ : new CliError(signal.reason instanceof Error && signal.reason.name === "TimeoutError" ? "timeout" : "cancelled", "HTTP response read was interrupted");
5
+ const checked = (signal) => {
6
+ if (signal?.aborted)
7
+ throw interrupted(signal);
8
+ };
9
+ const abortable = async (pending, signal) => {
10
+ if (!signal)
11
+ return pending;
12
+ let abort = () => { };
13
+ const stopped = new Promise((_, reject) => {
14
+ abort = () => reject(interrupted(signal));
15
+ signal.addEventListener("abort", abort, { once: true });
16
+ if (signal.aborted)
17
+ abort();
18
+ });
19
+ try {
20
+ return await Promise.race([pending, stopped]);
21
+ }
22
+ finally {
23
+ signal.removeEventListener("abort", abort);
24
+ }
25
+ };
26
+ export const readJsonResponse = async (response, options) => {
27
+ const { maxBytes, signal } = options ?? {};
28
+ if (!Number.isSafeInteger(maxBytes) || maxBytes < 1)
29
+ throw new CliError("validation_error", "maxBytes must be a positive safe integer");
30
+ if (signal !== undefined && !(signal instanceof AbortSignal))
31
+ throw new CliError("validation_error", "signal must be an AbortSignal");
32
+ if (signal?.aborted) {
33
+ void response.body?.cancel().catch(() => { });
34
+ throw interrupted(signal);
35
+ }
36
+ const length = response.headers.get("content-length");
37
+ if (length !== null && (!/^\d+$/.test(length) || Number(length) > maxBytes)) {
38
+ void response.body?.cancel().catch(() => { });
39
+ throw new CliError("invalid_response", "HTTP response exceeds the byte budget");
40
+ }
41
+ if (!response.body)
42
+ throw new CliError("invalid_response", "HTTP response has no body");
43
+ if (response.body.locked)
44
+ throw new CliError("invalid_response", "HTTP response body is already in use");
45
+ const reader = response.body.getReader();
46
+ const chunks = [];
47
+ let bytes = 0;
48
+ try {
49
+ for (;;) {
50
+ checked(signal);
51
+ const part = await abortable(reader.read(), signal);
52
+ checked(signal);
53
+ if (part.done)
54
+ break;
55
+ if (!(part.value instanceof Uint8Array))
56
+ throw new CliError("invalid_response", "HTTP response is not bytes");
57
+ bytes += part.value.byteLength;
58
+ if (bytes > maxBytes)
59
+ throw new CliError("invalid_response", "HTTP response exceeds the byte budget");
60
+ if (part.value.byteLength)
61
+ chunks.push(new Uint8Array(part.value));
62
+ }
63
+ const body = new Uint8Array(bytes);
64
+ let offset = 0;
65
+ for (const chunk of chunks) {
66
+ body.set(chunk, offset);
67
+ offset += chunk.byteLength;
68
+ }
69
+ try {
70
+ return JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(body));
71
+ }
72
+ catch {
73
+ throw new CliError("invalid_response", "HTTP response is not valid UTF-8 JSON");
74
+ }
75
+ }
76
+ catch (error) {
77
+ checked(signal);
78
+ if (isCliError(error))
79
+ throw error;
80
+ throw new CliError("network_error", "HTTP response could not be read");
81
+ }
82
+ finally {
83
+ void reader.cancel().catch(() => { });
84
+ reader.releaseLock();
85
+ }
86
+ };
87
+ //# sourceMappingURL=body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body.js","sourceRoot":"","sources":["../../src/http/body.ts"],"names":[],"mappings":"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"}
@@ -17,4 +17,5 @@ export declare const parseRateLimitReset: (header: string | null | undefined, no
17
17
  export declare const providerWaitMs: (headers: Headers, now: WallClock) => number | undefined;
18
18
  export declare const retryableStatus: (status: number) => boolean;
19
19
  export declare const statusToCode: (status: number) => ErrorCode;
20
+ export { type JsonResponseOptions, readJsonResponse } from "./body.js";
20
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,uHAAuH;AACvH,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEhG,iGAAiG;AACjG,eAAO,MAAM,eAAe,WAAY,MAAM,GAAG,IAAI,GAAG,SAAS,OAAO,SAAS,KAAG,MAAM,GAAG,SAa5F,CAAA;AAED,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB,WAAY,MAAM,GAAG,IAAI,GAAG,SAAS,OAAO,SAAS,KAAG,MAAM,GAAG,SAQhG,CAAA;AAED,gGAAgG;AAChG,eAAO,MAAM,cAAc,YAAa,OAAO,OAAO,SAAS,KAAG,MAAM,GAAG,SACqC,CAAA;AAEhH,eAAO,MAAM,eAAe,WAAY,MAAM,KAAG,OAA4D,CAAA;AAE7G,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,SAS7C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,uHAAuH;AACvH,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEhG,iGAAiG;AACjG,eAAO,MAAM,eAAe,WAAY,MAAM,GAAG,IAAI,GAAG,SAAS,OAAO,SAAS,KAAG,MAAM,GAAG,SAa5F,CAAA;AAED,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB,WAAY,MAAM,GAAG,IAAI,GAAG,SAAS,OAAO,SAAS,KAAG,MAAM,GAAG,SAQhG,CAAA;AAED,gGAAgG;AAChG,eAAO,MAAM,cAAc,YAAa,OAAO,OAAO,SAAS,KAAG,MAAM,GAAG,SACqC,CAAA;AAEhH,eAAO,MAAM,eAAe,WAAY,MAAM,KAAG,OAA4D,CAAA;AAE7G,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,SAS7C,CAAA;AAED,OAAO,EAAE,KAAK,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA"}
@@ -43,4 +43,5 @@ export const statusToCode = (status) => {
43
43
  return "provider_unavailable";
44
44
  return "provider_error";
45
45
  };
46
+ export { readJsonResponse } from "./body.js";
46
47
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAaA,iGAAiG;AACjG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAiC,EAAE,GAAc,EAAsB,EAAE;IACvG,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAE7B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IAC7B,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAExD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,OAAO,SAAS,CAAA;IAEtC,MAAM,KAAK,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;IAClC,gGAAgG;IAChG,uBAAuB;IACvB,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACtC,CAAC,CAAA;AAED,4FAA4F;AAC5F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAiC,EAAE,GAAc,EAAsB,EAAE;IAC3G,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAE7B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAA;IAE/C,MAAM,KAAK,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;IAC9C,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACtC,CAAC,CAAA;AAED,gGAAgG;AAChG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAE,GAAc,EAAsB,EAAE,CACrF,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAC,CAAA;AAEhH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,IAAI,GAAG,CAAA;AAE7G,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAa,EAAE;IACxD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,kBAAkB,CAAA;IAC/D,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,sBAAsB,CAAA;IACjD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,kBAAkB,CAAA;IAC7C,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,WAAW,CAAA;IACtC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,SAAS,CAAA;IACpC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,cAAc,CAAA;IACzC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,sBAAsB,CAAA;IACrF,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAaA,iGAAiG;AACjG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAiC,EAAE,GAAc,EAAsB,EAAE;IACvG,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAE7B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IAC7B,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAExD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,OAAO,SAAS,CAAA;IAEtC,MAAM,KAAK,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;IAClC,gGAAgG;IAChG,uBAAuB;IACvB,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACtC,CAAC,CAAA;AAED,4FAA4F;AAC5F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAiC,EAAE,GAAc,EAAsB,EAAE;IAC3G,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAE7B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAA;IAE/C,MAAM,KAAK,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;IAC9C,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACtC,CAAC,CAAA;AAED,gGAAgG;AAChG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAE,GAAc,EAAsB,EAAE,CACrF,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAC,CAAA;AAEhH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,IAAI,GAAG,CAAA;AAE7G,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAa,EAAE;IACxD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,kBAAkB,CAAA;IAC/D,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,sBAAsB,CAAA;IACjD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,kBAAkB,CAAA;IAC7C,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,WAAW,CAAA;IACtC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,SAAS,CAAA;IACpC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,cAAc,CAAA;IACzC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,sBAAsB,CAAA;IACrF,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AAED,OAAO,EAA4B,gBAAgB,EAAE,MAAM,WAAW,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wirecat/cli-base",
3
- "version": "0.28.1",
3
+ "version": "0.28.2",
4
4
  "description": "The parts every command line tool needs: output modes, terminal rendering, error model, exit codes, credentials, clocks",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Viacheslav Ptsarev",