Spaces:
Sleeping
Sleeping
| // src/build-source-map-tree.ts | |
| import { TraceMap } from "@jridgewell/trace-mapping"; | |
| // src/source-map-tree.ts | |
| import { GenMapping, maybeAddSegment, setIgnore, setSourceContent } from "@jridgewell/gen-mapping"; | |
| import { traceSegment, decodedMappings } from "@jridgewell/trace-mapping"; | |
| var SOURCELESS_MAPPING = /* @__PURE__ */ SegmentObject("", -1, -1, "", null, false); | |
| var EMPTY_SOURCES = []; | |
| function SegmentObject(source, line, column, name, content, ignore) { | |
| return { source, line, column, name, content, ignore }; | |
| } | |
| function Source(map, sources, source, content, ignore) { | |
| return { | |
| map, | |
| sources, | |
| source, | |
| content, | |
| ignore | |
| }; | |
| } | |
| function MapSource(map, sources) { | |
| return Source(map, sources, "", null, false); | |
| } | |
| function OriginalSource(source, content, ignore) { | |
| return Source(null, EMPTY_SOURCES, source, content, ignore); | |
| } | |
| function traceMappings(tree) { | |
| const gen = new GenMapping({ file: tree.map.file }); | |
| const { sources: rootSources, map } = tree; | |
| const rootNames = map.names; | |
| const rootMappings = decodedMappings(map); | |
| for (let i = 0; i < rootMappings.length; i++) { | |
| const segments = rootMappings[i]; | |
| for (let j = 0; j < segments.length; j++) { | |
| const segment = segments[j]; | |
| const genCol = segment[0]; | |
| let traced = SOURCELESS_MAPPING; | |
| if (segment.length !== 1) { | |
| const source2 = rootSources[segment[1]]; | |
| traced = originalPositionFor( | |
| source2, | |
| segment[2], | |
| segment[3], | |
| segment.length === 5 ? rootNames[segment[4]] : "" | |
| ); | |
| if (traced == null) continue; | |
| } | |
| const { column, line, name, content, source, ignore } = traced; | |
| maybeAddSegment(gen, i, genCol, source, line, column, name); | |
| if (source && content != null) setSourceContent(gen, source, content); | |
| if (ignore) setIgnore(gen, source, true); | |
| } | |
| } | |
| return gen; | |
| } | |
| function originalPositionFor(source, line, column, name) { | |
| if (!source.map) { | |
| return SegmentObject(source.source, line, column, name, source.content, source.ignore); | |
| } | |
| const segment = traceSegment(source.map, line, column); | |
| if (segment == null) return null; | |
| if (segment.length === 1) return SOURCELESS_MAPPING; | |
| return originalPositionFor( | |
| source.sources[segment[1]], | |
| segment[2], | |
| segment[3], | |
| segment.length === 5 ? source.map.names[segment[4]] : name | |
| ); | |
| } | |
| // src/build-source-map-tree.ts | |
| function asArray(value) { | |
| if (Array.isArray(value)) return value; | |
| return [value]; | |
| } | |
| function buildSourceMapTree(input, loader) { | |
| const maps = asArray(input).map((m) => new TraceMap(m, "")); | |
| const map = maps.pop(); | |
| for (let i = 0; i < maps.length; i++) { | |
| if (maps[i].sources.length > 1) { | |
| throw new Error( | |
| `Transformation map ${i} must have exactly one source file. | |
| Did you specify these with the most recent transformation maps first?` | |
| ); | |
| } | |
| } | |
| let tree = build(map, loader, "", 0); | |
| for (let i = maps.length - 1; i >= 0; i--) { | |
| tree = MapSource(maps[i], [tree]); | |
| } | |
| return tree; | |
| } | |
| function build(map, loader, importer, importerDepth) { | |
| const { resolvedSources, sourcesContent, ignoreList } = map; | |
| const depth = importerDepth + 1; | |
| const children = resolvedSources.map((sourceFile, i) => { | |
| const ctx = { | |
| importer, | |
| depth, | |
| source: sourceFile || "", | |
| content: void 0, | |
| ignore: void 0 | |
| }; | |
| const sourceMap = loader(ctx.source, ctx); | |
| const { source, content, ignore } = ctx; | |
| if (sourceMap) return build(new TraceMap(sourceMap, source), loader, source, depth); | |
| const sourceContent = content !== void 0 ? content : sourcesContent ? sourcesContent[i] : null; | |
| const ignored = ignore !== void 0 ? ignore : ignoreList ? ignoreList.includes(i) : false; | |
| return OriginalSource(source, sourceContent, ignored); | |
| }); | |
| return MapSource(map, children); | |
| } | |
| // src/source-map.ts | |
| import { toDecodedMap, toEncodedMap } from "@jridgewell/gen-mapping"; | |
| var SourceMap = class { | |
| constructor(map, options) { | |
| const out = options.decodedMappings ? toDecodedMap(map) : toEncodedMap(map); | |
| this.version = out.version; | |
| this.file = out.file; | |
| this.mappings = out.mappings; | |
| this.names = out.names; | |
| this.ignoreList = out.ignoreList; | |
| this.sourceRoot = out.sourceRoot; | |
| this.sources = out.sources; | |
| if (!options.excludeContent) { | |
| this.sourcesContent = out.sourcesContent; | |
| } | |
| } | |
| toString() { | |
| return JSON.stringify(this); | |
| } | |
| }; | |
| // src/remapping.ts | |
| function remapping(input, loader, options) { | |
| const opts = typeof options === "object" ? options : { excludeContent: !!options, decodedMappings: false }; | |
| const tree = buildSourceMapTree(input, loader); | |
| return new SourceMap(traceMappings(tree), opts); | |
| } | |
| export { | |
| remapping as default | |
| }; | |
| //# sourceMappingURL=remapping.mjs.map | |