@ai-sdk/provider-utils 2.2.1 → 2.2.3
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 +12 -0
- package/package.json +1 -1
- package/test/dist/index.d.mts +50 -60
- package/test/dist/index.d.ts +50 -60
- package/test/dist/index.js +35 -10
- package/test/dist/index.js.map +1 -1
- package/test/dist/index.mjs +34 -10
- package/test/dist/index.mjs.map +1 -1
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# @ai-sdk/provider-utils
|
2
2
|
|
3
|
+
## 2.2.3
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- 28be004: chore (provider-utils): add error method to TestStreamController
|
8
|
+
|
9
|
+
## 2.2.2
|
10
|
+
|
11
|
+
### Patch Changes
|
12
|
+
|
13
|
+
- b01120e: chore (provider-utils): update unified test server
|
14
|
+
|
3
15
|
## 2.2.1
|
4
16
|
|
5
17
|
### Patch Changes
|
package/package.json
CHANGED
package/test/dist/index.d.mts
CHANGED
@@ -74,6 +74,7 @@ declare class TestServerCall$1 {
|
|
74
74
|
private request;
|
75
75
|
constructor(request: Request);
|
76
76
|
getRequestBodyJson(): Promise<any>;
|
77
|
+
getRequestCredentials(): RequestCredentials;
|
77
78
|
getRequestHeaders(): Record<string, string>;
|
78
79
|
getRequestUrlSearchParams(): URLSearchParams;
|
79
80
|
}
|
@@ -90,66 +91,44 @@ declare function describeWithTestServer(description: string, responses: Array<Te
|
|
90
91
|
streamController: ReadableStreamDefaultController<string>;
|
91
92
|
}) => void): void;
|
92
93
|
|
94
|
+
type UrlResponse = {
|
95
|
+
type: 'json-value';
|
96
|
+
headers?: Record<string, string>;
|
97
|
+
body: JsonBodyType;
|
98
|
+
} | {
|
99
|
+
type: 'stream-chunks';
|
100
|
+
headers?: Record<string, string>;
|
101
|
+
chunks: Array<string>;
|
102
|
+
} | {
|
103
|
+
type: 'binary';
|
104
|
+
headers?: Record<string, string>;
|
105
|
+
body: Buffer;
|
106
|
+
} | {
|
107
|
+
type: 'empty';
|
108
|
+
headers?: Record<string, string>;
|
109
|
+
status?: number;
|
110
|
+
} | {
|
111
|
+
type: 'error';
|
112
|
+
headers?: Record<string, string>;
|
113
|
+
status?: number;
|
114
|
+
body?: string;
|
115
|
+
} | {
|
116
|
+
type: 'controlled-stream';
|
117
|
+
headers?: Record<string, string>;
|
118
|
+
controller: TestResponseController;
|
119
|
+
} | undefined;
|
120
|
+
type UrlResponseParameter = UrlResponse | UrlResponse[] | ((options: {
|
121
|
+
callNumber: number;
|
122
|
+
}) => UrlResponse);
|
93
123
|
type UrlHandler = {
|
94
|
-
response
|
95
|
-
type: 'json-value';
|
96
|
-
headers?: Record<string, string>;
|
97
|
-
body: JsonBodyType;
|
98
|
-
} | {
|
99
|
-
type: 'stream-chunks';
|
100
|
-
headers?: Record<string, string>;
|
101
|
-
chunks: Array<string>;
|
102
|
-
} | {
|
103
|
-
type: 'binary';
|
104
|
-
headers?: Record<string, string>;
|
105
|
-
body: Buffer;
|
106
|
-
} | {
|
107
|
-
type: 'empty';
|
108
|
-
headers?: Record<string, string>;
|
109
|
-
status?: number;
|
110
|
-
} | {
|
111
|
-
type: 'error';
|
112
|
-
headers?: Record<string, string>;
|
113
|
-
status?: number;
|
114
|
-
body?: string;
|
115
|
-
} | {
|
116
|
-
type: 'readable-stream';
|
117
|
-
headers?: Record<string, string>;
|
118
|
-
stream: ReadableStream;
|
119
|
-
} | undefined;
|
124
|
+
response: UrlResponseParameter;
|
120
125
|
};
|
121
|
-
type
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
body: JsonBodyType;
|
126
|
-
} | {
|
127
|
-
type: 'stream-chunks';
|
128
|
-
headers?: Record<string, string>;
|
129
|
-
chunks: Array<string>;
|
130
|
-
} | {
|
131
|
-
type: 'binary';
|
132
|
-
headers?: Record<string, string>;
|
133
|
-
body: Buffer;
|
134
|
-
} | {
|
135
|
-
type: 'error';
|
136
|
-
headers?: Record<string, string>;
|
137
|
-
status: number;
|
138
|
-
body?: string;
|
139
|
-
} | {
|
140
|
-
type: 'empty';
|
141
|
-
headers?: Record<string, string>;
|
142
|
-
status?: number;
|
143
|
-
} | {
|
144
|
-
type: 'readable-stream';
|
145
|
-
headers?: Record<string, string>;
|
146
|
-
stream: ReadableStream;
|
147
|
-
} | undefined;
|
148
|
-
};
|
149
|
-
type FullHandlers<URLS extends {
|
150
|
-
[url: string]: UrlHandler;
|
126
|
+
type UrlHandlers<URLS extends {
|
127
|
+
[url: string]: {
|
128
|
+
response?: UrlResponseParameter;
|
129
|
+
};
|
151
130
|
}> = {
|
152
|
-
[url in keyof URLS]:
|
131
|
+
[url in keyof URLS]: UrlHandler;
|
153
132
|
};
|
154
133
|
declare class TestServerCall {
|
155
134
|
private request;
|
@@ -161,10 +140,21 @@ declare class TestServerCall {
|
|
161
140
|
get requestMethod(): string;
|
162
141
|
}
|
163
142
|
declare function createTestServer<URLS extends {
|
164
|
-
[url: string]:
|
143
|
+
[url: string]: {
|
144
|
+
response?: UrlResponseParameter;
|
145
|
+
};
|
165
146
|
}>(routes: URLS): {
|
166
|
-
urls:
|
147
|
+
urls: UrlHandlers<URLS>;
|
167
148
|
calls: TestServerCall[];
|
168
149
|
};
|
150
|
+
declare class TestResponseController {
|
151
|
+
private readonly transformStream;
|
152
|
+
private readonly writer;
|
153
|
+
constructor();
|
154
|
+
get stream(): ReadableStream;
|
155
|
+
write(chunk: string): Promise<void>;
|
156
|
+
error(error: Error): Promise<void>;
|
157
|
+
close(): Promise<void>;
|
158
|
+
}
|
169
159
|
|
170
|
-
export {
|
160
|
+
export { JsonTestServer, StreamingTestServer, TestResponseController, type TestServerJsonBodyType, type TestServerResponse, type UrlHandler, type UrlHandlers, type UrlResponse, convertArrayToAsyncIterable, convertArrayToReadableStream, convertAsyncIterableToArray, convertReadableStreamToArray, convertResponseStreamToArray, createTestServer, describeWithTestServer, mockId, withTestServer };
|
package/test/dist/index.d.ts
CHANGED
@@ -74,6 +74,7 @@ declare class TestServerCall$1 {
|
|
74
74
|
private request;
|
75
75
|
constructor(request: Request);
|
76
76
|
getRequestBodyJson(): Promise<any>;
|
77
|
+
getRequestCredentials(): RequestCredentials;
|
77
78
|
getRequestHeaders(): Record<string, string>;
|
78
79
|
getRequestUrlSearchParams(): URLSearchParams;
|
79
80
|
}
|
@@ -90,66 +91,44 @@ declare function describeWithTestServer(description: string, responses: Array<Te
|
|
90
91
|
streamController: ReadableStreamDefaultController<string>;
|
91
92
|
}) => void): void;
|
92
93
|
|
94
|
+
type UrlResponse = {
|
95
|
+
type: 'json-value';
|
96
|
+
headers?: Record<string, string>;
|
97
|
+
body: JsonBodyType;
|
98
|
+
} | {
|
99
|
+
type: 'stream-chunks';
|
100
|
+
headers?: Record<string, string>;
|
101
|
+
chunks: Array<string>;
|
102
|
+
} | {
|
103
|
+
type: 'binary';
|
104
|
+
headers?: Record<string, string>;
|
105
|
+
body: Buffer;
|
106
|
+
} | {
|
107
|
+
type: 'empty';
|
108
|
+
headers?: Record<string, string>;
|
109
|
+
status?: number;
|
110
|
+
} | {
|
111
|
+
type: 'error';
|
112
|
+
headers?: Record<string, string>;
|
113
|
+
status?: number;
|
114
|
+
body?: string;
|
115
|
+
} | {
|
116
|
+
type: 'controlled-stream';
|
117
|
+
headers?: Record<string, string>;
|
118
|
+
controller: TestResponseController;
|
119
|
+
} | undefined;
|
120
|
+
type UrlResponseParameter = UrlResponse | UrlResponse[] | ((options: {
|
121
|
+
callNumber: number;
|
122
|
+
}) => UrlResponse);
|
93
123
|
type UrlHandler = {
|
94
|
-
response
|
95
|
-
type: 'json-value';
|
96
|
-
headers?: Record<string, string>;
|
97
|
-
body: JsonBodyType;
|
98
|
-
} | {
|
99
|
-
type: 'stream-chunks';
|
100
|
-
headers?: Record<string, string>;
|
101
|
-
chunks: Array<string>;
|
102
|
-
} | {
|
103
|
-
type: 'binary';
|
104
|
-
headers?: Record<string, string>;
|
105
|
-
body: Buffer;
|
106
|
-
} | {
|
107
|
-
type: 'empty';
|
108
|
-
headers?: Record<string, string>;
|
109
|
-
status?: number;
|
110
|
-
} | {
|
111
|
-
type: 'error';
|
112
|
-
headers?: Record<string, string>;
|
113
|
-
status?: number;
|
114
|
-
body?: string;
|
115
|
-
} | {
|
116
|
-
type: 'readable-stream';
|
117
|
-
headers?: Record<string, string>;
|
118
|
-
stream: ReadableStream;
|
119
|
-
} | undefined;
|
124
|
+
response: UrlResponseParameter;
|
120
125
|
};
|
121
|
-
type
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
body: JsonBodyType;
|
126
|
-
} | {
|
127
|
-
type: 'stream-chunks';
|
128
|
-
headers?: Record<string, string>;
|
129
|
-
chunks: Array<string>;
|
130
|
-
} | {
|
131
|
-
type: 'binary';
|
132
|
-
headers?: Record<string, string>;
|
133
|
-
body: Buffer;
|
134
|
-
} | {
|
135
|
-
type: 'error';
|
136
|
-
headers?: Record<string, string>;
|
137
|
-
status: number;
|
138
|
-
body?: string;
|
139
|
-
} | {
|
140
|
-
type: 'empty';
|
141
|
-
headers?: Record<string, string>;
|
142
|
-
status?: number;
|
143
|
-
} | {
|
144
|
-
type: 'readable-stream';
|
145
|
-
headers?: Record<string, string>;
|
146
|
-
stream: ReadableStream;
|
147
|
-
} | undefined;
|
148
|
-
};
|
149
|
-
type FullHandlers<URLS extends {
|
150
|
-
[url: string]: UrlHandler;
|
126
|
+
type UrlHandlers<URLS extends {
|
127
|
+
[url: string]: {
|
128
|
+
response?: UrlResponseParameter;
|
129
|
+
};
|
151
130
|
}> = {
|
152
|
-
[url in keyof URLS]:
|
131
|
+
[url in keyof URLS]: UrlHandler;
|
153
132
|
};
|
154
133
|
declare class TestServerCall {
|
155
134
|
private request;
|
@@ -161,10 +140,21 @@ declare class TestServerCall {
|
|
161
140
|
get requestMethod(): string;
|
162
141
|
}
|
163
142
|
declare function createTestServer<URLS extends {
|
164
|
-
[url: string]:
|
143
|
+
[url: string]: {
|
144
|
+
response?: UrlResponseParameter;
|
145
|
+
};
|
165
146
|
}>(routes: URLS): {
|
166
|
-
urls:
|
147
|
+
urls: UrlHandlers<URLS>;
|
167
148
|
calls: TestServerCall[];
|
168
149
|
};
|
150
|
+
declare class TestResponseController {
|
151
|
+
private readonly transformStream;
|
152
|
+
private readonly writer;
|
153
|
+
constructor();
|
154
|
+
get stream(): ReadableStream;
|
155
|
+
write(chunk: string): Promise<void>;
|
156
|
+
error(error: Error): Promise<void>;
|
157
|
+
close(): Promise<void>;
|
158
|
+
}
|
169
159
|
|
170
|
-
export {
|
160
|
+
export { JsonTestServer, StreamingTestServer, TestResponseController, type TestServerJsonBodyType, type TestServerResponse, type UrlHandler, type UrlHandlers, type UrlResponse, convertArrayToAsyncIterable, convertArrayToReadableStream, convertAsyncIterableToArray, convertReadableStreamToArray, convertResponseStreamToArray, createTestServer, describeWithTestServer, mockId, withTestServer };
|
package/test/dist/index.js
CHANGED
@@ -59,6 +59,7 @@ var test_exports = {};
|
|
59
59
|
__export(test_exports, {
|
60
60
|
JsonTestServer: () => JsonTestServer,
|
61
61
|
StreamingTestServer: () => StreamingTestServer,
|
62
|
+
TestResponseController: () => TestResponseController,
|
62
63
|
convertArrayToAsyncIterable: () => convertArrayToAsyncIterable,
|
63
64
|
convertArrayToReadableStream: () => convertArrayToReadableStream,
|
64
65
|
convertAsyncIterableToArray: () => convertAsyncIterableToArray,
|
@@ -18622,6 +18623,10 @@ var TestServerCall = class {
|
|
18622
18623
|
expect(this.request).toBeDefined();
|
18623
18624
|
return JSON.parse(await this.request.text());
|
18624
18625
|
}
|
18626
|
+
getRequestCredentials() {
|
18627
|
+
expect(this.request).toBeDefined();
|
18628
|
+
return this.request.credentials;
|
18629
|
+
}
|
18625
18630
|
getRequestHeaders() {
|
18626
18631
|
expect(this.request).toBeDefined();
|
18627
18632
|
const requestHeaders = this.request.headers;
|
@@ -18821,10 +18826,11 @@ function createTestServer(routes) {
|
|
18821
18826
|
const originalRoutes = structuredClone(routes);
|
18822
18827
|
const mswServer = setupServer(
|
18823
18828
|
...Object.entries(routes).map(([url, handler]) => {
|
18824
|
-
return http.all(url, ({ request
|
18825
|
-
var _a4, _b2, _c2
|
18829
|
+
return http.all(url, ({ request }) => {
|
18830
|
+
var _a4, _b2, _c2;
|
18831
|
+
const callNumber = calls.length;
|
18826
18832
|
calls.push(new TestServerCall2(request));
|
18827
|
-
const response = handler.response;
|
18833
|
+
const response = typeof handler.response === "function" ? handler.response({ callNumber }) : Array.isArray(handler.response) ? handler.response[callNumber] : handler.response;
|
18828
18834
|
if (response === void 0) {
|
18829
18835
|
return HttpResponse.json({ error: "Not Found" }, { status: 404 });
|
18830
18836
|
}
|
@@ -18835,7 +18841,7 @@ function createTestServer(routes) {
|
|
18835
18841
|
status: 200,
|
18836
18842
|
headers: {
|
18837
18843
|
"Content-Type": "application/json",
|
18838
|
-
...
|
18844
|
+
...response.headers
|
18839
18845
|
}
|
18840
18846
|
});
|
18841
18847
|
case "stream-chunks":
|
@@ -18853,9 +18859,9 @@ function createTestServer(routes) {
|
|
18853
18859
|
}
|
18854
18860
|
}
|
18855
18861
|
);
|
18856
|
-
case "
|
18862
|
+
case "controlled-stream": {
|
18857
18863
|
return new HttpResponse(
|
18858
|
-
response.stream.pipeThrough(new TextEncoderStream()),
|
18864
|
+
response.controller.stream.pipeThrough(new TextEncoderStream()),
|
18859
18865
|
{
|
18860
18866
|
status: 200,
|
18861
18867
|
headers: {
|
@@ -18870,17 +18876,17 @@ function createTestServer(routes) {
|
|
18870
18876
|
case "binary": {
|
18871
18877
|
return HttpResponse.arrayBuffer(response.body, {
|
18872
18878
|
status: 200,
|
18873
|
-
headers:
|
18879
|
+
headers: response.headers
|
18874
18880
|
});
|
18875
18881
|
}
|
18876
18882
|
case "error":
|
18877
|
-
return HttpResponse.text((
|
18878
|
-
status: (
|
18883
|
+
return HttpResponse.text((_a4 = response.body) != null ? _a4 : "Error", {
|
18884
|
+
status: (_b2 = response.status) != null ? _b2 : 500,
|
18879
18885
|
headers: response.headers
|
18880
18886
|
});
|
18881
18887
|
case "empty":
|
18882
18888
|
return new HttpResponse(null, {
|
18883
|
-
status: (
|
18889
|
+
status: (_c2 = response.status) != null ? _c2 : 200
|
18884
18890
|
});
|
18885
18891
|
default: {
|
18886
18892
|
const _exhaustiveCheck = handlerType;
|
@@ -18911,10 +18917,29 @@ function createTestServer(routes) {
|
|
18911
18917
|
}
|
18912
18918
|
};
|
18913
18919
|
}
|
18920
|
+
var TestResponseController = class {
|
18921
|
+
constructor() {
|
18922
|
+
this.transformStream = new TransformStream();
|
18923
|
+
this.writer = this.transformStream.writable.getWriter();
|
18924
|
+
}
|
18925
|
+
get stream() {
|
18926
|
+
return this.transformStream.readable;
|
18927
|
+
}
|
18928
|
+
async write(chunk) {
|
18929
|
+
await this.writer.write(chunk);
|
18930
|
+
}
|
18931
|
+
async error(error3) {
|
18932
|
+
await this.writer.abort(error3);
|
18933
|
+
}
|
18934
|
+
async close() {
|
18935
|
+
await this.writer.close();
|
18936
|
+
}
|
18937
|
+
};
|
18914
18938
|
// Annotate the CommonJS export names for ESM import in node:
|
18915
18939
|
0 && (module.exports = {
|
18916
18940
|
JsonTestServer,
|
18917
18941
|
StreamingTestServer,
|
18942
|
+
TestResponseController,
|
18918
18943
|
convertArrayToAsyncIterable,
|
18919
18944
|
convertArrayToReadableStream,
|
18920
18945
|
convertAsyncIterableToArray,
|