ai 7.0.0-beta.179 → 7.0.0-beta.180

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
2
2
 
3
+ ## 7.0.0-beta.180
4
+
5
+ ### Patch Changes
6
+
7
+ - 81a284b: fix(ai): handle partial unicode escapes in fixJson
8
+
3
9
  ## 7.0.0-beta.179
4
10
 
5
11
  ### Patch Changes
package/dist/index.js CHANGED
@@ -1088,7 +1088,7 @@ import {
1088
1088
  } from "@ai-sdk/provider-utils";
1089
1089
 
1090
1090
  // src/version.ts
1091
- var VERSION = true ? "7.0.0-beta.179" : "0.0.0-test";
1091
+ var VERSION = true ? "7.0.0-beta.180" : "0.0.0-test";
1092
1092
 
1093
1093
  // src/util/download/download.ts
1094
1094
  var download = async ({
@@ -3105,6 +3105,10 @@ function fixJson(input) {
3105
3105
  const stack = ["ROOT"];
3106
3106
  let lastValidIndex = -1;
3107
3107
  let literalStart = null;
3108
+ let unicodeEscapeDigits = 0;
3109
+ function isHexDigit(char) {
3110
+ return char >= "0" && char <= "9" || char >= "A" && char <= "F" || char >= "a" && char <= "f";
3111
+ }
3108
3112
  function processValueStart(char, i, swapState) {
3109
3113
  {
3110
3114
  switch (char) {
@@ -3309,7 +3313,22 @@ function fixJson(input) {
3309
3313
  }
3310
3314
  case "INSIDE_STRING_ESCAPE": {
3311
3315
  stack.pop();
3312
- lastValidIndex = i;
3316
+ if (char === "u") {
3317
+ unicodeEscapeDigits = 0;
3318
+ stack.push("INSIDE_STRING_UNICODE_ESCAPE");
3319
+ } else {
3320
+ lastValidIndex = i;
3321
+ }
3322
+ break;
3323
+ }
3324
+ case "INSIDE_STRING_UNICODE_ESCAPE": {
3325
+ if (isHexDigit(char)) {
3326
+ unicodeEscapeDigits++;
3327
+ if (unicodeEscapeDigits === 4) {
3328
+ stack.pop();
3329
+ lastValidIndex = i;
3330
+ }
3331
+ }
3313
3332
  break;
3314
3333
  }
3315
3334
  case "INSIDE_NUMBER": {