{"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;AACxB,WAAS,MAAM,YAAY,IAAI,KAAK,OAAO,cAAc,EAAE,0BAA0B;AACnF,uBAAoB,MAAM,cAAc,IAAI,KAAK,OAAO,gBAAgB;AACtE,QAAI,CAAC,aAAa,QAAS;AAC3B,QAAI,CAAC,YAAY,QAAQ,SAAS,mBAAmB,CAAE;AACvD,SAAK,gBAAgB,YAAY;KACjC;IACF;;CAGJ,AAAQ,gBAAgB,aAAkC;EACxD,MAAM,EAAE,YAAY;EACpB,MAAM,MAAM,QAAQ,QAAQ,mBAAmB;AAC/C,MAAI,QAAQ,GAAI;EAEhB,MAAM,eAAe,MAAM;EAC3B,MAAM,SAAS,QAAQ,UAAU,GAAG,aAAa;EACjD,MAAM,aAAa,QAAQ,UAAU,aAAa;AAElD,MAAI,iBAAiB,WAAW,CAAE;EAElC,MAAM,UAAU,WAAW,WAAW;AACtC,cAAY,UAAU,SAAS,mBAAmB,QAAQ;;;AAI9D,SAAS,iBAAiB,SAA0B;AAClD,KAAI;AAEF,SADgB,mBAAmB,QACrB,KAAK;SACb;AACN,SAAO;;;AAIX,SAAS,WAAW,SAAyB;AAC3C,KAAI;AACF,SAAO,mBAAmB,QAAQ;SAC5B;AACN,SAAO,QAAQ,QAAQ,wBAAwB,MAAM"}