rollup-plugin-sourcemaps2
Version:
Rollup plugin for grabbing source maps from sourceMappingURLs
1 lines • 6.64 kB
Source Map (JSON)
{"version":3,"file":"source-map-resolve.cjs","sources":["../src/source-map-resolve.ts"],"sourcesContent":["import * as urlLib from 'node:url';\nimport type { ExistingRawSourceMap } from 'rollup';\nimport decodeUriComponent from './decode-uri-component.js';\n\ninterface ResolvedSources {\n sourcesResolved: string[];\n sourcesContent: (string | Error)[];\n}\n\ninterface ResolvedSourceMap {\n map: ExistingRawSourceMap;\n url: string | null;\n sourcesRelativeTo: string;\n sourceMappingURL: string;\n}\n\nfunction resolveUrl(...args: string[]): string {\n return args.reduce((resolved, nextUrl) => urlLib.resolve(resolved, nextUrl), '');\n}\n\nfunction customDecodeUriComponent(encodedURI: string): string {\n return decodeUriComponent(encodedURI.replace(/\\+/g, '%2B'));\n}\n\nfunction parseMapToJSON(string: string): ExistingRawSourceMap {\n return <ExistingRawSourceMap>JSON.parse(string.replace(/^\\)\\]\\}'/, ''));\n}\n\nconst sourceMappingURLRegex =\n /(?:\\/\\*(?:\\s*\\r?\\n(?:\\/\\/)?)?(?:[#@] sourceMappingURL=([^\\s'\"]*))\\s*\\*\\/|\\/\\/(?:[#@] sourceMappingURL=([^\\s'\"]*)))\\s*/g;\n\nfunction getSourceMappingUrl(code: string): string | null {\n const match = Array.from(code.matchAll(sourceMappingURLRegex)).pop();\n return match ? match[1] || match[2] || '' : null;\n}\n\nexport async function resolveSourceMap(\n code: string,\n codeUrl: string,\n read: (path: string) => Promise<Buffer | string>,\n): Promise<ResolvedSourceMap | null> {\n const sourceMappingURL = getSourceMappingUrl(code);\n if (!sourceMappingURL) {\n return null;\n }\n const dataUri = /^data:([^,;]*)(;[^,;]*)*(?:,(.*))?$/.exec(sourceMappingURL);\n if (dataUri) {\n const mimeType = dataUri[1] || 'text/plain';\n if (!/^(?:application|text)\\/json$/.test(mimeType)) {\n throw new Error(`Unuseful data uri mime type: ${mimeType}`);\n }\n const map = parseMapToJSON(\n (dataUri[2] === ';base64' ? atob : decodeURIComponent)(dataUri[3] || ''),\n );\n return { sourceMappingURL, url: null, sourcesRelativeTo: codeUrl, map };\n }\n const url = resolveUrl(codeUrl, sourceMappingURL);\n const map = parseMapToJSON(String(await read(customDecodeUriComponent(url))));\n return { sourceMappingURL, url, sourcesRelativeTo: url, map };\n}\n\nexport async function resolveSources(\n map: ExistingRawSourceMap,\n mapUrl: string,\n read: (path: string) => Promise<Buffer | string>,\n): Promise<ResolvedSources> {\n const sourcesResolved: string[] = [];\n const sourcesContent: (string | Error)[] = [];\n for (let index = 0, len = map.sources.length; index < len; index++) {\n const sourceRoot = map.sourceRoot;\n const sourceContent = (map.sourcesContent || [])[index];\n const resolvePaths = [mapUrl, map.sources[index]];\n if (sourceRoot !== undefined && sourceRoot !== '') {\n resolvePaths.splice(1, 0, sourceRoot.replace(/\\/?$/, '/'));\n }\n sourcesResolved[index] = resolveUrl(...resolvePaths);\n if (typeof sourceContent === 'string') {\n sourcesContent[index] = sourceContent;\n continue;\n }\n try {\n const source = await read(customDecodeUriComponent(sourcesResolved[index]));\n sourcesContent[index] = String(source);\n } catch (error) {\n sourcesContent[index] = <Error>error;\n }\n }\n return { sourcesResolved, sourcesContent };\n}\n"],"names":["resolveUrl","args","reduce","resolved","nextUrl","urlLib","resolve","customDecodeUriComponent","encodedURI","decodeUriComponent","replace","parseMapToJSON","string","JSON","parse","sourceMappingURLRegex","getSourceMappingUrl","code","match","Array","from","matchAll","pop","resolveSourceMap","codeUrl","read","sourceMappingURL","dataUri","exec","mimeType","test","Error","map","atob","decodeURIComponent","url","sourcesRelativeTo","String","resolveSources","mapUrl","sourcesResolved","sourcesContent","index","len","sources","length","sourceRoot","sourceContent","resolvePaths","undefined","splice","source","error"],"mappings":"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"}