{"version":3,"file":"fix-mf-data-uri-plugin.mjs","names":[],"sources":["../../../src/build/rspack/fix-mf-data-uri-plugin.ts"],"sourcesContent":["import type { Compiler, RspackPluginInstance } from \"@rspack/core\";\n\nconst MF_DATA_URI_MARKER = \"data:text/javascript,\";\n\nexport class FixMfDataUriPlugin implements RspackPluginInstance {\n  name = \"FixMfDataUriPlugin\";\n\n  apply(compiler: Compiler) {\n    compiler.hooks.compilation.tap(this.name, (_compilation, { normalModuleFactory }) => {\n      normalModuleFactory.hooks.beforeResolve.tap(this.name, (resolveData) => {\n        if (!resolveData?.request) return;\n        if (!resolveData.request.includes(MF_DATA_URI_MARKER)) return;\n        this.reencodeDataUri(resolveData);\n      });\n    });\n  }\n\n  private reencodeDataUri(resolveData: { request: string }) {\n    const { request } = resolveData;\n    const idx = request.indexOf(MF_DATA_URI_MARKER);\n    if (idx === -1) return;\n\n    const contentStart = idx + MF_DATA_URI_MARKER.length;\n    const prefix = request.substring(0, contentStart);\n    const rawContent = request.substring(contentStart);\n\n    if (isAlreadyEncoded(rawContent)) return;\n\n    const decoded = safeDecode(rawContent);\n    resolveData.request = prefix + encodeURIComponent(decoded);\n  }\n}\n\nfunction isAlreadyEncoded(content: string): boolean {\n  try {\n    const decoded = decodeURIComponent(content);\n    return decoded !== content;\n  } catch {\n    return false;\n  }\n}\n\nfunction safeDecode(content: string): string {\n  try {\n    return decodeURIComponent(content);\n  } catch {\n    return content.replace(/%(?![0-9A-Fa-f]{2})/g, \"%25\");\n  }\n}\n"],"mappings":";AAEA,MAAM,qBAAqB;AAE3B,IAAa,qBAAb,MAAgE;CAC9D,OAAO;CAEP,MAAM,UAAoB;EACxB,SAAS,MAAM,YAAY,IAAI,KAAK,OAAO,cAAc,EAAE,0BAA0B;GACnF,oBAAoB,MAAM,cAAc,IAAI,KAAK,OAAO,gBAAgB;IACtE,IAAI,CAAC,aAAa,SAAS;IAC3B,IAAI,CAAC,YAAY,QAAQ,SAAS,kBAAkB,GAAG;IACvD,KAAK,gBAAgB,WAAW;GAClC,CAAC;EACH,CAAC;CACH;CAEA,AAAQ,gBAAgB,aAAkC;EACxD,MAAM,EAAE,YAAY;EACpB,MAAM,MAAM,QAAQ,QAAQ,kBAAkB;EAC9C,IAAI,QAAQ,IAAI;EAEhB,MAAM,eAAe,MAAM;EAC3B,MAAM,SAAS,QAAQ,UAAU,GAAG,YAAY;EAChD,MAAM,aAAa,QAAQ,UAAU,YAAY;EAEjD,IAAI,iBAAiB,UAAU,GAAG;EAElC,MAAM,UAAU,WAAW,UAAU;EACrC,YAAY,UAAU,SAAS,mBAAmB,OAAO;CAC3D;AACF;AAEA,SAAS,iBAAiB,SAA0B;CAClD,IAAI;EAEF,OADgB,mBAAmB,OACtB,MAAM;CACrB,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAS,WAAW,SAAyB;CAC3C,IAAI;EACF,OAAO,mBAAmB,OAAO;CACnC,QAAQ;EACN,OAAO,QAAQ,QAAQ,wBAAwB,KAAK;CACtD;AACF"}