@ai-sdk/provider-utils 4.0.9 → 4.0.10

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
+ ## 4.0.10
4
+
5
+ ### Patch Changes
6
+
7
+ - 462ad00: fix(provider-utils): recognize bun fetch errors as retryable
8
+
3
9
  ## 4.0.9
4
10
 
5
11
  ### Patch Changes
package/dist/index.js CHANGED
@@ -398,6 +398,25 @@ function isAbortError(error) {
398
398
 
399
399
  // src/handle-fetch-error.ts
400
400
  var FETCH_FAILED_ERROR_MESSAGES = ["fetch failed", "failed to fetch"];
401
+ var BUN_ERROR_CODES = [
402
+ "ConnectionRefused",
403
+ "ConnectionClosed",
404
+ "FailedToOpenSocket",
405
+ "ECONNRESET",
406
+ "ECONNREFUSED",
407
+ "ETIMEDOUT",
408
+ "EPIPE"
409
+ ];
410
+ function isBunNetworkError(error) {
411
+ if (!(error instanceof Error)) {
412
+ return false;
413
+ }
414
+ const code = error.code;
415
+ if (typeof code === "string" && BUN_ERROR_CODES.includes(code)) {
416
+ return true;
417
+ }
418
+ return false;
419
+ }
401
420
  function handleFetchError({
402
421
  error,
403
422
  url,
@@ -419,6 +438,15 @@ function handleFetchError({
419
438
  });
420
439
  }
421
440
  }
441
+ if (isBunNetworkError(error)) {
442
+ return new import_provider3.APICallError({
443
+ message: `Cannot connect to API: ${error.message}`,
444
+ cause: error,
445
+ url,
446
+ requestBodyValues,
447
+ isRetryable: true
448
+ });
449
+ }
422
450
  return error;
423
451
  }
424
452
 
@@ -475,7 +503,7 @@ function withUserAgentSuffix(headers, ...userAgentSuffixParts) {
475
503
  }
476
504
 
477
505
  // src/version.ts
478
- var VERSION = true ? "4.0.9" : "0.0.0-test";
506
+ var VERSION = true ? "4.0.10" : "0.0.0-test";
479
507
 
480
508
  // src/get-from-api.ts
481
509
  var getOriginalFetch = () => globalThis.fetch;