{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport type { NodePath, types as t } from \"@babel/core\";\n\nexport default declare(api => {\n  api.assertVersion(REQUIRED_VERSION(\"^7.0.0-0 || ^8.0.0\"));\n  const regex = /(\\\\*)([\\u2028\\u2029])/g;\n  function replace(match: string, escapes: string, separator: string) {\n    // If there's an odd number, that means the separator itself was escaped.\n    // \"\\X\" escapes X.\n    // \"\\\\X\" escapes the backslash, so X is unescaped.\n    const isEscaped = escapes.length % 2 === 1;\n    if (isEscaped) return match;\n\n    return `${escapes}\\\\u${separator.charCodeAt(0).toString(16)}`;\n  }\n\n  return {\n    name: \"transform-json-strings\",\n    manipulateOptions: undefined,\n    visitor: api.traverse.explode({\n      \"DirectiveLiteral|StringLiteral\"({\n        node,\n      }: NodePath<t.DirectiveLiteral | t.StringLiteral>) {\n        const { extra } = node;\n        if (!extra?.raw) return;\n\n        extra.raw = (extra.raw as string).replace(regex, replace);\n      },\n    }),\n  };\n});\n"],"names":["DirectiveLiteral|StringLiteral"],"mappings":";;AAGA,cAAe,OAAO,CAAC,GAAG,IAAI;EAC5B,GAAG,CAAC,aAAa,CAAA,oBAAuC,CAAC;EACzD,MAAM,KAAK,GAAG,wBAAwB;AACtC,EAAA,SAAS,OAAO,CAAC,KAAa,EAAE,OAAe,EAAE,SAAiB,EAAE;IAIlE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;IAC1C,IAAI,SAAS,EAAE,OAAO,KAAK;AAE3B,IAAA,OAAO,CAAA,EAAG,OAAO,CAAA,GAAA,EAAM,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA,CAAE;AAC/D,EAAA;EAEA,OAAO;AACL,IAAA,IAAI,EAAE,wBAAwB;AAC9B,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC5B,MAAA,gCAAgCA,CAAC;AAC/B,QAAA;AAC8C,OAAC,EAAE;QACjD,MAAM;AAAE,UAAA;AAAM,SAAC,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;AAEjB,QAAA,KAAK,CAAC,GAAG,GAAI,KAAK,CAAC,GAAG,CAAY,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;AAC3D,MAAA;KACD;GACF;AACH,CAAC,CAAC;;;;"}