UNPKG

rollup-plugin-sourcemaps2

Version:

Rollup plugin for grabbing source maps from sourceMappingURLs

1 lines 6.7 kB
{"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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"}