@vertesia/api-fetch-client 1.1.1-dev.20260505.163000Z → 1.3.0-dev.20260620.061059Z
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 +51 -0
- package/lib/base.d.ts +169 -0
- package/lib/base.d.ts.map +1 -0
- package/lib/base.js +481 -0
- package/lib/base.js.map +1 -0
- package/lib/{types/client.d.ts → client.d.ts} +8 -8
- package/lib/client.d.ts.map +1 -0
- package/lib/{esm/client.js → client.js} +27 -11
- package/lib/client.js.map +1 -0
- package/lib/{types/errors.d.ts → errors.d.ts} +5 -5
- package/lib/errors.d.ts.map +1 -0
- package/lib/{esm/errors.js → errors.js} +22 -9
- package/lib/errors.js.map +1 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -0
- package/lib/{types/sse → sse}/EventSourceParserStream.d.ts +4 -1
- package/lib/sse/EventSourceParserStream.d.ts.map +1 -0
- package/lib/{esm/sse → sse}/EventSourceParserStream.js +5 -4
- package/lib/sse/EventSourceParserStream.js.map +1 -0
- package/lib/sse/TextDecoderStream.d.ts.map +1 -0
- package/lib/{esm/sse → sse}/TextDecoderStream.js +2 -2
- package/lib/sse/TextDecoderStream.js.map +1 -0
- package/lib/{types/sse → sse}/index.d.ts +7 -2
- package/lib/sse/index.d.ts.map +1 -0
- package/lib/{esm/sse → sse}/index.js +3 -3
- package/lib/sse/index.js.map +1 -0
- package/lib/{types/utils.d.ts → utils.d.ts} +1 -1
- package/lib/utils.d.ts.map +1 -0
- package/lib/{esm/utils.js → utils.js} +3 -3
- package/lib/utils.js.map +1 -0
- package/package.json +22 -25
- package/src/base.ts +432 -79
- package/src/client.ts +50 -24
- package/src/errors.ts +28 -15
- package/src/index.ts +4 -4
- package/src/sse/EventSourceParserStream.ts +13 -10
- package/src/sse/TextDecoderStream.ts +16 -11
- package/src/sse/index.ts +14 -8
- package/src/utils.ts +5 -6
- package/lib/cjs/base.js +0 -240
- package/lib/cjs/base.js.map +0 -1
- package/lib/cjs/client.js +0 -115
- package/lib/cjs/client.js.map +0 -1
- package/lib/cjs/errors.js +0 -63
- package/lib/cjs/errors.js.map +0 -1
- package/lib/cjs/index.js +0 -21
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/package.json +0 -3
- package/lib/cjs/sse/EventSourceParserStream.js +0 -41
- package/lib/cjs/sse/EventSourceParserStream.js.map +0 -1
- package/lib/cjs/sse/TextDecoderStream.js +0 -53
- package/lib/cjs/sse/TextDecoderStream.js.map +0 -1
- package/lib/cjs/sse/index.js +0 -27
- package/lib/cjs/sse/index.js.map +0 -1
- package/lib/cjs/utils.js +0 -38
- package/lib/cjs/utils.js.map +0 -1
- package/lib/esm/base.js +0 -235
- package/lib/esm/base.js.map +0 -1
- package/lib/esm/client.js.map +0 -1
- package/lib/esm/errors.js.map +0 -1
- package/lib/esm/index.js +0 -5
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/sse/EventSourceParserStream.js.map +0 -1
- package/lib/esm/sse/TextDecoderStream.js.map +0 -1
- package/lib/esm/sse/index.js.map +0 -1
- package/lib/esm/utils.js.map +0 -1
- package/lib/tsconfig.tsbuildinfo +0 -1
- package/lib/types/base.d.ts +0 -83
- package/lib/types/base.d.ts.map +0 -1
- package/lib/types/client.d.ts.map +0 -1
- package/lib/types/errors.d.ts.map +0 -1
- package/lib/types/index.d.ts +0 -5
- package/lib/types/index.d.ts.map +0 -1
- package/lib/types/sse/EventSourceParserStream.d.ts.map +0 -1
- package/lib/types/sse/TextDecoderStream.d.ts.map +0 -1
- package/lib/types/sse/index.d.ts.map +0 -1
- package/lib/types/utils.d.ts.map +0 -1
- /package/lib/{types/sse → sse}/TextDecoderStream.d.ts +0 -0
|
@@ -1,15 +1,27 @@
|
|
|
1
|
+
function isRecord(value) {
|
|
2
|
+
return value !== null && typeof value === 'object';
|
|
3
|
+
}
|
|
4
|
+
function getDetails(payload) {
|
|
5
|
+
if (!isRecord(payload)) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
if (payload.details) {
|
|
9
|
+
return payload.details;
|
|
10
|
+
}
|
|
11
|
+
return isRecord(payload.error) ? payload.error.details : undefined;
|
|
12
|
+
}
|
|
1
13
|
function createMessage(message, request, status, payload, displayDetails) {
|
|
2
14
|
let msg = message;
|
|
3
15
|
if (displayDetails) {
|
|
4
|
-
msg +=
|
|
5
|
-
const details = payload
|
|
16
|
+
msg += `\nRequest: ${request.method} ${request.url} => ${status}`;
|
|
17
|
+
const details = getDetails(payload);
|
|
6
18
|
if (details) {
|
|
7
19
|
const detailsType = typeof details;
|
|
8
20
|
if (detailsType === 'string') {
|
|
9
|
-
msg +=
|
|
21
|
+
msg += `\nDetails: ${details}`;
|
|
10
22
|
}
|
|
11
|
-
else if (detailsType ===
|
|
12
|
-
msg +=
|
|
23
|
+
else if (detailsType === 'object') {
|
|
24
|
+
msg += `\nDetails: ${JSON.stringify(details, undefined, 2)}`;
|
|
13
25
|
}
|
|
14
26
|
}
|
|
15
27
|
msg += '\nStack Trace: ';
|
|
@@ -29,11 +41,11 @@ export class RequestError extends Error {
|
|
|
29
41
|
this.request = request;
|
|
30
42
|
this.status = status;
|
|
31
43
|
this.payload = payload;
|
|
32
|
-
this.request_info = request.method
|
|
44
|
+
this.request_info = `${request.method} ${request.url} => ${status}`;
|
|
33
45
|
this.displayDetails = displayDetails;
|
|
34
46
|
}
|
|
35
47
|
get details() {
|
|
36
|
-
return this.payload
|
|
48
|
+
return getDetails(this.payload);
|
|
37
49
|
}
|
|
38
50
|
}
|
|
39
51
|
export class ServerError extends RequestError {
|
|
@@ -42,7 +54,8 @@ export class ServerError extends RequestError {
|
|
|
42
54
|
}
|
|
43
55
|
updateDetails(details) {
|
|
44
56
|
if (details !== this.details) {
|
|
45
|
-
|
|
57
|
+
const payload = isRecord(this.payload) ? { ...this.payload, details } : { details };
|
|
58
|
+
return new ServerError(this.original_message, this.request, this.status, payload, this.displayDetails);
|
|
46
59
|
}
|
|
47
60
|
else {
|
|
48
61
|
return this;
|
|
@@ -51,7 +64,7 @@ export class ServerError extends RequestError {
|
|
|
51
64
|
}
|
|
52
65
|
export class ConnectionError extends RequestError {
|
|
53
66
|
constructor(req, err) {
|
|
54
|
-
super(
|
|
67
|
+
super(`Failed to connect to server: ${err.message}`, req, 0, err);
|
|
55
68
|
}
|
|
56
69
|
}
|
|
57
70
|
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}
|
package/lib/index.js
ADDED
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type EventSourceMessage } from 'eventsource-parser';
|
|
2
|
+
export type ParsedEvent = EventSourceMessage & {
|
|
3
|
+
type: 'event';
|
|
4
|
+
};
|
|
2
5
|
/**
|
|
3
6
|
* We copied this file from the eventsource-parser/stream package and made it a part of our project.
|
|
4
7
|
* because importing the eventsource-parser/stream breaks tsc build when building the commonjs version
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventSourceParserStream.d.ts","sourceRoot":"","sources":["../../src/sse/EventSourceParserStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,kBAAkB,EAA0B,MAAM,oBAAoB,CAAC;AAEnG,MAAM,MAAM,WAAW,GAAG,kBAAkB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjE;;;;;GAKG;AAEH;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAwB,SAAQ,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC;;CAkBhF"}
|
|
@@ -22,10 +22,11 @@ export class EventSourceParserStream extends TransformStream {
|
|
|
22
22
|
let parser;
|
|
23
23
|
super({
|
|
24
24
|
start(controller) {
|
|
25
|
-
parser = createParser(
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
parser = createParser({
|
|
26
|
+
onEvent(event) {
|
|
27
|
+
const parsedEvent = { type: 'event', ...event };
|
|
28
|
+
controller.enqueue(parsedEvent);
|
|
29
|
+
},
|
|
29
30
|
});
|
|
30
31
|
},
|
|
31
32
|
transform(chunk) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventSourceParserStream.js","sourceRoot":"","sources":["../../src/sse/EventSourceParserStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAmD,MAAM,oBAAoB,CAAC;AAInG;;;;;GAKG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,uBAAwB,SAAQ,eAAoC;IAC7E;QACI,IAAI,MAA0B,CAAC;QAE/B,KAAK,CAAC;YACF,KAAK,CAAC,UAAU;gBACZ,MAAM,GAAG,YAAY,CAAC;oBAClB,OAAO,CAAC,KAAK;wBACT,MAAM,WAAW,GAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;wBAC7D,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBACpC,CAAC;iBACJ,CAAC,CAAC;YACP,CAAC;YACD,SAAS,CAAC,KAAK;gBACX,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextDecoderStream.d.ts","sourceRoot":"","sources":["../../src/sse/TextDecoderStream.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,QAAA,IAAI,kBAAkB,EAAE,OAAO,iBAAiB,CAAC;AA6DjD,OAAO,EAAE,kBAAkB,IAAI,iBAAiB,EAAE,CAAC"}
|
|
@@ -10,7 +10,7 @@ if (globalThis.TextDecoderStream && typeof globalThis.TextDecoderStream === 'fun
|
|
|
10
10
|
else {
|
|
11
11
|
class MyTextDecoderStream extends TransformStream {
|
|
12
12
|
_options;
|
|
13
|
-
constructor(encoding =
|
|
13
|
+
constructor(encoding = 'utf-8', { fatal = false, ignoreBOM = false, } = {}) {
|
|
14
14
|
super(new TextDecodeTransformer(new TextDecoder(encoding, { fatal, ignoreBOM })));
|
|
15
15
|
this._options = { fatal, ignoreBOM, encoding };
|
|
16
16
|
}
|
|
@@ -31,7 +31,7 @@ else {
|
|
|
31
31
|
}
|
|
32
32
|
transform(chunk, controller) {
|
|
33
33
|
if (!(chunk instanceof ArrayBuffer || ArrayBuffer.isView(chunk))) {
|
|
34
|
-
throw new TypeError(
|
|
34
|
+
throw new TypeError('Input must be a compatible with: ArrayBuffer | Uint8Array');
|
|
35
35
|
}
|
|
36
36
|
const text = this.decoder.decode(chunk, { stream: true });
|
|
37
37
|
if (text.length !== 0) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextDecoderStream.js","sourceRoot":"","sources":["../../src/sse/TextDecoderStream.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,IAAI,kBAA4C,CAAC;AACjD,IAAI,UAAU,CAAC,iBAAiB,IAAI,OAAO,UAAU,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;IACrF,kBAAkB,GAAG,UAAU,CAAC,iBAAiB,CAAC;AACtD,CAAC;KAAM,CAAC;IACJ,MAAM,mBAAoB,SAAQ,eAAiD;QACvE,QAAQ,CAId;QACF,YACI,QAAQ,GAAG,OAAO,EAClB,EACI,KAAK,GAAG,KAAK,EACb,SAAS,GAAG,KAAK,MAIjB,EAAE;YAEN,KAAK,CAAC,IAAI,qBAAqB,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YAClF,IAAI,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QACnD,CAAC;QAED,IAAI,QAAQ;YACR,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAClC,CAAC;QACD,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC/B,CAAC;QACD,IAAI,SAAS;YACT,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QACnC,CAAC;KACJ;IACD,MAAM,qBAAqB;QACf,OAAO,CAAc;QAE7B,YAAY,OAAoB;YAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAC3B,CAAC;QAED,SAAS,CAAC,KAA+B,EAAE,UAAoD;YAC3F,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC/D,MAAM,IAAI,SAAS,CAAC,2DAA2D,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpB,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;QAED,KAAK,CAAC,UAAoD;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpB,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;KACJ;IACD,kBAAkB,GAAG,mBAA+C,CAAC;AACzE,CAAC;AAED,OAAO,EAAE,kBAAkB,IAAI,iBAAiB,EAAE,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { type ParsedEvent } from './EventSourceParserStream.js';
|
|
2
|
+
import { TextDecoderStream } from './TextDecoderStream.js';
|
|
3
|
+
export type { ParsedEvent };
|
|
4
|
+
export interface ReconnectInterval {
|
|
5
|
+
type: 'reconnect-interval';
|
|
6
|
+
value: number;
|
|
7
|
+
}
|
|
3
8
|
export type ServerSentEvent = ParsedEvent | ReconnectInterval;
|
|
4
9
|
/**
|
|
5
10
|
* A SSE response reader.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sse/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAC9D;;;;;;GAMG;AACH,wBAAsB,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAWtF;AAGD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { EventSourceParserStream } from './EventSourceParserStream.js';
|
|
2
|
+
import { TextDecoderStream } from './TextDecoderStream.js';
|
|
3
3
|
/**
|
|
4
4
|
* A SSE response reader.
|
|
5
5
|
* Usage client.get('/path', {reader: sse}) or client.post('/path', {reader: sse})
|
|
@@ -10,7 +10,7 @@ import { EventSourceParserStream } from "./EventSourceParserStream.js";
|
|
|
10
10
|
export async function sse(response) {
|
|
11
11
|
if (!response.ok) {
|
|
12
12
|
const text = await response.text();
|
|
13
|
-
const error = new Error(
|
|
13
|
+
const error = new Error(`SSE error: ${response.status}. Content:\n${text}`);
|
|
14
14
|
error.status = response.status;
|
|
15
15
|
throw error;
|
|
16
16
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sse/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAoB,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAU3D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,QAAkB;IACxC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,cAAc,QAAQ,CAAC,MAAM,eAAe,IAAI,EAAE,CAAgC,CAAC;QAC3G,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC/B,MAAM,KAAK,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,uBAAuB,EAAE,CAAC,CAAC;AACzG,CAAC;AAED,0DAA0D;AAC1D,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare function buildQueryString(query:
|
|
1
|
+
export declare function buildQueryString(query: Record<string, unknown>): string;
|
|
2
2
|
export declare function join(left: string, right: string): string;
|
|
3
3
|
export declare function removeTrailingSlash(path: string): string;
|
|
4
4
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAS9D;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAY/C;AACD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,UAK/C"}
|
|
@@ -3,10 +3,10 @@ export function buildQueryString(query) {
|
|
|
3
3
|
for (const key of Object.keys(query)) {
|
|
4
4
|
const val = query[key];
|
|
5
5
|
if (val != null) {
|
|
6
|
-
parts.push(encodeURIComponent(key)
|
|
6
|
+
parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(val))}`);
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
return parts.join(
|
|
9
|
+
return parts.join('&');
|
|
10
10
|
}
|
|
11
11
|
export function join(left, right) {
|
|
12
12
|
if (left.endsWith('/')) {
|
|
@@ -21,7 +21,7 @@ export function join(left, right) {
|
|
|
21
21
|
return left + right;
|
|
22
22
|
}
|
|
23
23
|
else {
|
|
24
|
-
return left
|
|
24
|
+
return `${left}/${right}`;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
export function removeTrailingSlash(path) {
|
package/lib/utils.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAC,KAA8B;IAC3D,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,KAAa;IAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,GAAG,KAAK,CAAC;QACxB,CAAC;IACL,CAAC;SAAM,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,GAAG,KAAK,CAAC;IACxB,CAAC;SAAM,CAAC;QACJ,OAAO,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC;IAC9B,CAAC;AACL,CAAC;AACD,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC5C,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vertesia/api-fetch-client",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0-dev.20260620.061059Z",
|
|
4
4
|
"description": "HTTP client which wraps a fetch implementation and simplify the creation of REST API clients. Works both in browser and in node.",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"
|
|
6
|
+
"main": "./lib/index.js",
|
|
7
|
+
"types": "./lib/index.d.ts",
|
|
7
8
|
"files": [
|
|
8
9
|
"lib",
|
|
9
10
|
"src"
|
|
10
11
|
],
|
|
11
|
-
"ts_dual_module": {
|
|
12
|
-
"outDir": "lib"
|
|
13
|
-
},
|
|
14
12
|
"exports": {
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./lib/index.d.ts",
|
|
15
|
+
"default": "./lib/index.js"
|
|
16
|
+
}
|
|
18
17
|
},
|
|
19
18
|
"repository": {
|
|
20
19
|
"type": "git",
|
|
@@ -39,28 +38,26 @@
|
|
|
39
38
|
},
|
|
40
39
|
"homepage": "https://github.com/vertesia/composableai/tree/main/packages/api-fetch-client#readme",
|
|
41
40
|
"devDependencies": {
|
|
42
|
-
"@
|
|
43
|
-
"@koa-stack/router": "^0.24.0",
|
|
44
|
-
"@koa-stack/server": "^0.24.0",
|
|
45
|
-
"@types/koa": "^2.15.0",
|
|
41
|
+
"@types/koa": "^3.0.3",
|
|
46
42
|
"@types/mocha": "^10.0.10",
|
|
47
|
-
"
|
|
48
|
-
"koa": "^2.
|
|
49
|
-
"mocha": "^
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"vitest": "^4.0.16"
|
|
43
|
+
"@types/node": "^24.13.2",
|
|
44
|
+
"koa": "^3.2.1",
|
|
45
|
+
"mocha": "^11.7.6",
|
|
46
|
+
"tsx": "^4.22.4",
|
|
47
|
+
"typescript": "^6.0.3",
|
|
48
|
+
"@koa-stack/router": "0.24.0",
|
|
49
|
+
"@koa-stack/server": "0.24.0",
|
|
50
|
+
"@vertesia/tsconfig": "0.1.0"
|
|
56
51
|
},
|
|
57
52
|
"dependencies": {
|
|
58
|
-
"eventsource-parser": "^
|
|
53
|
+
"eventsource-parser": "^3.1.0"
|
|
59
54
|
},
|
|
55
|
+
"gitHead": "126bce3719b6720fab33aa150fc28c7ea7d6b083",
|
|
60
56
|
"scripts": {
|
|
61
57
|
"test": "ESBK_TSCONFIG_PATH=./test/tsconfig.json pnpm exec mocha -r tsx --exit ./test/**/*.ts",
|
|
62
|
-
"lint": "
|
|
63
|
-
"
|
|
64
|
-
"
|
|
58
|
+
"lint": "biome lint src",
|
|
59
|
+
"typecheck:test": "tsc -p test/tsconfig.json --noEmit",
|
|
60
|
+
"build": "rm -rf ./lib ./tsconfig.tsbuildinfo && tsc --build",
|
|
61
|
+
"clean": "rm -rf ./node_modules ./lib ./tsconfig.tsbuildinfo"
|
|
65
62
|
}
|
|
66
63
|
}
|