@agentuity/adapter 3.0.10 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/error.d.ts +88 -0
- package/dist/error.d.ts.map +1 -0
- package/dist/error.js +285 -0
- package/dist/error.js.map +1 -0
- package/dist/exception.d.ts +36 -0
- package/dist/exception.d.ts.map +1 -0
- package/dist/exception.js +17 -0
- package/dist/exception.js.map +1 -0
- package/dist/fetch.d.ts +66 -0
- package/dist/fetch.d.ts.map +1 -0
- package/dist/fetch.js +54 -0
- package/dist/fetch.js.map +1 -0
- package/dist/http-util.d.ts +7 -0
- package/dist/http-util.d.ts.map +1 -0
- package/dist/http-util.js +213 -0
- package/dist/http-util.js.map +1 -0
- package/dist/index.d.ts +10 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/json.d.ts +7 -0
- package/dist/json.d.ts.map +1 -0
- package/dist/json.js +23 -0
- package/dist/json.js.map +1 -0
- package/dist/logger.d.ts +59 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +2 -0
- package/dist/logger.js.map +1 -0
- package/package.json +2 -2
package/dist/error.d.ts
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
type PlainObject = Record<string, any>;
|
|
2
|
+
declare const _argsSym: unique symbol;
|
|
3
|
+
declare const _causeSym: unique symbol;
|
|
4
|
+
declare const _metaSym: unique symbol;
|
|
5
|
+
export declare class RichError extends Error {
|
|
6
|
+
private [_argsSym]?;
|
|
7
|
+
private [_causeSym]?;
|
|
8
|
+
private [_metaSym]?;
|
|
9
|
+
constructor(args?: PlainObject);
|
|
10
|
+
/** Return the stored plain args (if any) */
|
|
11
|
+
get plainArgs(): PlainObject | undefined;
|
|
12
|
+
/** Return the cause (if any) */
|
|
13
|
+
get cause(): unknown | undefined;
|
|
14
|
+
/** Pretty, recursive string representation (follows cause chain). */
|
|
15
|
+
prettyPrint(space?: number): string;
|
|
16
|
+
toJSON(): any;
|
|
17
|
+
toString(): string;
|
|
18
|
+
}
|
|
19
|
+
type StructuredErrorConstructor<Tag extends string, Shape extends PlainObject, HasDefault extends boolean> = {
|
|
20
|
+
new (args?: Shape extends Record<string, never> ? HasDefault extends true ? {
|
|
21
|
+
cause?: unknown;
|
|
22
|
+
} : {
|
|
23
|
+
message?: string;
|
|
24
|
+
cause?: unknown;
|
|
25
|
+
} : HasDefault extends true ? Shape & {
|
|
26
|
+
cause?: unknown;
|
|
27
|
+
} : Shape & {
|
|
28
|
+
message?: string;
|
|
29
|
+
cause?: unknown;
|
|
30
|
+
}): RichError & {
|
|
31
|
+
readonly _tag: Tag;
|
|
32
|
+
} & Readonly<Shape>;
|
|
33
|
+
readonly defaultMessage?: string;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* StructuredError factory with automatic tag inference and payload typing.
|
|
37
|
+
*
|
|
38
|
+
* Creates a custom error class with:
|
|
39
|
+
* - A readonly `_tag` property for runtime type discrimination
|
|
40
|
+
* - Automatic stack trace capture
|
|
41
|
+
* - Cause chaining support
|
|
42
|
+
* - Pretty printing with `prettyPrint()` and `toString()`
|
|
43
|
+
* - JSON serialization with `toJSON()`
|
|
44
|
+
*
|
|
45
|
+
* @template Tag - The literal string tag type (automatically inferred from the tag parameter)
|
|
46
|
+
* @param tag - The unique identifier for this error type (used as the error name)
|
|
47
|
+
* @param defaultMessage - Optional default message to use when no message is provided in args
|
|
48
|
+
* @returns A constructor function that can be called directly or with a shape generic
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* // Without shape (tag auto-inferred)
|
|
52
|
+
* const NotFound = StructuredError("NotFound")
|
|
53
|
+
* throw new NotFound({ id: 1, message: "nope", cause: someError })
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* // With typed shape (tag auto-inferred, shape explicitly typed)
|
|
57
|
+
* const ValidationError = StructuredError("ValidationError")<{ field: string; code: string }>()
|
|
58
|
+
* throw new ValidationError({ field: "email", code: "INVALID", message: "Invalid email" })
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* // With default message (message cannot be overridden)
|
|
62
|
+
* const UpgradeRequired = StructuredError("UpgradeRequired", "Upgrade required to access this feature")
|
|
63
|
+
* throw new UpgradeRequired({ feature: "advanced" }) // message is automatically set and cannot be changed
|
|
64
|
+
*/
|
|
65
|
+
type StructuredErrorFactory<Tag extends string, HasDefault extends boolean> = StructuredErrorConstructor<Tag, Record<string, never>, HasDefault> & (<Shape extends PlainObject = Record<string, never>>() => StructuredErrorConstructor<Tag, Shape, HasDefault>);
|
|
66
|
+
export declare function StructuredError<const Tag extends string>(tag: Tag, defaultMessage: string): StructuredErrorFactory<Tag, true>;
|
|
67
|
+
export declare function StructuredError<const Tag extends string>(tag: Tag): StructuredErrorFactory<Tag, false>;
|
|
68
|
+
/**
|
|
69
|
+
* Returns true if the error passed is an instance of a StructuredObject
|
|
70
|
+
*
|
|
71
|
+
* @param err the error object
|
|
72
|
+
* @returns true if err is a StructuredError
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* const UpgradeRequired = StructuredError("UpgradeRequired", "Upgrade required to access this feature")
|
|
76
|
+
* try {
|
|
77
|
+
* throw UpgradeRequired();
|
|
78
|
+
* } catch (ex) {
|
|
79
|
+
* if (isStructuredError(ex)) {
|
|
80
|
+
* console.log(ex._tag);
|
|
81
|
+
* }
|
|
82
|
+
* }
|
|
83
|
+
*/
|
|
84
|
+
export declare function isStructuredError(err: unknown): err is RichError & {
|
|
85
|
+
_tag: string;
|
|
86
|
+
};
|
|
87
|
+
export {};
|
|
88
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAyBA,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEvC,QAAA,MAAM,QAAQ,eAAkC,CAAC;AACjD,QAAA,MAAM,SAAS,eAA8B,CAAC;AAC9C,QAAA,MAAM,QAAQ,eAA6B,CAAC;AAK5C,qBAAa,SAAU,SAAQ,KAAK;IAEnC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAc;IACjC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAU;IAC9B,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAc;gBAErB,IAAI,CAAC,EAAE,WAAW;IAsD9B,4CAA4C;IAC5C,IAAI,SAAS,IAAI,WAAW,GAAG,SAAS,CAEvC;IAED,gCAAgC;IAChC,IAAa,KAAK,IAAI,OAAO,GAAG,SAAS,CAExC;IAED,qEAAqE;IACrE,WAAW,CAAC,KAAK,SAAI,GAAG,MAAM;IA0E9B,MAAM;IAkCG,QAAQ,IAAI,MAAM;CAW3B;AAED,KAAK,0BAA0B,CAC9B,GAAG,SAAS,MAAM,EAClB,KAAK,SAAS,WAAW,EACzB,UAAU,SAAS,OAAO,IACvB;IACH,KACC,IAAI,CAAC,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACvC,UAAU,SAAS,IAAI,GACtB;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GACnB;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,UAAU,SAAS,IAAI,GACtB,KAAK,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3B,KAAK,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/C,SAAS,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAA;KAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,KAAK,sBAAsB,CAC1B,GAAG,SAAS,MAAM,EAClB,UAAU,SAAS,OAAO,IACvB,0BAA0B,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,GACrE,CAAC,CAAC,KAAK,SAAS,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,0BAA0B,CACnF,GAAG,EACH,KAAK,EACL,UAAU,CACV,CAAC,CAAC;AAEJ,wBAAgB,eAAe,CAAC,KAAK,CAAC,GAAG,SAAS,MAAM,EACvD,GAAG,EAAE,GAAG,EACR,cAAc,EAAE,MAAM,GACpB,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACrC,wBAAgB,eAAe,CAAC,KAAK,CAAC,GAAG,SAAS,MAAM,EACvD,GAAG,EAAE,GAAG,GACN,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAoGtC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAOnF"}
|
package/dist/error.js
ADDED
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
// NOTE: these ideas are borrowed from https://github.com/Effect-TS/effect
|
|
3
|
+
import { safeStringify } from "./json.js";
|
|
4
|
+
// Lazy-load node:util to avoid top-level await blocking module initialization
|
|
5
|
+
let util;
|
|
6
|
+
let utilLoaded = false;
|
|
7
|
+
function ensureNodeUtilLoaded() {
|
|
8
|
+
if (util || utilLoaded)
|
|
9
|
+
return;
|
|
10
|
+
if (typeof process === 'undefined' || !process.versions?.node) {
|
|
11
|
+
utilLoaded = true;
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
utilLoaded = true;
|
|
15
|
+
void import('node:util')
|
|
16
|
+
.then((m) => {
|
|
17
|
+
util = m;
|
|
18
|
+
})
|
|
19
|
+
.catch(() => {
|
|
20
|
+
// Ignore import errors in browser environments
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
const _argsSym = Symbol('@@RichError:plainArgs');
|
|
24
|
+
const _causeSym = Symbol('@@RichError:cause');
|
|
25
|
+
const _metaSym = Symbol('@@RichError:meta'); // reserved for future use (non-enumerable)
|
|
26
|
+
const _structuredSym = Symbol.for('@@StructuredError');
|
|
27
|
+
const spacer = ' ';
|
|
28
|
+
export class RichError extends Error {
|
|
29
|
+
// private slots (non-enumerable)
|
|
30
|
+
[_argsSym];
|
|
31
|
+
[_causeSym];
|
|
32
|
+
[_metaSym];
|
|
33
|
+
constructor(args) {
|
|
34
|
+
const message = args?.message ?? undefined;
|
|
35
|
+
const cause = (args?.cause ?? undefined);
|
|
36
|
+
// If platform supports error cause option, pass it to Error constructor
|
|
37
|
+
// (Node 16+ / modern engines)
|
|
38
|
+
if (cause !== undefined) {
|
|
39
|
+
super(message, { cause });
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
super(message);
|
|
43
|
+
}
|
|
44
|
+
// correct prototype chain when transpiled to older JS
|
|
45
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
46
|
+
// capture a clean stack (omit this constructor)
|
|
47
|
+
if (typeof Error.captureStackTrace === 'function') {
|
|
48
|
+
Error.captureStackTrace(this, new.target);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
// fallback: ensure stack exists
|
|
52
|
+
if (!this.stack) {
|
|
53
|
+
this.stack = new Error(message).stack;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (args && typeof args === 'object') {
|
|
57
|
+
// copy all fields except cause and message (we keep them separate)
|
|
58
|
+
const { cause: _c, message: _m, ...rest } = args;
|
|
59
|
+
if (Object.keys(rest).length > 0) {
|
|
60
|
+
Object.assign(this, rest);
|
|
61
|
+
this[_argsSym] = rest;
|
|
62
|
+
}
|
|
63
|
+
if (cause !== undefined) {
|
|
64
|
+
this[_causeSym] = cause;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// hide internal symbols and meta (redefine non-enumerable)
|
|
68
|
+
Object.defineProperty(this, _argsSym, {
|
|
69
|
+
value: this[_argsSym],
|
|
70
|
+
enumerable: false,
|
|
71
|
+
writable: true,
|
|
72
|
+
});
|
|
73
|
+
Object.defineProperty(this, _causeSym, {
|
|
74
|
+
value: this[_causeSym],
|
|
75
|
+
enumerable: false,
|
|
76
|
+
writable: true,
|
|
77
|
+
});
|
|
78
|
+
Object.defineProperty(this, _metaSym, {
|
|
79
|
+
value: this[_metaSym] ?? {},
|
|
80
|
+
enumerable: false,
|
|
81
|
+
writable: true,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/** Return the stored plain args (if any) */
|
|
85
|
+
get plainArgs() {
|
|
86
|
+
return this[_argsSym];
|
|
87
|
+
}
|
|
88
|
+
/** Return the cause (if any) */
|
|
89
|
+
get cause() {
|
|
90
|
+
return this[_causeSym];
|
|
91
|
+
}
|
|
92
|
+
/** Pretty, recursive string representation (follows cause chain). */
|
|
93
|
+
prettyPrint(space = 2) {
|
|
94
|
+
const lines = [];
|
|
95
|
+
const visited = new Set();
|
|
96
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
97
|
+
let cur = this;
|
|
98
|
+
let depth = 0;
|
|
99
|
+
while (cur && cur instanceof Error && !visited.has(cur)) {
|
|
100
|
+
const curAny = cur;
|
|
101
|
+
visited.add(cur);
|
|
102
|
+
const header = `${cur.name}${curAny._tag && curAny._tag !== cur.name ? ` (${String(curAny._tag)})` : ''}${depth === 0 ? '' : ' [cause]'}`;
|
|
103
|
+
const msg = cur.message !== undefined && cur.message !== '' ? `: ${cur.message}` : '';
|
|
104
|
+
lines.push(header + msg);
|
|
105
|
+
// include stack if present (limit to first line of stack header for brevity)
|
|
106
|
+
if (cur.stack) {
|
|
107
|
+
lines.push('');
|
|
108
|
+
lines.push(spacer + 'stack trace:');
|
|
109
|
+
const stackLines = String(cur.stack).split('\n').slice(1); // drop first line (it's message)
|
|
110
|
+
if (stackLines.length > 0) {
|
|
111
|
+
// indent stack
|
|
112
|
+
let s = stackLines.map((s) => spacer + spacer + s.trim());
|
|
113
|
+
const lastLine = s[s.length - 1];
|
|
114
|
+
if (lastLine && lastLine.includes('processTicksAndRejections')) {
|
|
115
|
+
s = s.slice(0, s.length - 1);
|
|
116
|
+
}
|
|
117
|
+
lines.push(...s);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// include plain args as formatted output (if any)
|
|
121
|
+
if (curAny[_argsSym]) {
|
|
122
|
+
ensureNodeUtilLoaded();
|
|
123
|
+
let argsStr;
|
|
124
|
+
if (util?.formatWithOptions) {
|
|
125
|
+
argsStr = util.formatWithOptions({
|
|
126
|
+
depth: 10,
|
|
127
|
+
sorted: true,
|
|
128
|
+
showHidden: false,
|
|
129
|
+
showProxy: false,
|
|
130
|
+
maxArrayLength: 10,
|
|
131
|
+
maxStringLength: 80 - spacer.length * 2,
|
|
132
|
+
}, curAny[_argsSym]);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
// Fallback for browser environments
|
|
136
|
+
argsStr = safeStringify(curAny[_argsSym]);
|
|
137
|
+
}
|
|
138
|
+
argsStr = argsStr.replace(/^{/, '').replace(/}$/, '');
|
|
139
|
+
const jsonlines = argsStr
|
|
140
|
+
.split('\n')
|
|
141
|
+
.filter(Boolean)
|
|
142
|
+
.map((l) => spacer + spacer + l + '\n')
|
|
143
|
+
.join('');
|
|
144
|
+
lines.push('');
|
|
145
|
+
lines.push(spacer + 'context:\n' + jsonlines);
|
|
146
|
+
}
|
|
147
|
+
// include cause summary if non-Error (could be object)
|
|
148
|
+
const c = cur.cause ?? curAny[_causeSym];
|
|
149
|
+
if (c && !(c instanceof Error)) {
|
|
150
|
+
lines.push(spacer + 'cause: ' + safeStringify(c, space));
|
|
151
|
+
}
|
|
152
|
+
cur = c instanceof Error ? c : undefined;
|
|
153
|
+
depth += 1;
|
|
154
|
+
if (cur)
|
|
155
|
+
lines.push('-- caused by --');
|
|
156
|
+
}
|
|
157
|
+
return lines.join('\n');
|
|
158
|
+
}
|
|
159
|
+
toJSON() {
|
|
160
|
+
// Represent as merged: args, public enumerable props, plus well-known fields
|
|
161
|
+
const output = {};
|
|
162
|
+
// include args first (non-enumerable original values)
|
|
163
|
+
if (this[_argsSym]) {
|
|
164
|
+
Object.assign(output, this[_argsSym]);
|
|
165
|
+
}
|
|
166
|
+
// copy enumerable own props
|
|
167
|
+
for (const k of Object.keys(this)) {
|
|
168
|
+
// skip internal symbols (they are non-enumerable anyway)
|
|
169
|
+
output[k] = this[k];
|
|
170
|
+
}
|
|
171
|
+
// canonical fields
|
|
172
|
+
output.name = this.name;
|
|
173
|
+
if (this.message !== undefined)
|
|
174
|
+
output.message = this.message;
|
|
175
|
+
if (this.stack !== undefined)
|
|
176
|
+
output.stack = this.stack;
|
|
177
|
+
if (this.cause !== undefined) {
|
|
178
|
+
if (this.cause instanceof Error) {
|
|
179
|
+
output.cause = {
|
|
180
|
+
name: this.cause.name,
|
|
181
|
+
message: this.cause.message,
|
|
182
|
+
stack: this.cause.stack,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
output.cause = this.cause;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return output;
|
|
190
|
+
}
|
|
191
|
+
toString() {
|
|
192
|
+
// default to pretty print with small indent
|
|
193
|
+
return this.prettyPrint(2);
|
|
194
|
+
}
|
|
195
|
+
[util?.inspect?.custom || Symbol.for('nodejs.util.inspect.custom')](_depth, _options) {
|
|
196
|
+
return this.prettyPrint(); // or some concise string/JSON
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
export function StructuredError(tag, defaultMessage) {
|
|
200
|
+
function createErrorClass() {
|
|
201
|
+
// create a unique symbol for this tag's args storage so different factories don't clash
|
|
202
|
+
const tagArgsSym = Symbol.for(`@StructuredError:tag:${tag}`);
|
|
203
|
+
class Tagged extends RichError {
|
|
204
|
+
// runtime readonly property for tag
|
|
205
|
+
_tag = tag;
|
|
206
|
+
static defaultMessage = defaultMessage;
|
|
207
|
+
constructor(args) {
|
|
208
|
+
// ensure `_tag` isn't copied from args accidentally
|
|
209
|
+
const safeArgs = args && typeof args === 'object'
|
|
210
|
+
? (() => {
|
|
211
|
+
const { _tag: _discard, ...rest } = args;
|
|
212
|
+
return rest;
|
|
213
|
+
})()
|
|
214
|
+
: args;
|
|
215
|
+
// Apply default message if no message provided
|
|
216
|
+
const finalArgs = safeArgs && typeof safeArgs === 'object'
|
|
217
|
+
? { ...safeArgs, message: safeArgs.message ?? defaultMessage }
|
|
218
|
+
: defaultMessage
|
|
219
|
+
? { message: defaultMessage }
|
|
220
|
+
: safeArgs;
|
|
221
|
+
super(finalArgs);
|
|
222
|
+
// name the class for nicer stacks
|
|
223
|
+
try {
|
|
224
|
+
Object.defineProperty(this, 'name', { value: tag, configurable: true });
|
|
225
|
+
}
|
|
226
|
+
catch {
|
|
227
|
+
this.name = tag;
|
|
228
|
+
}
|
|
229
|
+
// mark as StructuredError with brand symbol
|
|
230
|
+
Object.defineProperty(this, _structuredSym, {
|
|
231
|
+
value: true,
|
|
232
|
+
enumerable: false,
|
|
233
|
+
writable: false,
|
|
234
|
+
});
|
|
235
|
+
// store tag args symbol to hide anything specific to this factory (non-enumerable)
|
|
236
|
+
Object.defineProperty(this, tagArgsSym, {
|
|
237
|
+
value: safeArgs,
|
|
238
|
+
enumerable: false,
|
|
239
|
+
writable: true,
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
// set prototype name (works in many engines)
|
|
244
|
+
try {
|
|
245
|
+
Object.defineProperty(Tagged, 'name', { value: String(tag) });
|
|
246
|
+
}
|
|
247
|
+
catch {
|
|
248
|
+
Tagged.name = tag;
|
|
249
|
+
}
|
|
250
|
+
return Tagged;
|
|
251
|
+
}
|
|
252
|
+
const baseClass = createErrorClass();
|
|
253
|
+
// Use a Proxy to intercept calls and return shaped classes
|
|
254
|
+
const callable = new Proxy(baseClass, {
|
|
255
|
+
apply(_target, _thisArg, _args) {
|
|
256
|
+
// When called as a function (for generic type application), return a new class
|
|
257
|
+
// This happens when TypeScript sees: StructuredError("Tag")<Shape>()
|
|
258
|
+
return createErrorClass();
|
|
259
|
+
},
|
|
260
|
+
});
|
|
261
|
+
return callable;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Returns true if the error passed is an instance of a StructuredObject
|
|
265
|
+
*
|
|
266
|
+
* @param err the error object
|
|
267
|
+
* @returns true if err is a StructuredError
|
|
268
|
+
*
|
|
269
|
+
* @example
|
|
270
|
+
* const UpgradeRequired = StructuredError("UpgradeRequired", "Upgrade required to access this feature")
|
|
271
|
+
* try {
|
|
272
|
+
* throw UpgradeRequired();
|
|
273
|
+
* } catch (ex) {
|
|
274
|
+
* if (isStructuredError(ex)) {
|
|
275
|
+
* console.log(ex._tag);
|
|
276
|
+
* }
|
|
277
|
+
* }
|
|
278
|
+
*/
|
|
279
|
+
export function isStructuredError(err) {
|
|
280
|
+
return (typeof err === 'object' &&
|
|
281
|
+
err !== null &&
|
|
282
|
+
(_structuredSym in err || err instanceof RichError) &&
|
|
283
|
+
typeof err._tag === 'string');
|
|
284
|
+
}
|
|
285
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const ServiceExceptionPayloadSchema: z.ZodObject<{
|
|
3
|
+
statusCode: z.ZodNumber;
|
|
4
|
+
method: z.ZodEnum<{
|
|
5
|
+
GET: "GET";
|
|
6
|
+
PUT: "PUT";
|
|
7
|
+
POST: "POST";
|
|
8
|
+
DELETE: "DELETE";
|
|
9
|
+
HEAD: "HEAD";
|
|
10
|
+
OPTIONS: "OPTIONS";
|
|
11
|
+
PATCH: "PATCH";
|
|
12
|
+
}>;
|
|
13
|
+
url: z.ZodString;
|
|
14
|
+
sessionId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
export type ServiceExceptionPayload = z.infer<typeof ServiceExceptionPayloadSchema>;
|
|
17
|
+
export declare const ServiceException: {
|
|
18
|
+
new (args?: ({
|
|
19
|
+
statusCode: number;
|
|
20
|
+
method: "GET" | "PUT" | "POST" | "DELETE" | "HEAD" | "OPTIONS" | "PATCH";
|
|
21
|
+
url: string;
|
|
22
|
+
sessionId?: string | null | undefined;
|
|
23
|
+
} & {
|
|
24
|
+
message?: string;
|
|
25
|
+
cause?: unknown;
|
|
26
|
+
}) | undefined): import("./error.ts").RichError & {
|
|
27
|
+
readonly _tag: "ServiceException";
|
|
28
|
+
} & Readonly<{
|
|
29
|
+
statusCode: number;
|
|
30
|
+
method: "GET" | "PUT" | "POST" | "DELETE" | "HEAD" | "OPTIONS" | "PATCH";
|
|
31
|
+
url: string;
|
|
32
|
+
sessionId?: string | null | undefined;
|
|
33
|
+
}>;
|
|
34
|
+
readonly defaultMessage?: string;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=exception.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exception.d.ts","sourceRoot":"","sources":["../src/exception.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;iBAWS,CAAC;AAEpD,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;CAAiE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { StructuredError } from "./error.js";
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { HttpMethodSchema } from "./fetch.js";
|
|
4
|
+
export const ServiceExceptionPayloadSchema = z
|
|
5
|
+
.object({
|
|
6
|
+
statusCode: z.number().describe('HTTP status code returned by the service.'),
|
|
7
|
+
method: HttpMethodSchema.describe('HTTP method used in the request.'),
|
|
8
|
+
url: z.string().describe('URL of the failed request.'),
|
|
9
|
+
sessionId: z
|
|
10
|
+
.string()
|
|
11
|
+
.optional()
|
|
12
|
+
.nullable()
|
|
13
|
+
.describe('Session ID associated with the request, if any.'),
|
|
14
|
+
})
|
|
15
|
+
.describe('Payload for service exception errors.');
|
|
16
|
+
export const ServiceException = StructuredError('ServiceException')();
|
|
17
|
+
//# sourceMappingURL=exception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exception.js","sourceRoot":"","sources":["../src/exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC5C,MAAM,CAAC;IACP,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IAC5E,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACrE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACtD,SAAS,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,iDAAiD,CAAC;CAC7D,CAAC;KACD,QAAQ,CAAC,uCAAuC,CAAC,CAAC;AAIpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC,kBAAkB,CAAC,EAA2B,CAAC"}
|
package/dist/fetch.d.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const FetchSuccessResponseSchema: <TData extends z.ZodTypeAny>(dataSchema: TData) => z.ZodObject<{
|
|
3
|
+
ok: z.ZodLiteral<true>;
|
|
4
|
+
data: TData;
|
|
5
|
+
response: z.ZodCustom<Response, Response>;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
export type FetchSuccessResponse<TData> = {
|
|
8
|
+
ok: true;
|
|
9
|
+
data: TData;
|
|
10
|
+
response: Response;
|
|
11
|
+
};
|
|
12
|
+
export declare const FetchErrorResponseSchema: z.ZodObject<{
|
|
13
|
+
ok: z.ZodLiteral<false>;
|
|
14
|
+
response: z.ZodCustom<Response, Response>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
export type FetchErrorResponse = {
|
|
17
|
+
ok: false;
|
|
18
|
+
response: Response;
|
|
19
|
+
};
|
|
20
|
+
export declare const FetchResponseSchema: <T extends z.ZodTypeAny>(dataSchema: T) => z.ZodUnion<readonly [z.ZodObject<{
|
|
21
|
+
ok: z.ZodLiteral<false>;
|
|
22
|
+
response: z.ZodCustom<Response, Response>;
|
|
23
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
24
|
+
ok: z.ZodLiteral<true>;
|
|
25
|
+
data: T;
|
|
26
|
+
response: z.ZodCustom<Response, Response>;
|
|
27
|
+
}, z.core.$strip>]>;
|
|
28
|
+
export type FetchResponse<T> = FetchErrorResponse | FetchSuccessResponse<T>;
|
|
29
|
+
export declare const BodySchema: z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>, z.ZodCustom<ArrayBuffer, ArrayBuffer>, z.ZodCustom<Blob, Blob>, z.ZodCustom<FormData, FormData>, z.ZodCustom<ReadableStream<any>, ReadableStream<any>>]>;
|
|
30
|
+
export type Body = z.infer<typeof BodySchema>;
|
|
31
|
+
export declare const HttpMethodSchema: z.ZodEnum<{
|
|
32
|
+
GET: "GET";
|
|
33
|
+
PUT: "PUT";
|
|
34
|
+
POST: "POST";
|
|
35
|
+
DELETE: "DELETE";
|
|
36
|
+
HEAD: "HEAD";
|
|
37
|
+
OPTIONS: "OPTIONS";
|
|
38
|
+
PATCH: "PATCH";
|
|
39
|
+
}>;
|
|
40
|
+
export type HttpMethod = z.infer<typeof HttpMethodSchema>;
|
|
41
|
+
export declare const FetchRequestSchema: z.ZodObject<{
|
|
42
|
+
method: z.ZodEnum<{
|
|
43
|
+
GET: "GET";
|
|
44
|
+
PUT: "PUT";
|
|
45
|
+
POST: "POST";
|
|
46
|
+
DELETE: "DELETE";
|
|
47
|
+
HEAD: "HEAD";
|
|
48
|
+
OPTIONS: "OPTIONS";
|
|
49
|
+
PATCH: "PATCH";
|
|
50
|
+
}>;
|
|
51
|
+
body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>, z.ZodCustom<ArrayBuffer, ArrayBuffer>, z.ZodCustom<Blob, Blob>, z.ZodCustom<FormData, FormData>, z.ZodCustom<ReadableStream<any>, ReadableStream<any>>]>>;
|
|
52
|
+
signal: z.ZodOptional<z.ZodCustom<AbortSignal, AbortSignal>>;
|
|
53
|
+
contentType: z.ZodOptional<z.ZodString>;
|
|
54
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
55
|
+
telemetry: z.ZodOptional<z.ZodObject<{
|
|
56
|
+
name: z.ZodString;
|
|
57
|
+
attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
58
|
+
}, z.core.$strip>>;
|
|
59
|
+
binary: z.ZodOptional<z.ZodLiteral<true>>;
|
|
60
|
+
duplex: z.ZodOptional<z.ZodLiteral<"half">>;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
export type FetchRequest = z.infer<typeof FetchRequestSchema>;
|
|
63
|
+
export interface FetchAdapter {
|
|
64
|
+
invoke<T>(url: string, options: FetchRequest): Promise<FetchResponse<T>>;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,0BAA0B,GAAI,KAAK,SAAS,CAAC,CAAC,UAAU,EAAE,YAAY,KAAK;;;;iBAKrF,CAAC;AAEJ,MAAM,MAAM,oBAAoB,CAAC,KAAK,IAAI;IACzC,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;iBAKa,CAAC;AAEnD,MAAM,MAAM,kBAAkB,GAAG;IAChC,EAAE,EAAE,KAAK,CAAC;IACV,QAAQ,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC;;;;;;;mBACG,CAAC;AAE7E,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,kBAAkB,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAE5E,eAAO,MAAM,UAAU,mQAWrB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C,eAAO,MAAM,gBAAgB;;;;;;;;EAEK,CAAC;AAEnC,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;iBA0BiB,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,MAAM,WAAW,YAAY;IAC5B,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CACzE"}
|
package/dist/fetch.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const FetchSuccessResponseSchema = (dataSchema) => z.object({
|
|
3
|
+
ok: z.literal(true).describe('Indicates the fetch request was successful.'),
|
|
4
|
+
data: dataSchema.describe('The parsed response data.'),
|
|
5
|
+
response: z.instanceof(Response).describe('The raw Response object.'),
|
|
6
|
+
});
|
|
7
|
+
export const FetchErrorResponseSchema = z
|
|
8
|
+
.object({
|
|
9
|
+
ok: z.literal(false).describe('Indicates the fetch request failed.'),
|
|
10
|
+
response: z.instanceof(Response).describe('The raw Response object.'),
|
|
11
|
+
})
|
|
12
|
+
.describe('Error response from a fetch request.');
|
|
13
|
+
export const FetchResponseSchema = (dataSchema) => z.union([FetchErrorResponseSchema, FetchSuccessResponseSchema(dataSchema)]);
|
|
14
|
+
export const BodySchema = z
|
|
15
|
+
.union([
|
|
16
|
+
z.string(),
|
|
17
|
+
z.custom((value) => value instanceof Uint8Array),
|
|
18
|
+
z.instanceof(ArrayBuffer),
|
|
19
|
+
z.instanceof(Blob),
|
|
20
|
+
z.instanceof(FormData),
|
|
21
|
+
z.custom((value) => value instanceof ReadableStream),
|
|
22
|
+
])
|
|
23
|
+
.describe('Request body content (string, Uint8Array, ArrayBuffer, Blob, FormData, or ReadableStream).');
|
|
24
|
+
export const HttpMethodSchema = z
|
|
25
|
+
.enum(['GET', 'PUT', 'POST', 'DELETE', 'HEAD', 'OPTIONS', 'PATCH'])
|
|
26
|
+
.describe('HTTP request method.');
|
|
27
|
+
export const FetchRequestSchema = z
|
|
28
|
+
.object({
|
|
29
|
+
method: HttpMethodSchema.describe('HTTP method for the request.'),
|
|
30
|
+
body: BodySchema.optional().describe('Optional request body.'),
|
|
31
|
+
signal: z
|
|
32
|
+
.instanceof(AbortSignal)
|
|
33
|
+
.optional()
|
|
34
|
+
.describe('Optional AbortSignal for request cancellation.'),
|
|
35
|
+
contentType: z.string().optional().describe('Content-Type header value.'),
|
|
36
|
+
headers: z.record(z.string(), z.string()).optional().describe('Additional HTTP headers.'),
|
|
37
|
+
telemetry: z
|
|
38
|
+
.object({
|
|
39
|
+
name: z.string().describe('Telemetry span name.'),
|
|
40
|
+
attributes: z
|
|
41
|
+
.record(z.string(), z.string())
|
|
42
|
+
.optional()
|
|
43
|
+
.describe('Additional telemetry attributes.'),
|
|
44
|
+
})
|
|
45
|
+
.optional()
|
|
46
|
+
.describe('Optional OpenTelemetry configuration for the request.'),
|
|
47
|
+
binary: z.literal(true).optional().describe('If true, treat the response as binary data.'),
|
|
48
|
+
duplex: z
|
|
49
|
+
.literal('half')
|
|
50
|
+
.optional()
|
|
51
|
+
.describe('Enable half-duplex streaming for the request.'),
|
|
52
|
+
})
|
|
53
|
+
.describe('Configuration for a fetch request.');
|
|
54
|
+
//# sourceMappingURL=fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Body, HttpMethod } from './fetch.ts';
|
|
2
|
+
import { ServiceException } from './exception.ts';
|
|
3
|
+
export declare const buildUrl: (base: string, path: string, subpath?: string, query?: URLSearchParams) => string;
|
|
4
|
+
export declare function toServiceException(method: HttpMethod, url: string, response: Response): Promise<InstanceType<typeof ServiceException>>;
|
|
5
|
+
export declare function toPayload(data: unknown): Promise<[Body, string | undefined]>;
|
|
6
|
+
export declare function fromResponse<T>(response: Response): Promise<T>;
|
|
7
|
+
//# sourceMappingURL=http-util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-util.d.ts","sourceRoot":"","sources":["../src/http-util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAuBlD,eAAO,MAAM,QAAQ,GACpB,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,UAAU,MAAM,EAChB,QAAQ,eAAe,KACrB,MAYF,CAAC;AAEF,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAqFhD;AAMD,wBAAsB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAsDlF;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAmCpE"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { safeStringify } from "./json.js";
|
|
2
|
+
import { ServiceException } from "./exception.js";
|
|
3
|
+
/**
|
|
4
|
+
* Extract a human-readable error message from an HTML error page or plain text body.
|
|
5
|
+
* Looks for content inside `<p>` tags first (Agentuity error pages put the message there),
|
|
6
|
+
* then falls back to the raw body.
|
|
7
|
+
*/
|
|
8
|
+
function extractMessageFromBody(body) {
|
|
9
|
+
if (body.includes('<html') || body.includes('<!DOCTYPE')) {
|
|
10
|
+
const pMatch = /<p[^>]*>([^<]+)<\/p>/i.exec(body);
|
|
11
|
+
if (pMatch?.[1]) {
|
|
12
|
+
const msg = pMatch[1].trim();
|
|
13
|
+
const refMatch = /^(.+?)\s*\(ref:\s*\S+\)$/.exec(msg);
|
|
14
|
+
return refMatch?.[1]?.trim() ?? msg;
|
|
15
|
+
}
|
|
16
|
+
const h1Match = /<h1[^>]*>([^<]+)<\/h1>/i.exec(body);
|
|
17
|
+
if (h1Match?.[1]) {
|
|
18
|
+
return h1Match[1].trim();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return body;
|
|
22
|
+
}
|
|
23
|
+
export const buildUrl = (base, path, subpath, query) => {
|
|
24
|
+
path = path.startsWith('/') ? path : `/${path}`;
|
|
25
|
+
const normalizedPath = subpath ? path.replace(/\/+$/, '') : path;
|
|
26
|
+
let url = base.replace(/\/$/, '') + normalizedPath;
|
|
27
|
+
if (subpath) {
|
|
28
|
+
const normalizedSubpath = subpath.replace(/^\/+/, '');
|
|
29
|
+
url += `/${normalizedSubpath}`;
|
|
30
|
+
}
|
|
31
|
+
if (query) {
|
|
32
|
+
url += `?${query.toString()}`;
|
|
33
|
+
}
|
|
34
|
+
return url;
|
|
35
|
+
};
|
|
36
|
+
export async function toServiceException(method, url, response) {
|
|
37
|
+
const sessionId = response.headers.get('x-session-id');
|
|
38
|
+
switch (response.status) {
|
|
39
|
+
case 401:
|
|
40
|
+
case 403:
|
|
41
|
+
return new ServiceException({
|
|
42
|
+
message: 'Unauthorized',
|
|
43
|
+
method,
|
|
44
|
+
url,
|
|
45
|
+
statusCode: response.status,
|
|
46
|
+
sessionId,
|
|
47
|
+
});
|
|
48
|
+
case 402:
|
|
49
|
+
return new ServiceException({
|
|
50
|
+
message: 'This action requires a paid plan. Please upgrade your account at https://app.agentuity.com/billing to continue.',
|
|
51
|
+
method,
|
|
52
|
+
url,
|
|
53
|
+
statusCode: response.status,
|
|
54
|
+
sessionId,
|
|
55
|
+
});
|
|
56
|
+
case 404:
|
|
57
|
+
return new ServiceException({
|
|
58
|
+
message: 'Not Found',
|
|
59
|
+
method,
|
|
60
|
+
url,
|
|
61
|
+
statusCode: response.status,
|
|
62
|
+
sessionId,
|
|
63
|
+
});
|
|
64
|
+
default:
|
|
65
|
+
}
|
|
66
|
+
const ct = response.headers.get('content-type');
|
|
67
|
+
if (ct?.includes('json')) {
|
|
68
|
+
try {
|
|
69
|
+
const payload = (await response.json());
|
|
70
|
+
if (payload.error) {
|
|
71
|
+
return new ServiceException({
|
|
72
|
+
message: payload.error,
|
|
73
|
+
method,
|
|
74
|
+
url,
|
|
75
|
+
statusCode: response.status,
|
|
76
|
+
sessionId,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
if (payload.message) {
|
|
80
|
+
return new ServiceException({
|
|
81
|
+
message: payload.message,
|
|
82
|
+
method,
|
|
83
|
+
url,
|
|
84
|
+
statusCode: response.status,
|
|
85
|
+
sessionId,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
return new ServiceException({
|
|
89
|
+
message: JSON.stringify(payload),
|
|
90
|
+
method,
|
|
91
|
+
url,
|
|
92
|
+
statusCode: response.status,
|
|
93
|
+
sessionId,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
/** don't worry */
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
const body = await response.text();
|
|
102
|
+
const message = extractMessageFromBody(body);
|
|
103
|
+
return new ServiceException({
|
|
104
|
+
message,
|
|
105
|
+
method,
|
|
106
|
+
url,
|
|
107
|
+
statusCode: response.status,
|
|
108
|
+
sessionId,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
/* fall through */
|
|
113
|
+
}
|
|
114
|
+
return new ServiceException({
|
|
115
|
+
message: response.statusText,
|
|
116
|
+
method,
|
|
117
|
+
url,
|
|
118
|
+
statusCode: response.status,
|
|
119
|
+
sessionId,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
const binaryContentType = 'application/octet-stream';
|
|
123
|
+
const textContentType = 'text/plain';
|
|
124
|
+
const jsonContentType = 'application/json';
|
|
125
|
+
export async function toPayload(data) {
|
|
126
|
+
if (data === undefined || data === null) {
|
|
127
|
+
return ['', textContentType];
|
|
128
|
+
}
|
|
129
|
+
switch (typeof data) {
|
|
130
|
+
case 'string':
|
|
131
|
+
if ((data.charAt(0) === '{' && data.charAt(data.length - 1) === '}') ||
|
|
132
|
+
(data.charAt(0) === '[' && data.charAt(data.length - 1) === ']')) {
|
|
133
|
+
try {
|
|
134
|
+
JSON.parse(data);
|
|
135
|
+
return [data, jsonContentType];
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
/* fall through */
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return [data, textContentType];
|
|
142
|
+
case 'boolean':
|
|
143
|
+
case 'number':
|
|
144
|
+
return [JSON.stringify(data), jsonContentType];
|
|
145
|
+
case 'bigint':
|
|
146
|
+
return [data.toString(), textContentType];
|
|
147
|
+
case 'symbol':
|
|
148
|
+
throw new TypeError('Unsupported payload type: symbol');
|
|
149
|
+
case 'function':
|
|
150
|
+
return toPayload(data());
|
|
151
|
+
case 'object': {
|
|
152
|
+
if (data instanceof ArrayBuffer) {
|
|
153
|
+
return [data, binaryContentType];
|
|
154
|
+
}
|
|
155
|
+
if (data instanceof Uint8Array) {
|
|
156
|
+
const buffer = data.byteOffset === 0 && data.byteLength === data.buffer.byteLength
|
|
157
|
+
? data.buffer
|
|
158
|
+
: data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
|
|
159
|
+
return [buffer, binaryContentType];
|
|
160
|
+
}
|
|
161
|
+
if (data instanceof Blob) {
|
|
162
|
+
return [data, data.type || binaryContentType];
|
|
163
|
+
}
|
|
164
|
+
if (data instanceof FormData) {
|
|
165
|
+
return [data, undefined];
|
|
166
|
+
}
|
|
167
|
+
if (data instanceof ReadableStream) {
|
|
168
|
+
return [data, binaryContentType];
|
|
169
|
+
}
|
|
170
|
+
if (data instanceof Promise) {
|
|
171
|
+
return toPayload(await data);
|
|
172
|
+
}
|
|
173
|
+
return [safeStringify(data), jsonContentType];
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
throw new TypeError(`Unsupported payload type: ${typeof data}`);
|
|
177
|
+
}
|
|
178
|
+
export async function fromResponse(response) {
|
|
179
|
+
const rawContentType = response.headers.get('content-type') ?? '';
|
|
180
|
+
const contentType = rawContentType.toLowerCase();
|
|
181
|
+
if (!contentType || contentType.includes('json')) {
|
|
182
|
+
if (response.status === 204 || response.status === 205 || response.status === 304) {
|
|
183
|
+
return undefined;
|
|
184
|
+
}
|
|
185
|
+
const text = await response.text();
|
|
186
|
+
if (!text.trim()) {
|
|
187
|
+
return undefined;
|
|
188
|
+
}
|
|
189
|
+
try {
|
|
190
|
+
return JSON.parse(text);
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
if (!contentType) {
|
|
194
|
+
return text;
|
|
195
|
+
}
|
|
196
|
+
throw error;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
if (contentType.startsWith('text/')) {
|
|
200
|
+
const text = await response.text();
|
|
201
|
+
if (text.trim().startsWith('{') || text.trim().startsWith('[')) {
|
|
202
|
+
try {
|
|
203
|
+
return JSON.parse(text);
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
// Not JSON, return as text
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return text;
|
|
210
|
+
}
|
|
211
|
+
return (await response.arrayBuffer());
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=http-util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-util.js","sourceRoot":"","sources":["../src/http-util.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
export type { Logger } from '
|
|
1
|
+
export type { Logger, LogLevel } from './logger.ts';
|
|
2
|
+
export { isStructuredError, RichError, StructuredError } from './error.ts';
|
|
3
|
+
export { safeStringify } from './json.ts';
|
|
4
|
+
export type { Body, FetchAdapter, FetchErrorResponse, FetchRequest, FetchResponse, FetchSuccessResponse, HttpMethod, } from './fetch.ts';
|
|
5
|
+
export { BodySchema, FetchErrorResponseSchema, FetchRequestSchema, FetchResponseSchema, FetchSuccessResponseSchema, HttpMethodSchema, } from './fetch.ts';
|
|
6
|
+
export { ServiceException, ServiceExceptionPayloadSchema, type ServiceExceptionPayload, } from './exception.ts';
|
|
7
|
+
export { buildUrl, fromResponse, toPayload, toServiceException } from './http-util.ts';
|
|
2
8
|
/**
|
|
3
9
|
* HTTP client adapter for Agentuity service clients.
|
|
4
10
|
*
|
|
@@ -8,8 +14,9 @@ export type { Logger } from '@agentuity/core';
|
|
|
8
14
|
*
|
|
9
15
|
* @module @agentuity/adapter
|
|
10
16
|
*/
|
|
11
|
-
import type { FetchRequest, FetchResponse, FetchAdapter
|
|
12
|
-
import {
|
|
17
|
+
import type { FetchRequest, FetchResponse, FetchAdapter } from './fetch.ts';
|
|
18
|
+
import type { Logger } from './logger.ts';
|
|
19
|
+
import { ServiceException } from './exception.ts';
|
|
13
20
|
/**
|
|
14
21
|
* Configuration for the service fetch adapter.
|
|
15
22
|
*/
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,YAAY,EACX,IAAI,EACJ,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,UAAU,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,UAAU,EACV,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,0BAA0B,EAC1B,gBAAgB,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,gBAAgB,EAChB,6BAA6B,EAC7B,KAAK,uBAAuB,GAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEvF;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACX,YAAY,EAEZ,aAAa,EACb,YAAY,EAEZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAQlD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,sCAAsC;IACtC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9F,qCAAqC;IACrC,OAAO,CAAC,EAAE,CAAC,CAAC,EACX,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,GAAG,CAAC,EAAE,YAAY,CAAC,OAAO,gBAAgB,CAAC,KACvC,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB;AAMD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACzC,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAa7F;AAkBD;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CACrB,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAU,EAClB,MAAM,GAAE,MAAU,EAClB,IAAI,GAAE,MAAY,GAChB,MAAM,CAaR;AAkLD,cAAM,kBAAmB,YAAW,YAAY;;gBAInC,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM;YAoB1C,OAAO;IA2Ef,MAAM,CAAC,CAAC,EACb,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,YAAiC,GACxC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CAsC5B;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,sBAEpF"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
export { isStructuredError, RichError, StructuredError } from "./error.js";
|
|
2
|
+
export { safeStringify } from "./json.js";
|
|
3
|
+
export { BodySchema, FetchErrorResponseSchema, FetchRequestSchema, FetchResponseSchema, FetchSuccessResponseSchema, HttpMethodSchema, } from "./fetch.js";
|
|
4
|
+
export { ServiceException, ServiceExceptionPayloadSchema, } from "./exception.js";
|
|
5
|
+
export { buildUrl, fromResponse, toPayload, toServiceException } from "./http-util.js";
|
|
6
|
+
import { ServiceException } from "./exception.js";
|
|
7
|
+
import { fromResponse, toServiceException } from "./http-util.js";
|
|
2
8
|
import { appendFileSync } from 'node:fs';
|
|
3
9
|
/**
|
|
4
10
|
* Builds standard headers for Agentuity service clients.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/json.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safely stringify an object to JSON, handling circular references
|
|
3
|
+
* @param obj - The object to stringify
|
|
4
|
+
* @returns JSON string representation
|
|
5
|
+
*/
|
|
6
|
+
export declare function safeStringify(obj: unknown, space?: number | string): string;
|
|
7
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAoB3E"}
|
package/dist/json.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safely stringify an object to JSON, handling circular references
|
|
3
|
+
* @param obj - The object to stringify
|
|
4
|
+
* @returns JSON string representation
|
|
5
|
+
*/
|
|
6
|
+
export function safeStringify(obj, space) {
|
|
7
|
+
const visited = new WeakSet();
|
|
8
|
+
function replacer(_key, value) {
|
|
9
|
+
if (typeof value === 'bigint') {
|
|
10
|
+
return value.toString();
|
|
11
|
+
}
|
|
12
|
+
if (typeof value === 'object' && value !== null) {
|
|
13
|
+
if (visited.has(value)) {
|
|
14
|
+
return '[Circular]';
|
|
15
|
+
}
|
|
16
|
+
visited.add(value);
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
return JSON.stringify(obj, replacer, space);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=json.js.map
|
package/dist/json.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY,EAAE,KAAuB;IAClE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,SAAS,QAAQ,CAAC,IAAY,EAAE,KAAc;QAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjD,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,YAAY,CAAC;YACrB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,KAAK,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC7C,CAAC"}
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log level type
|
|
3
|
+
*/
|
|
4
|
+
export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error';
|
|
5
|
+
/**
|
|
6
|
+
* Interface for logging functionality
|
|
7
|
+
*/
|
|
8
|
+
export interface Logger {
|
|
9
|
+
/**
|
|
10
|
+
* Log a trace message (most verbose)
|
|
11
|
+
*
|
|
12
|
+
* @param message - The message to log
|
|
13
|
+
* @param args - Additional arguments to log
|
|
14
|
+
*/
|
|
15
|
+
trace(message: unknown, ...args: unknown[]): void;
|
|
16
|
+
/**
|
|
17
|
+
* Log a debug message
|
|
18
|
+
*
|
|
19
|
+
* @param message - The message to log
|
|
20
|
+
* @param args - Additional arguments to log
|
|
21
|
+
*/
|
|
22
|
+
debug(message: unknown, ...args: unknown[]): void;
|
|
23
|
+
/**
|
|
24
|
+
* Log an info message
|
|
25
|
+
*
|
|
26
|
+
* @param message - The message to log
|
|
27
|
+
* @param args - Additional arguments to log
|
|
28
|
+
*/
|
|
29
|
+
info(message: unknown, ...args: unknown[]): void;
|
|
30
|
+
/**
|
|
31
|
+
* Log a warning message
|
|
32
|
+
*
|
|
33
|
+
* @param message - The message to log
|
|
34
|
+
* @param args - Additional arguments to log
|
|
35
|
+
*/
|
|
36
|
+
warn(message: unknown, ...args: unknown[]): void;
|
|
37
|
+
/**
|
|
38
|
+
* Log an error message
|
|
39
|
+
*
|
|
40
|
+
* @param message - The message to log
|
|
41
|
+
* @param args - Additional arguments to log
|
|
42
|
+
*/
|
|
43
|
+
error(message: unknown, ...args: unknown[]): void;
|
|
44
|
+
/**
|
|
45
|
+
* Log a fatal error message and exit the process
|
|
46
|
+
*
|
|
47
|
+
* @param message - The message to log
|
|
48
|
+
* @param args - Additional arguments to log
|
|
49
|
+
*/
|
|
50
|
+
fatal(message: unknown, ...args: unknown[]): never;
|
|
51
|
+
/**
|
|
52
|
+
* Create a child logger with additional context
|
|
53
|
+
*
|
|
54
|
+
* @param opts - Additional context for the child logger
|
|
55
|
+
* @returns A new logger instance with the additional context
|
|
56
|
+
*/
|
|
57
|
+
child(opts: Record<string, unknown>): Logger;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,MAAM;IACtB;;;;;OAKG;IACH,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAElD;;;;;OAKG;IACH,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAElD;;;;;OAKG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEjD;;;;;OAKG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEjD;;;;;OAKG;IACH,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAElD;;;;;OAKG;IACH,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEnD;;;;;OAKG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;CAC7C"}
|
package/dist/logger.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentuity/adapter",
|
|
3
|
-
"version": "3.0
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "Agentuity employees and contributors",
|
|
6
6
|
"description": "HTTP client adapter for Agentuity service clients",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"clean": "rm -rf dist *.tsbuildinfo"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"
|
|
26
|
+
"zod": "^4.3.5"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/bun": "latest",
|