@ai-sdk/provider-utils 3.0.0-canary.0 → 3.0.0-canary.1
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/CHANGELOG.md +8 -0
- package/dist/index.js +15 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +14 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -2
- package/test/dist/index.d.mts +2 -40
- package/test/dist/index.d.ts +2 -40
- package/test/dist/index.js +6 -189
- package/test/dist/index.js.map +1 -1
- package/test/dist/index.mjs +5 -186
- package/test/dist/index.mjs.map +1 -1
package/test/dist/index.d.mts
CHANGED
@@ -14,45 +14,6 @@ declare function mockId({ prefix, }?: {
|
|
14
14
|
prefix?: string;
|
15
15
|
}): () => string;
|
16
16
|
|
17
|
-
type TestServerJsonBodyType = JsonBodyType;
|
18
|
-
type TestServerResponse = {
|
19
|
-
url: string;
|
20
|
-
headers?: Record<string, string>;
|
21
|
-
} & ({
|
22
|
-
type: 'json-value';
|
23
|
-
content: TestServerJsonBodyType;
|
24
|
-
} | {
|
25
|
-
type: 'stream-values';
|
26
|
-
content: Array<string>;
|
27
|
-
} | {
|
28
|
-
type: 'controlled-stream';
|
29
|
-
id?: string;
|
30
|
-
} | {
|
31
|
-
type: 'error';
|
32
|
-
status: number;
|
33
|
-
content?: string;
|
34
|
-
});
|
35
|
-
declare class TestServerCall$1 {
|
36
|
-
private request;
|
37
|
-
constructor(request: Request);
|
38
|
-
getRequestBodyJson(): Promise<any>;
|
39
|
-
getRequestCredentials(): RequestCredentials;
|
40
|
-
getRequestHeaders(): Record<string, string>;
|
41
|
-
getRequestUrlSearchParams(): URLSearchParams;
|
42
|
-
}
|
43
|
-
declare function withTestServer(responses: Array<TestServerResponse> | TestServerResponse, testFunction: (options: {
|
44
|
-
calls: () => Array<TestServerCall$1>;
|
45
|
-
call: (index: number) => TestServerCall$1;
|
46
|
-
getStreamController: (id: string) => ReadableStreamDefaultController<string>;
|
47
|
-
streamController: ReadableStreamDefaultController<string>;
|
48
|
-
}) => Promise<void>): () => Promise<void>;
|
49
|
-
declare function describeWithTestServer(description: string, responses: Array<TestServerResponse> | TestServerResponse, testFunction: (options: {
|
50
|
-
calls: () => Array<TestServerCall$1>;
|
51
|
-
call: (index: number) => TestServerCall$1;
|
52
|
-
getStreamController: (id: string) => ReadableStreamDefaultController<string>;
|
53
|
-
streamController: ReadableStreamDefaultController<string>;
|
54
|
-
}) => void): void;
|
55
|
-
|
56
17
|
type UrlResponse = {
|
57
18
|
type: 'json-value';
|
58
19
|
headers?: Record<string, string>;
|
@@ -96,6 +57,7 @@ declare class TestServerCall {
|
|
96
57
|
private request;
|
97
58
|
constructor(request: Request);
|
98
59
|
get requestBody(): Promise<any>;
|
60
|
+
get requestCredentials(): RequestCredentials;
|
99
61
|
get requestHeaders(): Record<string, string>;
|
100
62
|
get requestUrlSearchParams(): URLSearchParams;
|
101
63
|
get requestUrl(): string;
|
@@ -119,4 +81,4 @@ declare class TestResponseController {
|
|
119
81
|
close(): Promise<void>;
|
120
82
|
}
|
121
83
|
|
122
|
-
export { TestResponseController, type
|
84
|
+
export { TestResponseController, type UrlHandler, type UrlHandlers, type UrlResponse, convertArrayToAsyncIterable, convertArrayToReadableStream, convertAsyncIterableToArray, convertReadableStreamToArray, convertResponseStreamToArray, createTestServer, mockId };
|
package/test/dist/index.d.ts
CHANGED
@@ -14,45 +14,6 @@ declare function mockId({ prefix, }?: {
|
|
14
14
|
prefix?: string;
|
15
15
|
}): () => string;
|
16
16
|
|
17
|
-
type TestServerJsonBodyType = JsonBodyType;
|
18
|
-
type TestServerResponse = {
|
19
|
-
url: string;
|
20
|
-
headers?: Record<string, string>;
|
21
|
-
} & ({
|
22
|
-
type: 'json-value';
|
23
|
-
content: TestServerJsonBodyType;
|
24
|
-
} | {
|
25
|
-
type: 'stream-values';
|
26
|
-
content: Array<string>;
|
27
|
-
} | {
|
28
|
-
type: 'controlled-stream';
|
29
|
-
id?: string;
|
30
|
-
} | {
|
31
|
-
type: 'error';
|
32
|
-
status: number;
|
33
|
-
content?: string;
|
34
|
-
});
|
35
|
-
declare class TestServerCall$1 {
|
36
|
-
private request;
|
37
|
-
constructor(request: Request);
|
38
|
-
getRequestBodyJson(): Promise<any>;
|
39
|
-
getRequestCredentials(): RequestCredentials;
|
40
|
-
getRequestHeaders(): Record<string, string>;
|
41
|
-
getRequestUrlSearchParams(): URLSearchParams;
|
42
|
-
}
|
43
|
-
declare function withTestServer(responses: Array<TestServerResponse> | TestServerResponse, testFunction: (options: {
|
44
|
-
calls: () => Array<TestServerCall$1>;
|
45
|
-
call: (index: number) => TestServerCall$1;
|
46
|
-
getStreamController: (id: string) => ReadableStreamDefaultController<string>;
|
47
|
-
streamController: ReadableStreamDefaultController<string>;
|
48
|
-
}) => Promise<void>): () => Promise<void>;
|
49
|
-
declare function describeWithTestServer(description: string, responses: Array<TestServerResponse> | TestServerResponse, testFunction: (options: {
|
50
|
-
calls: () => Array<TestServerCall$1>;
|
51
|
-
call: (index: number) => TestServerCall$1;
|
52
|
-
getStreamController: (id: string) => ReadableStreamDefaultController<string>;
|
53
|
-
streamController: ReadableStreamDefaultController<string>;
|
54
|
-
}) => void): void;
|
55
|
-
|
56
17
|
type UrlResponse = {
|
57
18
|
type: 'json-value';
|
58
19
|
headers?: Record<string, string>;
|
@@ -96,6 +57,7 @@ declare class TestServerCall {
|
|
96
57
|
private request;
|
97
58
|
constructor(request: Request);
|
98
59
|
get requestBody(): Promise<any>;
|
60
|
+
get requestCredentials(): RequestCredentials;
|
99
61
|
get requestHeaders(): Record<string, string>;
|
100
62
|
get requestUrlSearchParams(): URLSearchParams;
|
101
63
|
get requestUrl(): string;
|
@@ -119,4 +81,4 @@ declare class TestResponseController {
|
|
119
81
|
close(): Promise<void>;
|
120
82
|
}
|
121
83
|
|
122
|
-
export { TestResponseController, type
|
84
|
+
export { TestResponseController, type UrlHandler, type UrlHandlers, type UrlResponse, convertArrayToAsyncIterable, convertArrayToReadableStream, convertAsyncIterableToArray, convertReadableStreamToArray, convertResponseStreamToArray, createTestServer, mockId };
|
package/test/dist/index.js
CHANGED
@@ -64,9 +64,7 @@ __export(test_exports, {
|
|
64
64
|
convertReadableStreamToArray: () => convertReadableStreamToArray,
|
65
65
|
convertResponseStreamToArray: () => convertResponseStreamToArray,
|
66
66
|
createTestServer: () => createTestServer,
|
67
|
-
|
68
|
-
mockId: () => mockId,
|
69
|
-
withTestServer: () => withTestServer
|
67
|
+
mockId: () => mockId
|
70
68
|
});
|
71
69
|
module.exports = __toCommonJS(test_exports);
|
72
70
|
|
@@ -18497,194 +18495,15 @@ var setupServer = (...handlers) => {
|
|
18497
18495
|
|
18498
18496
|
// src/test/test-server.ts
|
18499
18497
|
var TestServerCall = class {
|
18500
|
-
constructor(request) {
|
18501
|
-
this.request = request;
|
18502
|
-
}
|
18503
|
-
async getRequestBodyJson() {
|
18504
|
-
expect(this.request).toBeDefined();
|
18505
|
-
return JSON.parse(await this.request.text());
|
18506
|
-
}
|
18507
|
-
getRequestCredentials() {
|
18508
|
-
expect(this.request).toBeDefined();
|
18509
|
-
return this.request.credentials;
|
18510
|
-
}
|
18511
|
-
getRequestHeaders() {
|
18512
|
-
expect(this.request).toBeDefined();
|
18513
|
-
const requestHeaders = this.request.headers;
|
18514
|
-
const headersObject = {};
|
18515
|
-
requestHeaders.forEach((value, key) => {
|
18516
|
-
headersObject[key] = value;
|
18517
|
-
});
|
18518
|
-
return headersObject;
|
18519
|
-
}
|
18520
|
-
getRequestUrlSearchParams() {
|
18521
|
-
expect(this.request).toBeDefined();
|
18522
|
-
return new URL(this.request.url).searchParams;
|
18523
|
-
}
|
18524
|
-
};
|
18525
|
-
function createServer({
|
18526
|
-
responses,
|
18527
|
-
pushCall,
|
18528
|
-
pushController
|
18529
|
-
}) {
|
18530
|
-
const responsesArray = Array.isArray(responses) ? responses : [responses];
|
18531
|
-
const responsesByUrl = responsesArray.reduce(
|
18532
|
-
(responsesByUrl2, response) => {
|
18533
|
-
if (!responsesByUrl2[response.url]) {
|
18534
|
-
responsesByUrl2[response.url] = [];
|
18535
|
-
}
|
18536
|
-
responsesByUrl2[response.url].push(response);
|
18537
|
-
return responsesByUrl2;
|
18538
|
-
},
|
18539
|
-
{}
|
18540
|
-
);
|
18541
|
-
const streams = {};
|
18542
|
-
responsesArray.filter(
|
18543
|
-
(response) => response.type === "controlled-stream"
|
18544
|
-
).forEach((response) => {
|
18545
|
-
var _a4, _b2;
|
18546
|
-
let streamController;
|
18547
|
-
const stream = new ReadableStream({
|
18548
|
-
start(controller) {
|
18549
|
-
streamController = controller;
|
18550
|
-
}
|
18551
|
-
});
|
18552
|
-
pushController((_a4 = response.id) != null ? _a4 : "", () => streamController);
|
18553
|
-
streams[(_b2 = response.id) != null ? _b2 : ""] = stream;
|
18554
|
-
});
|
18555
|
-
const urlInvocationCounts = Object.fromEntries(
|
18556
|
-
Object.entries(responsesByUrl).map(([url]) => [url, 0])
|
18557
|
-
);
|
18558
|
-
return setupServer(
|
18559
|
-
...Object.entries(responsesByUrl).map(([url, responses2]) => {
|
18560
|
-
return http.post(url, ({ request }) => {
|
18561
|
-
var _a4, _b2;
|
18562
|
-
pushCall(new TestServerCall(request));
|
18563
|
-
const invocationCount = urlInvocationCounts[url]++;
|
18564
|
-
const response = responses2[
|
18565
|
-
// TODO bug needs to be >=
|
18566
|
-
invocationCount > responses2.length ? responses2.length - 1 : invocationCount
|
18567
|
-
];
|
18568
|
-
switch (response.type) {
|
18569
|
-
case "json-value":
|
18570
|
-
return HttpResponse.json(response.content, {
|
18571
|
-
status: 200,
|
18572
|
-
headers: {
|
18573
|
-
"Content-Type": "application/json",
|
18574
|
-
...response.headers
|
18575
|
-
}
|
18576
|
-
});
|
18577
|
-
case "stream-values":
|
18578
|
-
return new HttpResponse(
|
18579
|
-
convertArrayToReadableStream(response.content).pipeThrough(
|
18580
|
-
new TextEncoderStream()
|
18581
|
-
),
|
18582
|
-
{
|
18583
|
-
status: 200,
|
18584
|
-
headers: {
|
18585
|
-
"Content-Type": "text/event-stream",
|
18586
|
-
"Cache-Control": "no-cache",
|
18587
|
-
Connection: "keep-alive",
|
18588
|
-
...response.headers
|
18589
|
-
}
|
18590
|
-
}
|
18591
|
-
);
|
18592
|
-
case "controlled-stream": {
|
18593
|
-
return new HttpResponse(
|
18594
|
-
streams[(_a4 = response.id) != null ? _a4 : ""].pipeThrough(new TextEncoderStream()),
|
18595
|
-
{
|
18596
|
-
status: 200,
|
18597
|
-
headers: {
|
18598
|
-
"Content-Type": "text/event-stream",
|
18599
|
-
"Cache-Control": "no-cache",
|
18600
|
-
Connection: "keep-alive",
|
18601
|
-
...response.headers
|
18602
|
-
}
|
18603
|
-
}
|
18604
|
-
);
|
18605
|
-
}
|
18606
|
-
case "error":
|
18607
|
-
return HttpResponse.text((_b2 = response.content) != null ? _b2 : "Error", {
|
18608
|
-
status: response.status,
|
18609
|
-
headers: {
|
18610
|
-
...response.headers
|
18611
|
-
}
|
18612
|
-
});
|
18613
|
-
}
|
18614
|
-
});
|
18615
|
-
})
|
18616
|
-
);
|
18617
|
-
}
|
18618
|
-
function withTestServer(responses, testFunction) {
|
18619
|
-
return async () => {
|
18620
|
-
const calls = [];
|
18621
|
-
const controllers = {};
|
18622
|
-
const server = createServer({
|
18623
|
-
responses,
|
18624
|
-
pushCall: (call) => calls.push(call),
|
18625
|
-
pushController: (id, controller) => {
|
18626
|
-
controllers[id] = controller;
|
18627
|
-
}
|
18628
|
-
});
|
18629
|
-
try {
|
18630
|
-
server.listen();
|
18631
|
-
await testFunction({
|
18632
|
-
calls: () => calls,
|
18633
|
-
call: (index) => calls[index],
|
18634
|
-
getStreamController: (id) => {
|
18635
|
-
return controllers[id]();
|
18636
|
-
},
|
18637
|
-
get streamController() {
|
18638
|
-
return controllers[""]();
|
18639
|
-
}
|
18640
|
-
});
|
18641
|
-
} finally {
|
18642
|
-
server.close();
|
18643
|
-
}
|
18644
|
-
};
|
18645
|
-
}
|
18646
|
-
function describeWithTestServer(description, responses, testFunction) {
|
18647
|
-
describe(description, () => {
|
18648
|
-
let calls;
|
18649
|
-
let controllers;
|
18650
|
-
let server;
|
18651
|
-
beforeAll(() => {
|
18652
|
-
server = createServer({
|
18653
|
-
responses,
|
18654
|
-
pushCall: (call) => calls.push(call),
|
18655
|
-
pushController: (id, controller) => {
|
18656
|
-
controllers[id] = controller;
|
18657
|
-
}
|
18658
|
-
});
|
18659
|
-
server.listen();
|
18660
|
-
});
|
18661
|
-
beforeEach(() => {
|
18662
|
-
calls = [];
|
18663
|
-
controllers = {};
|
18664
|
-
server.resetHandlers();
|
18665
|
-
});
|
18666
|
-
afterAll(() => {
|
18667
|
-
server.close();
|
18668
|
-
});
|
18669
|
-
testFunction({
|
18670
|
-
calls: () => calls,
|
18671
|
-
call: (index) => calls[index],
|
18672
|
-
getStreamController: (id) => controllers[id](),
|
18673
|
-
get streamController() {
|
18674
|
-
return controllers[""]();
|
18675
|
-
}
|
18676
|
-
});
|
18677
|
-
});
|
18678
|
-
}
|
18679
|
-
|
18680
|
-
// src/test/unified-test-server.ts
|
18681
|
-
var TestServerCall2 = class {
|
18682
18498
|
constructor(request) {
|
18683
18499
|
this.request = request;
|
18684
18500
|
}
|
18685
18501
|
get requestBody() {
|
18686
18502
|
return this.request.text().then(JSON.parse);
|
18687
18503
|
}
|
18504
|
+
get requestCredentials() {
|
18505
|
+
return this.request.credentials;
|
18506
|
+
}
|
18688
18507
|
get requestHeaders() {
|
18689
18508
|
const requestHeaders = this.request.headers;
|
18690
18509
|
const headersObject = {};
|
@@ -18710,7 +18529,7 @@ function createTestServer(routes) {
|
|
18710
18529
|
return http.all(url, ({ request }) => {
|
18711
18530
|
var _a4, _b2, _c2;
|
18712
18531
|
const callNumber = calls.length;
|
18713
|
-
calls.push(new
|
18532
|
+
calls.push(new TestServerCall(request));
|
18714
18533
|
const response = typeof handler.response === "function" ? handler.response({ callNumber }) : Array.isArray(handler.response) ? handler.response[callNumber] : handler.response;
|
18715
18534
|
if (response === void 0) {
|
18716
18535
|
return HttpResponse.json({ error: "Not Found" }, { status: 404 });
|
@@ -18825,9 +18644,7 @@ var TestResponseController = class {
|
|
18825
18644
|
convertReadableStreamToArray,
|
18826
18645
|
convertResponseStreamToArray,
|
18827
18646
|
createTestServer,
|
18828
|
-
|
18829
|
-
mockId,
|
18830
|
-
withTestServer
|
18647
|
+
mockId
|
18831
18648
|
});
|
18832
18649
|
/*! Bundled license information:
|
18833
18650
|
|