@ai-sdk/provider-utils 2.2.1 → 2.2.2

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @ai-sdk/provider-utils
2
2
 
3
+ ## 2.2.2
4
+
5
+ ### Patch Changes
6
+
7
+ - b01120e: chore (provider-utils): update unified test server
8
+
3
9
  ## 2.2.1
4
10
 
5
11
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-sdk/provider-utils",
3
- "version": "2.2.1",
3
+ "version": "2.2.2",
4
4
  "license": "Apache-2.0",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.js",
@@ -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 FullUrlHandler = {
122
- response: {
123
- type: 'json-value';
124
- headers?: Record<string, string>;
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]: FullUrlHandler;
131
+ [url in keyof URLS]: UrlHandler;
153
132
  };
154
133
  declare class TestServerCall {
155
134
  private request;
@@ -161,10 +140,20 @@ declare class TestServerCall {
161
140
  get requestMethod(): string;
162
141
  }
163
142
  declare function createTestServer<URLS extends {
164
- [url: string]: UrlHandler;
143
+ [url: string]: {
144
+ response?: UrlResponseParameter;
145
+ };
165
146
  }>(routes: URLS): {
166
- urls: FullHandlers<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
+ close(): Promise<void>;
157
+ }
169
158
 
170
- export { type FullHandlers, type FullUrlHandler, JsonTestServer, StreamingTestServer, type TestServerJsonBodyType, type TestServerResponse, type UrlHandler, convertArrayToAsyncIterable, convertArrayToReadableStream, convertAsyncIterableToArray, convertReadableStreamToArray, convertResponseStreamToArray, createTestServer, describeWithTestServer, mockId, withTestServer };
159
+ export { JsonTestServer, StreamingTestServer, TestResponseController, type TestServerJsonBodyType, type TestServerResponse, type UrlHandler, type UrlHandlers, type UrlResponse, convertArrayToAsyncIterable, convertArrayToReadableStream, convertAsyncIterableToArray, convertReadableStreamToArray, convertResponseStreamToArray, createTestServer, describeWithTestServer, mockId, withTestServer };
@@ -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 FullUrlHandler = {
122
- response: {
123
- type: 'json-value';
124
- headers?: Record<string, string>;
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]: FullUrlHandler;
131
+ [url in keyof URLS]: UrlHandler;
153
132
  };
154
133
  declare class TestServerCall {
155
134
  private request;
@@ -161,10 +140,20 @@ declare class TestServerCall {
161
140
  get requestMethod(): string;
162
141
  }
163
142
  declare function createTestServer<URLS extends {
164
- [url: string]: UrlHandler;
143
+ [url: string]: {
144
+ response?: UrlResponseParameter;
145
+ };
165
146
  }>(routes: URLS): {
166
- urls: FullHandlers<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
+ close(): Promise<void>;
157
+ }
169
158
 
170
- export { type FullHandlers, type FullUrlHandler, JsonTestServer, StreamingTestServer, type TestServerJsonBodyType, type TestServerResponse, type UrlHandler, convertArrayToAsyncIterable, convertArrayToReadableStream, convertAsyncIterableToArray, convertReadableStreamToArray, convertResponseStreamToArray, createTestServer, describeWithTestServer, mockId, withTestServer };
159
+ export { JsonTestServer, StreamingTestServer, TestResponseController, type TestServerJsonBodyType, type TestServerResponse, type UrlHandler, type UrlHandlers, type UrlResponse, convertArrayToAsyncIterable, convertArrayToReadableStream, convertAsyncIterableToArray, convertReadableStreamToArray, convertResponseStreamToArray, createTestServer, describeWithTestServer, mockId, withTestServer };
@@ -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, params }) => {
18825
- var _a4, _b2, _c2, _d, _e;
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
- ...(_a4 = handler.response) == null ? void 0 : _a4.headers
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 "readable-stream": {
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: (_b2 = handler.response) == null ? void 0 : _b2.headers
18879
+ headers: response.headers
18874
18880
  });
18875
18881
  }
18876
18882
  case "error":
18877
- return HttpResponse.text((_c2 = response.body) != null ? _c2 : "Error", {
18878
- status: (_d = response.status) != null ? _d : 500,
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: (_e = response.status) != null ? _e : 200
18889
+ status: (_c2 = response.status) != null ? _c2 : 200
18884
18890
  });
18885
18891
  default: {
18886
18892
  const _exhaustiveCheck = handlerType;
@@ -18911,10 +18917,26 @@ 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 close() {
18932
+ await this.writer.close();
18933
+ }
18934
+ };
18914
18935
  // Annotate the CommonJS export names for ESM import in node:
18915
18936
  0 && (module.exports = {
18916
18937
  JsonTestServer,
18917
18938
  StreamingTestServer,
18939
+ TestResponseController,
18918
18940
  convertArrayToAsyncIterable,
18919
18941
  convertArrayToReadableStream,
18920
18942
  convertAsyncIterableToArray,