@ai-sdk/provider-utils 2.2.4 → 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 +15 -2
- 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 +2 -3
- package/test/dist/index.d.mts +1 -78
- package/test/dist/index.d.ts +1 -78
- package/test/dist/index.js +11 -318
- package/test/dist/index.js.map +1 -1
- package/test/dist/index.mjs +10 -313
- package/test/dist/index.mjs.map +1 -1
package/test/dist/index.mjs
CHANGED
@@ -62,6 +62,14 @@ async function convertResponseStreamToArray(response) {
|
|
62
62
|
);
|
63
63
|
}
|
64
64
|
|
65
|
+
// src/test/mock-id.ts
|
66
|
+
function mockId({
|
67
|
+
prefix = "id"
|
68
|
+
} = {}) {
|
69
|
+
let counter = 0;
|
70
|
+
return () => `${prefix}-${counter++}`;
|
71
|
+
}
|
72
|
+
|
65
73
|
// ../../node_modules/.pnpm/outvariant@1.4.3/node_modules/outvariant/lib/index.mjs
|
66
74
|
var POSITIONALS_EXP = /(%?)(%([sdijo]))/g;
|
67
75
|
function serializePositional(positional, flag) {
|
@@ -18435,315 +18443,8 @@ var setupServer = (...handlers) => {
|
|
18435
18443
|
return new SetupServerApi(handlers);
|
18436
18444
|
};
|
18437
18445
|
|
18438
|
-
// src/test/json-test-server.ts
|
18439
|
-
var JsonTestServer = class {
|
18440
|
-
/**
|
18441
|
-
* @deprecated Use createTestServer instead
|
18442
|
-
*/
|
18443
|
-
constructor(url) {
|
18444
|
-
this.responseHeaders = {};
|
18445
|
-
this.responseBodyJson = {};
|
18446
|
-
const responseBodyJson = () => this.responseBodyJson;
|
18447
|
-
this.server = setupServer(
|
18448
|
-
http.post(url, ({ request }) => {
|
18449
|
-
this.request = request;
|
18450
|
-
return HttpResponse.json(responseBodyJson(), {
|
18451
|
-
headers: {
|
18452
|
-
"Content-Type": "application/json",
|
18453
|
-
...this.responseHeaders
|
18454
|
-
}
|
18455
|
-
});
|
18456
|
-
})
|
18457
|
-
);
|
18458
|
-
}
|
18459
|
-
async getRequestBodyJson() {
|
18460
|
-
expect(this.request).toBeDefined();
|
18461
|
-
return JSON.parse(await this.request.text());
|
18462
|
-
}
|
18463
|
-
async getRequestHeaders() {
|
18464
|
-
expect(this.request).toBeDefined();
|
18465
|
-
const requestHeaders = this.request.headers;
|
18466
|
-
const headersObject = {};
|
18467
|
-
requestHeaders.forEach((value, key) => {
|
18468
|
-
headersObject[key] = value;
|
18469
|
-
});
|
18470
|
-
return headersObject;
|
18471
|
-
}
|
18472
|
-
async getRequestUrlSearchParams() {
|
18473
|
-
expect(this.request).toBeDefined();
|
18474
|
-
return new URL(this.request.url).searchParams;
|
18475
|
-
}
|
18476
|
-
async getRequestUrl() {
|
18477
|
-
expect(this.request).toBeDefined();
|
18478
|
-
return new URL(this.request.url).toString();
|
18479
|
-
}
|
18480
|
-
setupTestEnvironment() {
|
18481
|
-
beforeAll(() => this.server.listen());
|
18482
|
-
beforeEach(() => {
|
18483
|
-
this.responseBodyJson = {};
|
18484
|
-
this.request = void 0;
|
18485
|
-
});
|
18486
|
-
afterEach(() => this.server.resetHandlers());
|
18487
|
-
afterAll(() => this.server.close());
|
18488
|
-
}
|
18489
|
-
};
|
18490
|
-
|
18491
|
-
// src/test/mock-id.ts
|
18492
|
-
function mockId({
|
18493
|
-
prefix = "id"
|
18494
|
-
} = {}) {
|
18495
|
-
let counter = 0;
|
18496
|
-
return () => `${prefix}-${counter++}`;
|
18497
|
-
}
|
18498
|
-
|
18499
|
-
// src/test/streaming-test-server.ts
|
18500
|
-
var StreamingTestServer = class {
|
18501
|
-
/**
|
18502
|
-
* @deprecated Use createTestServer instead
|
18503
|
-
*/
|
18504
|
-
constructor(url) {
|
18505
|
-
this.responseHeaders = {};
|
18506
|
-
this.responseChunks = [];
|
18507
|
-
const responseChunks = () => this.responseChunks;
|
18508
|
-
this.server = setupServer(
|
18509
|
-
http.post(url, ({ request }) => {
|
18510
|
-
this.request = request;
|
18511
|
-
const encoder2 = new TextEncoder();
|
18512
|
-
const stream = new ReadableStream({
|
18513
|
-
async start(controller) {
|
18514
|
-
try {
|
18515
|
-
for (const chunk of responseChunks()) {
|
18516
|
-
controller.enqueue(encoder2.encode(chunk));
|
18517
|
-
}
|
18518
|
-
} finally {
|
18519
|
-
controller.close();
|
18520
|
-
}
|
18521
|
-
}
|
18522
|
-
});
|
18523
|
-
return new HttpResponse(stream, {
|
18524
|
-
status: 200,
|
18525
|
-
headers: {
|
18526
|
-
"Content-Type": "text/event-stream",
|
18527
|
-
"Cache-Control": "no-cache",
|
18528
|
-
Connection: "keep-alive",
|
18529
|
-
...this.responseHeaders
|
18530
|
-
}
|
18531
|
-
});
|
18532
|
-
})
|
18533
|
-
);
|
18534
|
-
}
|
18535
|
-
async getRequestBodyJson() {
|
18536
|
-
expect(this.request).toBeDefined();
|
18537
|
-
return JSON.parse(await this.request.text());
|
18538
|
-
}
|
18539
|
-
async getRequestHeaders() {
|
18540
|
-
expect(this.request).toBeDefined();
|
18541
|
-
const requestHeaders = this.request.headers;
|
18542
|
-
const headersObject = {};
|
18543
|
-
requestHeaders.forEach((value, key) => {
|
18544
|
-
headersObject[key] = value;
|
18545
|
-
});
|
18546
|
-
return headersObject;
|
18547
|
-
}
|
18548
|
-
async getRequestUrlSearchParams() {
|
18549
|
-
expect(this.request).toBeDefined();
|
18550
|
-
return new URL(this.request.url).searchParams;
|
18551
|
-
}
|
18552
|
-
setupTestEnvironment() {
|
18553
|
-
beforeAll(() => this.server.listen());
|
18554
|
-
beforeEach(() => {
|
18555
|
-
this.responseChunks = [];
|
18556
|
-
this.request = void 0;
|
18557
|
-
});
|
18558
|
-
afterEach(() => this.server.resetHandlers());
|
18559
|
-
afterAll(() => this.server.close());
|
18560
|
-
}
|
18561
|
-
};
|
18562
|
-
|
18563
18446
|
// src/test/test-server.ts
|
18564
18447
|
var TestServerCall = class {
|
18565
|
-
constructor(request) {
|
18566
|
-
this.request = request;
|
18567
|
-
}
|
18568
|
-
async getRequestBodyJson() {
|
18569
|
-
expect(this.request).toBeDefined();
|
18570
|
-
return JSON.parse(await this.request.text());
|
18571
|
-
}
|
18572
|
-
getRequestCredentials() {
|
18573
|
-
expect(this.request).toBeDefined();
|
18574
|
-
return this.request.credentials;
|
18575
|
-
}
|
18576
|
-
getRequestHeaders() {
|
18577
|
-
expect(this.request).toBeDefined();
|
18578
|
-
const requestHeaders = this.request.headers;
|
18579
|
-
const headersObject = {};
|
18580
|
-
requestHeaders.forEach((value, key) => {
|
18581
|
-
headersObject[key] = value;
|
18582
|
-
});
|
18583
|
-
return headersObject;
|
18584
|
-
}
|
18585
|
-
getRequestUrlSearchParams() {
|
18586
|
-
expect(this.request).toBeDefined();
|
18587
|
-
return new URL(this.request.url).searchParams;
|
18588
|
-
}
|
18589
|
-
};
|
18590
|
-
function createServer({
|
18591
|
-
responses,
|
18592
|
-
pushCall,
|
18593
|
-
pushController
|
18594
|
-
}) {
|
18595
|
-
const responsesArray = Array.isArray(responses) ? responses : [responses];
|
18596
|
-
const responsesByUrl = responsesArray.reduce(
|
18597
|
-
(responsesByUrl2, response) => {
|
18598
|
-
if (!responsesByUrl2[response.url]) {
|
18599
|
-
responsesByUrl2[response.url] = [];
|
18600
|
-
}
|
18601
|
-
responsesByUrl2[response.url].push(response);
|
18602
|
-
return responsesByUrl2;
|
18603
|
-
},
|
18604
|
-
{}
|
18605
|
-
);
|
18606
|
-
const streams = {};
|
18607
|
-
responsesArray.filter(
|
18608
|
-
(response) => response.type === "controlled-stream"
|
18609
|
-
).forEach((response) => {
|
18610
|
-
var _a4, _b2;
|
18611
|
-
let streamController;
|
18612
|
-
const stream = new ReadableStream({
|
18613
|
-
start(controller) {
|
18614
|
-
streamController = controller;
|
18615
|
-
}
|
18616
|
-
});
|
18617
|
-
pushController((_a4 = response.id) != null ? _a4 : "", () => streamController);
|
18618
|
-
streams[(_b2 = response.id) != null ? _b2 : ""] = stream;
|
18619
|
-
});
|
18620
|
-
const urlInvocationCounts = Object.fromEntries(
|
18621
|
-
Object.entries(responsesByUrl).map(([url]) => [url, 0])
|
18622
|
-
);
|
18623
|
-
return setupServer(
|
18624
|
-
...Object.entries(responsesByUrl).map(([url, responses2]) => {
|
18625
|
-
return http.post(url, ({ request }) => {
|
18626
|
-
var _a4, _b2;
|
18627
|
-
pushCall(new TestServerCall(request));
|
18628
|
-
const invocationCount = urlInvocationCounts[url]++;
|
18629
|
-
const response = responses2[
|
18630
|
-
// TODO bug needs to be >=
|
18631
|
-
invocationCount > responses2.length ? responses2.length - 1 : invocationCount
|
18632
|
-
];
|
18633
|
-
switch (response.type) {
|
18634
|
-
case "json-value":
|
18635
|
-
return HttpResponse.json(response.content, {
|
18636
|
-
status: 200,
|
18637
|
-
headers: {
|
18638
|
-
"Content-Type": "application/json",
|
18639
|
-
...response.headers
|
18640
|
-
}
|
18641
|
-
});
|
18642
|
-
case "stream-values":
|
18643
|
-
return new HttpResponse(
|
18644
|
-
convertArrayToReadableStream(response.content).pipeThrough(
|
18645
|
-
new TextEncoderStream()
|
18646
|
-
),
|
18647
|
-
{
|
18648
|
-
status: 200,
|
18649
|
-
headers: {
|
18650
|
-
"Content-Type": "text/event-stream",
|
18651
|
-
"Cache-Control": "no-cache",
|
18652
|
-
Connection: "keep-alive",
|
18653
|
-
...response.headers
|
18654
|
-
}
|
18655
|
-
}
|
18656
|
-
);
|
18657
|
-
case "controlled-stream": {
|
18658
|
-
return new HttpResponse(
|
18659
|
-
streams[(_a4 = response.id) != null ? _a4 : ""].pipeThrough(new TextEncoderStream()),
|
18660
|
-
{
|
18661
|
-
status: 200,
|
18662
|
-
headers: {
|
18663
|
-
"Content-Type": "text/event-stream",
|
18664
|
-
"Cache-Control": "no-cache",
|
18665
|
-
Connection: "keep-alive",
|
18666
|
-
...response.headers
|
18667
|
-
}
|
18668
|
-
}
|
18669
|
-
);
|
18670
|
-
}
|
18671
|
-
case "error":
|
18672
|
-
return HttpResponse.text((_b2 = response.content) != null ? _b2 : "Error", {
|
18673
|
-
status: response.status,
|
18674
|
-
headers: {
|
18675
|
-
...response.headers
|
18676
|
-
}
|
18677
|
-
});
|
18678
|
-
}
|
18679
|
-
});
|
18680
|
-
})
|
18681
|
-
);
|
18682
|
-
}
|
18683
|
-
function withTestServer(responses, testFunction) {
|
18684
|
-
return async () => {
|
18685
|
-
const calls = [];
|
18686
|
-
const controllers = {};
|
18687
|
-
const server = createServer({
|
18688
|
-
responses,
|
18689
|
-
pushCall: (call) => calls.push(call),
|
18690
|
-
pushController: (id, controller) => {
|
18691
|
-
controllers[id] = controller;
|
18692
|
-
}
|
18693
|
-
});
|
18694
|
-
try {
|
18695
|
-
server.listen();
|
18696
|
-
await testFunction({
|
18697
|
-
calls: () => calls,
|
18698
|
-
call: (index) => calls[index],
|
18699
|
-
getStreamController: (id) => {
|
18700
|
-
return controllers[id]();
|
18701
|
-
},
|
18702
|
-
get streamController() {
|
18703
|
-
return controllers[""]();
|
18704
|
-
}
|
18705
|
-
});
|
18706
|
-
} finally {
|
18707
|
-
server.close();
|
18708
|
-
}
|
18709
|
-
};
|
18710
|
-
}
|
18711
|
-
function describeWithTestServer(description, responses, testFunction) {
|
18712
|
-
describe(description, () => {
|
18713
|
-
let calls;
|
18714
|
-
let controllers;
|
18715
|
-
let server;
|
18716
|
-
beforeAll(() => {
|
18717
|
-
server = createServer({
|
18718
|
-
responses,
|
18719
|
-
pushCall: (call) => calls.push(call),
|
18720
|
-
pushController: (id, controller) => {
|
18721
|
-
controllers[id] = controller;
|
18722
|
-
}
|
18723
|
-
});
|
18724
|
-
server.listen();
|
18725
|
-
});
|
18726
|
-
beforeEach(() => {
|
18727
|
-
calls = [];
|
18728
|
-
controllers = {};
|
18729
|
-
server.resetHandlers();
|
18730
|
-
});
|
18731
|
-
afterAll(() => {
|
18732
|
-
server.close();
|
18733
|
-
});
|
18734
|
-
testFunction({
|
18735
|
-
calls: () => calls,
|
18736
|
-
call: (index) => calls[index],
|
18737
|
-
getStreamController: (id) => controllers[id](),
|
18738
|
-
get streamController() {
|
18739
|
-
return controllers[""]();
|
18740
|
-
}
|
18741
|
-
});
|
18742
|
-
});
|
18743
|
-
}
|
18744
|
-
|
18745
|
-
// src/test/unified-test-server.ts
|
18746
|
-
var TestServerCall2 = class {
|
18747
18448
|
constructor(request) {
|
18748
18449
|
this.request = request;
|
18749
18450
|
}
|
@@ -18778,7 +18479,7 @@ function createTestServer(routes) {
|
|
18778
18479
|
return http.all(url, ({ request }) => {
|
18779
18480
|
var _a4, _b2, _c2;
|
18780
18481
|
const callNumber = calls.length;
|
18781
|
-
calls.push(new
|
18482
|
+
calls.push(new TestServerCall(request));
|
18782
18483
|
const response = typeof handler.response === "function" ? handler.response({ callNumber }) : Array.isArray(handler.response) ? handler.response[callNumber] : handler.response;
|
18783
18484
|
if (response === void 0) {
|
18784
18485
|
return HttpResponse.json({ error: "Not Found" }, { status: 404 });
|
@@ -18885,8 +18586,6 @@ var TestResponseController = class {
|
|
18885
18586
|
}
|
18886
18587
|
};
|
18887
18588
|
export {
|
18888
|
-
JsonTestServer,
|
18889
|
-
StreamingTestServer,
|
18890
18589
|
TestResponseController,
|
18891
18590
|
convertArrayToAsyncIterable,
|
18892
18591
|
convertArrayToReadableStream,
|
@@ -18894,9 +18593,7 @@ export {
|
|
18894
18593
|
convertReadableStreamToArray,
|
18895
18594
|
convertResponseStreamToArray,
|
18896
18595
|
createTestServer,
|
18897
|
-
|
18898
|
-
mockId,
|
18899
|
-
withTestServer
|
18596
|
+
mockId
|
18900
18597
|
};
|
18901
18598
|
/*! Bundled license information:
|
18902
18599
|
|