@bunny-agent/manager 0.9.29-beta.13 → 0.9.29-beta.14
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/dist/bunny-agent.d.ts.map +1 -1
- package/dist/bunny-agent.js +1 -2
- package/dist/bunny-agent.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/error-serialize.test.d.ts +0 -2
- package/dist/__tests__/error-serialize.test.d.ts.map +0 -1
- package/dist/__tests__/error-serialize.test.js +0 -121
- package/dist/__tests__/error-serialize.test.js.map +0 -1
- package/dist/error-serialize.d.ts +0 -18
- package/dist/error-serialize.d.ts.map +0 -1
- package/dist/error-serialize.js +0 -103
- package/dist/error-serialize.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bunny-agent.d.ts","sourceRoot":"","sources":["../src/bunny-agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bunny-agent.d.ts","sourceRoot":"","sources":["../src/bunny-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAKjB,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAyB;IAC7C,OAAO,CAAC,MAAM,CAA8B;gBAEhC,OAAO,EAAE,iBAAiB;IAMtC;;OAEG;YACW,cAAc;IAO5B;;OAEG;IACH,OAAO,CAAC,YAAY;IAsEpB;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IA+GrE;;OAEG;IACG,WAAW,CACf,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAAA;KAAE,CAAC,EAC5D,SAAS,SAAe,GACvB,OAAO,CAAC,IAAI,CAAC;IAKhB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B"}
|
package/dist/bunny-agent.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { formatUnknownError } from "./error-serialize.js";
|
|
2
1
|
/**
|
|
3
2
|
* BunnyAgent - A sandboxed agent runtime that speaks AI SDK UI natively.
|
|
4
3
|
*
|
|
@@ -172,7 +171,7 @@ export class BunnyAgent {
|
|
|
172
171
|
console.log("[BunnyAgent] Operation aborted by user");
|
|
173
172
|
}
|
|
174
173
|
else {
|
|
175
|
-
const errorMessage =
|
|
174
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
176
175
|
console.error("[BunnyAgent] Error:", errorMessage);
|
|
177
176
|
if (transcriptWriter) {
|
|
178
177
|
await transcriptWriter.write({
|
package/dist/bunny-agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bunny-agent.js","sourceRoot":"","sources":["../src/bunny-agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bunny-agent.js","sourceRoot":"","sources":["../src/bunny-agent.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,6 @@ export type { IsBunnyAgentDaemonHealthyOptions } from "./daemon-health.js";
|
|
|
6
6
|
export { isBunnyAgentDaemonHealthy } from "./daemon-health.js";
|
|
7
7
|
export type { RunnerEnvParams, RunnerType } from "./env.js";
|
|
8
8
|
export { buildRunnerEnv } from "./env.js";
|
|
9
|
-
export { describeError, ensureError, formatUnknownError, } from "./error-serialize.js";
|
|
10
9
|
export type { LocalSandboxOptions } from "./local-sandbox.js";
|
|
11
10
|
export { LocalSandbox } from "./local-sandbox.js";
|
|
12
11
|
export { ConsoleTranscriptWriter, JsonlTranscriptWriter, MemoryTranscriptWriter, MultiTranscriptWriter, } from "./transcript.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,sCAAsC,EACtC,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAChE,YAAY,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,sCAAsC,EACtC,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAChE,YAAY,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,MAAM,GACP,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,6 @@ export { DEFAULT_BUNNY_AGENT_DAEMON_URL } from "./constants.js";
|
|
|
4
4
|
export { isBunnyAgentDaemonHealthy } from "./daemon-health.js";
|
|
5
5
|
// Env helpers
|
|
6
6
|
export { buildRunnerEnv } from "./env.js";
|
|
7
|
-
export { describeError, ensureError, formatUnknownError, } from "./error-serialize.js";
|
|
8
7
|
// Default sandbox adapter (built-in)
|
|
9
8
|
export { LocalSandbox } from "./local-sandbox.js";
|
|
10
9
|
export { ConsoleTranscriptWriter, JsonlTranscriptWriter, MemoryTranscriptWriter, MultiTranscriptWriter, } from "./transcript.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,sCAAsC,EACtC,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,cAAc;AACd,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,sCAAsC,EACtC,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,cAAc;AACd,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,qCAAqC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-serialize.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/error-serialize.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { describeError, ensureError, formatUnknownError, } from "../error-serialize.js";
|
|
3
|
-
describe("formatUnknownError", () => {
|
|
4
|
-
it("returns 'null' for null", () => {
|
|
5
|
-
expect(formatUnknownError(null)).toBe("null");
|
|
6
|
-
});
|
|
7
|
-
it("returns 'undefined' for undefined", () => {
|
|
8
|
-
expect(formatUnknownError(undefined)).toBe("undefined");
|
|
9
|
-
});
|
|
10
|
-
it("returns the string as-is for string input", () => {
|
|
11
|
-
expect(formatUnknownError("boom")).toBe("boom");
|
|
12
|
-
});
|
|
13
|
-
it("stringifies numbers and booleans", () => {
|
|
14
|
-
expect(formatUnknownError(42)).toBe("42");
|
|
15
|
-
expect(formatUnknownError(true)).toBe("true");
|
|
16
|
-
expect(formatUnknownError(false)).toBe("false");
|
|
17
|
-
});
|
|
18
|
-
it("serializes Error to JSON record with name and message", () => {
|
|
19
|
-
const result = formatUnknownError(new Error("kaboom"));
|
|
20
|
-
const parsed = JSON.parse(result);
|
|
21
|
-
expect(parsed).toMatchObject({ name: "Error", message: "kaboom" });
|
|
22
|
-
});
|
|
23
|
-
it("includes recursive cause chain when present", () => {
|
|
24
|
-
const inner = new Error("inner");
|
|
25
|
-
const outer = new Error("outer", { cause: inner });
|
|
26
|
-
const parsed = JSON.parse(formatUnknownError(outer));
|
|
27
|
-
expect(parsed.message).toBe("outer");
|
|
28
|
-
const innerParsed = JSON.parse(parsed.cause);
|
|
29
|
-
expect(innerParsed.message).toBe("inner");
|
|
30
|
-
});
|
|
31
|
-
it("never produces literal '[object Object]' for plain object input", () => {
|
|
32
|
-
const out = formatUnknownError({ code: 500, body: "boom" });
|
|
33
|
-
expect(out).not.toBe("[object Object]");
|
|
34
|
-
expect(JSON.parse(out)).toEqual({ code: 500, body: "boom" });
|
|
35
|
-
});
|
|
36
|
-
it("converts nested Error inside object to its record", () => {
|
|
37
|
-
const inner = new Error("nested");
|
|
38
|
-
const out = formatUnknownError({ outer: "ok", inner });
|
|
39
|
-
const parsed = JSON.parse(out);
|
|
40
|
-
expect(parsed.outer).toBe("ok");
|
|
41
|
-
expect(parsed.inner).toMatchObject({ name: "Error", message: "nested" });
|
|
42
|
-
});
|
|
43
|
-
it("handles circular objects without throwing", () => {
|
|
44
|
-
const obj = { a: 1 };
|
|
45
|
-
obj.self = obj;
|
|
46
|
-
expect(() => formatUnknownError(obj)).not.toThrow();
|
|
47
|
-
expect(formatUnknownError(obj)).toBe("Unserializable object error");
|
|
48
|
-
});
|
|
49
|
-
it("falls back to String() for symbols and bigints", () => {
|
|
50
|
-
expect(formatUnknownError(Symbol("s"))).toBe("Symbol(s)");
|
|
51
|
-
expect(formatUnknownError(10n)).toBe("10");
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
describe("ensureError", () => {
|
|
55
|
-
it("returns the same Error instance when given an Error", () => {
|
|
56
|
-
const err = new Error("identity");
|
|
57
|
-
expect(ensureError(err)).toBe(err);
|
|
58
|
-
});
|
|
59
|
-
it("preserves stack on the original Error", () => {
|
|
60
|
-
const err = new Error("with stack");
|
|
61
|
-
const out = ensureError(err);
|
|
62
|
-
expect(out.stack).toBe(err.stack);
|
|
63
|
-
});
|
|
64
|
-
it("wraps a string into a real Error with that message", () => {
|
|
65
|
-
const out = ensureError("plain string");
|
|
66
|
-
expect(out).toBeInstanceOf(Error);
|
|
67
|
-
expect(out.message).toBe("plain string");
|
|
68
|
-
});
|
|
69
|
-
it("wraps a plain object into Error whose message is structured (not '[object Object]')", () => {
|
|
70
|
-
const payload = { code: 500, body: "boom" };
|
|
71
|
-
const out = ensureError(payload);
|
|
72
|
-
expect(out).toBeInstanceOf(Error);
|
|
73
|
-
expect(out.message).not.toBe("[object Object]");
|
|
74
|
-
expect(out.message).toBe(JSON.stringify(payload));
|
|
75
|
-
expect(out.cause).toBe(payload);
|
|
76
|
-
});
|
|
77
|
-
it("wraps null/undefined into Error with readable message", () => {
|
|
78
|
-
expect(ensureError(null).message).toBe("null");
|
|
79
|
-
expect(ensureError(undefined).message).toBe("undefined");
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
describe("describeError", () => {
|
|
83
|
-
it("returns the formatUnknownError summary when value is not an Error", () => {
|
|
84
|
-
expect(describeError("boom")).toBe("boom");
|
|
85
|
-
expect(describeError({ x: 1 })).toBe('{"x":1}');
|
|
86
|
-
});
|
|
87
|
-
it("returns just the summary when Error has no extra fields", () => {
|
|
88
|
-
const out = describeError(new Error("plain"));
|
|
89
|
-
const parsed = JSON.parse(out);
|
|
90
|
-
expect(parsed).toMatchObject({ name: "Error", message: "plain" });
|
|
91
|
-
expect(out.includes("| extra=")).toBe(false);
|
|
92
|
-
});
|
|
93
|
-
it("appends extra=... with own properties attached to the Error", () => {
|
|
94
|
-
const err = new Error("api fail");
|
|
95
|
-
err.status = 500;
|
|
96
|
-
err.body = "internal";
|
|
97
|
-
const out = describeError(err);
|
|
98
|
-
expect(out).toContain("| extra=");
|
|
99
|
-
const extraIdx = out.indexOf("| extra=");
|
|
100
|
-
const extraJson = out.slice(extraIdx + "| extra=".length);
|
|
101
|
-
const extra = JSON.parse(extraJson);
|
|
102
|
-
expect(extra).toEqual({ status: 500, body: "internal" });
|
|
103
|
-
});
|
|
104
|
-
it("includes cause when Error has a cause", () => {
|
|
105
|
-
const err = new Error("outer", { cause: { reason: "x" } });
|
|
106
|
-
const out = describeError(err);
|
|
107
|
-
expect(out).toContain("| extra=");
|
|
108
|
-
const extra = JSON.parse(out.slice(out.indexOf("| extra=") + 8));
|
|
109
|
-
expect(extra.cause).toEqual({ reason: "x" });
|
|
110
|
-
});
|
|
111
|
-
it("salvages diagnostic info even when message is the literal '[object Object]'", () => {
|
|
112
|
-
// Reproduces the third-party SDK bug where `new Error(someObject)` was
|
|
113
|
-
// executed upstream, leaving us with an Error whose `.message` is useless.
|
|
114
|
-
const err = new Error("[object Object]");
|
|
115
|
-
err.status = 502;
|
|
116
|
-
const out = describeError(err);
|
|
117
|
-
expect(out).toContain("status");
|
|
118
|
-
expect(out).toContain("502");
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
//# sourceMappingURL=error-serialize.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-serialize.test.js","sourceRoot":"","sources":["../../src/__tests__/error-serialize.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export declare function formatUnknownError(err: unknown): string;
|
|
2
|
-
/**
|
|
3
|
-
* Normalize any thrown value into a real `Error` instance.
|
|
4
|
-
* If `err` is already an Error, return it as-is (preserves stack and identity).
|
|
5
|
-
* Otherwise wraps the value via {@link formatUnknownError} and keeps the
|
|
6
|
-
* original payload as `cause` so context is not lost.
|
|
7
|
-
*/
|
|
8
|
-
export declare function ensureError(err: unknown): Error;
|
|
9
|
-
/**
|
|
10
|
-
* Build a verbose, log-friendly description of a value.
|
|
11
|
-
* On top of {@link formatUnknownError}, surfaces any extra own properties an
|
|
12
|
-
* Error carries (e.g. `status`, `code`, `body`, `response`) plus its `cause`
|
|
13
|
-
* — useful when an upstream SDK produced an Error whose `.message` is useless
|
|
14
|
-
* (e.g. literal `"[object Object]"`) but the real diagnostic info is attached
|
|
15
|
-
* as side fields.
|
|
16
|
-
*/
|
|
17
|
-
export declare function describeError(err: unknown): string;
|
|
18
|
-
//# sourceMappingURL=error-serialize.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-serialize.d.ts","sourceRoot":"","sources":["../src/error-serialize.ts"],"names":[],"mappings":"AAoCA,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAuBvD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAG/C;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAiBlD"}
|
package/dist/error-serialize.js
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Format unknown thrown values for logs and Error.message.
|
|
3
|
-
* Avoids "[object Object]" when callers throw plain objects or Errors with empty messages.
|
|
4
|
-
*/
|
|
5
|
-
function errorRecord(err) {
|
|
6
|
-
const isObjectToStringMessage = /^\[object [^\]]+\]$/.test(err.message.trim());
|
|
7
|
-
const extra = {};
|
|
8
|
-
for (const key of Object.getOwnPropertyNames(err)) {
|
|
9
|
-
if (key === "name" || key === "message" || key === "stack")
|
|
10
|
-
continue;
|
|
11
|
-
extra[key] = err[key];
|
|
12
|
-
}
|
|
13
|
-
// Some SDKs expose diagnostics on inherited properties.
|
|
14
|
-
for (const key of ["code", "status", "response", "body", "data"]) {
|
|
15
|
-
if (key in err && !(key in extra)) {
|
|
16
|
-
extra[key] = err[key];
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return {
|
|
20
|
-
name: err.name,
|
|
21
|
-
message: err.message,
|
|
22
|
-
...(isObjectToStringMessage
|
|
23
|
-
? {
|
|
24
|
-
note: "Upstream error message was stringified object",
|
|
25
|
-
}
|
|
26
|
-
: {}),
|
|
27
|
-
...(err.cause !== undefined
|
|
28
|
-
? { cause: formatUnknownError(err.cause) }
|
|
29
|
-
: {}),
|
|
30
|
-
...(Object.keys(extra).length > 0 ? { extra } : {}),
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
export function formatUnknownError(err) {
|
|
34
|
-
if (err == null)
|
|
35
|
-
return String(err);
|
|
36
|
-
if (typeof err === "string")
|
|
37
|
-
return err;
|
|
38
|
-
if (typeof err === "number" || typeof err === "boolean")
|
|
39
|
-
return String(err);
|
|
40
|
-
if (err instanceof Error) {
|
|
41
|
-
try {
|
|
42
|
-
return JSON.stringify(errorRecord(err));
|
|
43
|
-
}
|
|
44
|
-
catch {
|
|
45
|
-
const message = err.message?.trim() ?? "";
|
|
46
|
-
return `${err.name}: ${message || "(no message)"}`;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
if (typeof err === "object") {
|
|
50
|
-
try {
|
|
51
|
-
return JSON.stringify(err, (_key, value) => {
|
|
52
|
-
if (value instanceof Error)
|
|
53
|
-
return errorRecord(value);
|
|
54
|
-
return value;
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
catch {
|
|
58
|
-
return "Unserializable object error";
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return String(err);
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Normalize any thrown value into a real `Error` instance.
|
|
65
|
-
* If `err` is already an Error, return it as-is (preserves stack and identity).
|
|
66
|
-
* Otherwise wraps the value via {@link formatUnknownError} and keeps the
|
|
67
|
-
* original payload as `cause` so context is not lost.
|
|
68
|
-
*/
|
|
69
|
-
export function ensureError(err) {
|
|
70
|
-
if (err instanceof Error)
|
|
71
|
-
return err;
|
|
72
|
-
return new Error(formatUnknownError(err), { cause: err });
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Build a verbose, log-friendly description of a value.
|
|
76
|
-
* On top of {@link formatUnknownError}, surfaces any extra own properties an
|
|
77
|
-
* Error carries (e.g. `status`, `code`, `body`, `response`) plus its `cause`
|
|
78
|
-
* — useful when an upstream SDK produced an Error whose `.message` is useless
|
|
79
|
-
* (e.g. literal `"[object Object]"`) but the real diagnostic info is attached
|
|
80
|
-
* as side fields.
|
|
81
|
-
*/
|
|
82
|
-
export function describeError(err) {
|
|
83
|
-
const summary = formatUnknownError(err);
|
|
84
|
-
if (!(err instanceof Error))
|
|
85
|
-
return summary;
|
|
86
|
-
const extra = {};
|
|
87
|
-
for (const key of Object.getOwnPropertyNames(err)) {
|
|
88
|
-
if (key === "stack" || key === "message" || key === "name")
|
|
89
|
-
continue;
|
|
90
|
-
extra[key] = err[key];
|
|
91
|
-
}
|
|
92
|
-
if (err.cause !== undefined)
|
|
93
|
-
extra.cause = err.cause;
|
|
94
|
-
if (Object.keys(extra).length === 0)
|
|
95
|
-
return summary;
|
|
96
|
-
try {
|
|
97
|
-
return `${summary} | extra=${JSON.stringify(extra)}`;
|
|
98
|
-
}
|
|
99
|
-
catch {
|
|
100
|
-
return summary;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
//# sourceMappingURL=error-serialize.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-serialize.js","sourceRoot":"","sources":["../src/error-serialize.ts"],"names":[],"mappings":"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"}
|