@ai-sdk/provider-utils 3.0.27 → 3.0.29

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,17 @@
1
1
  # @ai-sdk/provider-utils
2
2
 
3
+ ## 3.0.29
4
+
5
+ ### Patch Changes
6
+
7
+ - c6e1d1a: Accept callable Standard Schema validators that do not provide JSON Schema conversion.
8
+
9
+ ## 3.0.28
10
+
11
+ ### Patch Changes
12
+
13
+ - b85c4fb: Limit JSON response body reads in response handlers to prevent unbounded memory use.
14
+
3
15
  ## 3.0.27
4
16
 
5
17
  ### Patch Changes
package/dist/index.js CHANGED
@@ -640,7 +640,7 @@ function withUserAgentSuffix(headers, ...userAgentSuffixParts) {
640
640
  }
641
641
 
642
642
  // src/version.ts
643
- var VERSION = true ? "3.0.27" : "0.0.0-test";
643
+ var VERSION = true ? "3.0.29" : "0.0.0-test";
644
644
 
645
645
  // src/get-from-api.ts
646
646
  var getOriginalFetch = () => globalThis.fetch;
@@ -949,7 +949,7 @@ function lazyValidator(createValidator) {
949
949
  };
950
950
  }
951
951
  function asValidator(value) {
952
- return isValidator(value) ? value : typeof value === "function" ? value() : standardSchemaValidator(value);
952
+ return isValidator(value) ? value : "~standard" in value ? standardSchemaValidator(value) : value();
953
953
  }
954
954
  function standardSchemaValidator(standardSchema) {
955
955
  return validator(async (value) => {
@@ -1286,12 +1286,24 @@ async function resolve(value) {
1286
1286
 
1287
1287
  // src/response-handler.ts
1288
1288
  var import_provider12 = require("@ai-sdk/provider");
1289
+ var textDecoder = new TextDecoder();
1290
+ async function readResponseBodyAsText({
1291
+ response,
1292
+ url
1293
+ }) {
1294
+ return textDecoder.decode(
1295
+ await readResponseWithSizeLimit({
1296
+ response,
1297
+ url
1298
+ })
1299
+ );
1300
+ }
1289
1301
  var createJsonErrorResponseHandler = ({
1290
1302
  errorSchema,
1291
1303
  errorToMessage,
1292
1304
  isRetryable
1293
1305
  }) => async ({ response, url, requestBodyValues }) => {
1294
- const responseBody = await response.text();
1306
+ const responseBody = await readResponseBodyAsText({ response, url });
1295
1307
  const responseHeaders = extractResponseHeaders(response);
1296
1308
  if (responseBody.trim() === "") {
1297
1309
  return {
@@ -1381,7 +1393,7 @@ var createJsonStreamResponseHandler = (chunkSchema) => async ({ response }) => {
1381
1393
  };
1382
1394
  };
1383
1395
  var createJsonResponseHandler = (responseSchema) => async ({ response, url, requestBodyValues }) => {
1384
- const responseBody = await response.text();
1396
+ const responseBody = await readResponseBodyAsText({ response, url });
1385
1397
  const parsedResult = await safeParseJSON({
1386
1398
  text: responseBody,
1387
1399
  schema: responseSchema
@@ -1436,7 +1448,7 @@ var createBinaryResponseHandler = () => async ({ response, url, requestBodyValue
1436
1448
  };
1437
1449
  var createStatusCodeErrorResponseHandler = () => async ({ response, url, requestBodyValues }) => {
1438
1450
  const responseHeaders = extractResponseHeaders(response);
1439
- const responseBody = await response.text();
1451
+ const responseBody = await readResponseBodyAsText({ response, url });
1440
1452
  return {
1441
1453
  responseHeaders,
1442
1454
  value: new import_provider12.APICallError({