{"version":3,"file":"index.cjs","sources":["../../load-source-map/dist/index.js","../src/index.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'fs';\nimport { join, dirname, isAbsolute, resolve } from 'path';\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented in the source maps specification),\n * and parses the string as JSON.\n *\n * https://github.com/mozilla/source-map/blob/3cb92cc3b73bfab27c146bae4ef2bc09dbb4e5ed/lib/util.js#L162-L164\n */ function parseSourceMapInput(str) {\n    return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, \"\"));\n}\n/**\n\tsourceMappingURL=data:application/json;charset=utf-8;base64,data\n\tsourceMappingURL=data:application/json;base64,data\n\tsourceMappingURL=data:application/json;uri,data\n\tsourceMappingURL=map-file-comment.css.map\n\tsourceMappingURL=map-file-comment.css.map?query=value\n*/ const sourceMappingRegExp = /[@#]\\s*sourceMappingURL=(\\S+)\\b/g;\nfunction loadCodeAndMap(codePath) {\n    if (!existsSync(codePath)) {\n        return null;\n    }\n    const code = readFileSync(codePath, 'utf-8');\n    const extractedComment = code.includes('sourceMappingURL') && Array.from(code.matchAll(sourceMappingRegExp)).at(-1);\n    if (!extractedComment || !extractedComment.length) {\n        return {\n            code\n        };\n    }\n    const maybeMap = loadMap(codePath, extractedComment[1]);\n    if (!maybeMap) {\n        return {\n            code\n        };\n    }\n    const { map, mapPath } = maybeMap;\n    map.sources = normalizeSourcesPaths(map, mapPath);\n    map.sourcesContent = loadMissingSourcesContent(map);\n    delete map.sourceRoot;\n    return {\n        code,\n        map\n    };\n}\nfunction loadMap(codePath, sourceMappingURL) {\n    if (sourceMappingURL.startsWith('data:')) {\n        const map = parseDataUrl(sourceMappingURL);\n        return {\n            map: parseSourceMapInput(map),\n            mapPath: codePath\n        };\n    }\n    const sourceMapFilename = new URL(sourceMappingURL, 'file://').pathname;\n    const mapPath = join(dirname(codePath), sourceMapFilename);\n    if (!existsSync(mapPath)) {\n        return null;\n    }\n    return {\n        map: parseSourceMapInput(readFileSync(mapPath, 'utf-8')),\n        mapPath\n    };\n}\nfunction parseDataUrl(url) {\n    const [prefix, payload] = url.split(',');\n    const encoding = prefix.split(';').at(-1);\n    switch(encoding){\n        case 'base64':\n            return Buffer.from(payload, 'base64').toString();\n        case 'uri':\n            return decodeURIComponent(payload);\n        default:\n            throw new Error('Unsupported source map encoding: ' + encoding);\n    }\n}\n/**\n * Normalize the paths of the sources in the source map to be absolute paths.\n */ function normalizeSourcesPaths(map, mapPath) {\n    const mapDir = dirname(mapPath);\n    return map.sources.map((source)=>{\n        if (!source) {\n            return source;\n        }\n        return isAbsolute(source) ? source : resolve(mapDir, map.sourceRoot ?? '.', source);\n    });\n}\n/**\n * Loop through the sources and try to load missing `sourcesContent` from the file system.\n */ function loadMissingSourcesContent(map) {\n    return map.sources.map((source, index)=>{\n        if (map.sourcesContent?.[index]) {\n            return map.sourcesContent[index];\n        }\n        if (source && existsSync(source)) {\n            return readFileSync(source, 'utf-8');\n        }\n        return null;\n    });\n}\n\nexport { loadCodeAndMap };\n//# sourceMappingURL=index.js.map\n","import {\n  createUnplugin,\n  type UnpluginFactory,\n  type UnpluginInstance,\n  type TransformResult\n} from 'unplugin';\nimport { loadCodeAndMap } from 'load-source-map';\n\nexport interface Options {\n\n  /**\n   * RegExp matching imports which sourcemap should be read.\n   *\n   * @default /\\.js$/\n   */\n  include: RegExp;\n\n  /**\n   * RegExp matching imports for which sourcemaps should be ignored.\n   *\n   * @default undefined\n   */\n  exclude?: RegExp;\n}\n\ntype Factory = UnpluginFactory<Options | undefined>;\n\nfunction factory( options?: Partial<Options> ): ReturnType<Factory> {\n  const defaultOptions: Options = {\n    include: /\\.js$/,\n    exclude: undefined,\n  };\n\n  const {\n    include,\n    exclude\n  } = Object.assign({}, defaultOptions, options) as Options;\n\n  return {\n    name: 'unplugin-sourcemaps',\n    enforce: 'pre',\n\n    loadInclude( id: string ): boolean {\n      return include.test(id) && !exclude?.test(id);\n    },\n\n    load( id: string ): TransformResult {\n      return loadCodeAndMap( id ) as TransformResult;\n    }\n  };\n}\n\ntype Plugin = UnpluginInstance<Partial<Options> | undefined>;\n\nexport const plugin: Plugin = /* #__PURE__ */ createUnplugin(factory);\nexport const ViteSourcemap: Plugin['vite'] = plugin.vite;\nexport const RollupSourcemap: Plugin['rollup'] = plugin.rollup;\nexport const RolldownSourcemap: Plugin['rolldown'] = plugin.rolldown;\nexport const WebpackSourcemap: Plugin['webpack'] = plugin.webpack;\nexport const RspackSourcemap: Plugin['rspack'] = plugin.rspack;\nexport const EsbuildSourcemap: Plugin['esbuild'] = plugin.esbuild;\nexport const FarmSourcemap: Plugin['farm'] = plugin.farm;\n"],"names":["parseSourceMapInput","str","JSON","parse","replace","sourceMappingRegExp","loadCodeAndMap","codePath","existsSync","code","readFileSync","extractedComment","includes","Array","from","matchAll","at","length","maybeMap","loadMap","map","mapPath","sources","normalizeSourcesPaths","sourcesContent","loadMissingSourcesContent","sourceRoot","sourceMappingURL","startsWith","parseDataUrl","sourceMapFilename","URL","pathname","join","dirname","url","prefix","payload","split","encoding","Buffer","toString","decodeURIComponent","Error","mapDir","source","isAbsolute","resolve","index","factory","options","defaultOptions","include","exclude","undefined","Object","assign","name","enforce","loadInclude","id","test","load","plugin","createUnplugin","ViteSourcemap","vite","RollupSourcemap","rollup","RolldownSourcemap","rolldown","WebpackSourcemap","webpack","RspackSourcemap","rspack","EsbuildSourcemap","esbuild","FarmSourcemap","farm"],"mappings":"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"}