123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292 |
- // src/set-array.ts
- var SetArray = class {
- constructor() {
- this._indexes = { __proto__: null };
- this.array = [];
- }
- };
- function cast(set) {
- return set;
- }
- function get(setarr, key) {
- return cast(setarr)._indexes[key];
- }
- function put(setarr, key) {
- const index = get(setarr, key);
- if (index !== void 0) return index;
- const { array, _indexes: indexes } = cast(setarr);
- const length = array.push(key);
- return indexes[key] = length - 1;
- }
- function remove(setarr, key) {
- const index = get(setarr, key);
- if (index === void 0) return;
- const { array, _indexes: indexes } = cast(setarr);
- for (let i = index + 1; i < array.length; i++) {
- const k = array[i];
- array[i - 1] = k;
- indexes[k]--;
- }
- indexes[key] = void 0;
- array.pop();
- }
- // src/gen-mapping.ts
- import {
- encode
- } from "@jridgewell/sourcemap-codec";
- import { TraceMap, decodedMappings } from "@jridgewell/trace-mapping";
- // src/sourcemap-segment.ts
- var COLUMN = 0;
- var SOURCES_INDEX = 1;
- var SOURCE_LINE = 2;
- var SOURCE_COLUMN = 3;
- var NAMES_INDEX = 4;
- // src/gen-mapping.ts
- var NO_NAME = -1;
- var GenMapping = class {
- constructor({ file, sourceRoot } = {}) {
- this._names = new SetArray();
- this._sources = new SetArray();
- this._sourcesContent = [];
- this._mappings = [];
- this.file = file;
- this.sourceRoot = sourceRoot;
- this._ignoreList = new SetArray();
- }
- };
- function cast2(map) {
- return map;
- }
- function addSegment(map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {
- return addSegmentInternal(
- false,
- map,
- genLine,
- genColumn,
- source,
- sourceLine,
- sourceColumn,
- name,
- content
- );
- }
- function addMapping(map, mapping) {
- return addMappingInternal(false, map, mapping);
- }
- var maybeAddSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => {
- return addSegmentInternal(
- true,
- map,
- genLine,
- genColumn,
- source,
- sourceLine,
- sourceColumn,
- name,
- content
- );
- };
- var maybeAddMapping = (map, mapping) => {
- return addMappingInternal(true, map, mapping);
- };
- function setSourceContent(map, source, content) {
- const {
- _sources: sources,
- _sourcesContent: sourcesContent
- // _originalScopes: originalScopes,
- } = cast2(map);
- const index = put(sources, source);
- sourcesContent[index] = content;
- }
- function setIgnore(map, source, ignore = true) {
- const {
- _sources: sources,
- _sourcesContent: sourcesContent,
- _ignoreList: ignoreList
- // _originalScopes: originalScopes,
- } = cast2(map);
- const index = put(sources, source);
- if (index === sourcesContent.length) sourcesContent[index] = null;
- if (ignore) put(ignoreList, index);
- else remove(ignoreList, index);
- }
- function toDecodedMap(map) {
- const {
- _mappings: mappings,
- _sources: sources,
- _sourcesContent: sourcesContent,
- _names: names,
- _ignoreList: ignoreList
- // _originalScopes: originalScopes,
- // _generatedRanges: generatedRanges,
- } = cast2(map);
- removeEmptyFinalLines(mappings);
- return {
- version: 3,
- file: map.file || void 0,
- names: names.array,
- sourceRoot: map.sourceRoot || void 0,
- sources: sources.array,
- sourcesContent,
- mappings,
- // originalScopes,
- // generatedRanges,
- ignoreList: ignoreList.array
- };
- }
- function toEncodedMap(map) {
- const decoded = toDecodedMap(map);
- return Object.assign({}, decoded, {
- // originalScopes: decoded.originalScopes.map((os) => encodeOriginalScopes(os)),
- // generatedRanges: encodeGeneratedRanges(decoded.generatedRanges as GeneratedRange[]),
- mappings: encode(decoded.mappings)
- });
- }
- function fromMap(input) {
- const map = new TraceMap(input);
- const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });
- putAll(cast2(gen)._names, map.names);
- putAll(cast2(gen)._sources, map.sources);
- cast2(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null);
- cast2(gen)._mappings = decodedMappings(map);
- if (map.ignoreList) putAll(cast2(gen)._ignoreList, map.ignoreList);
- return gen;
- }
- function allMappings(map) {
- const out = [];
- const { _mappings: mappings, _sources: sources, _names: names } = cast2(map);
- for (let i = 0; i < mappings.length; i++) {
- const line = mappings[i];
- for (let j = 0; j < line.length; j++) {
- const seg = line[j];
- const generated = { line: i + 1, column: seg[COLUMN] };
- let source = void 0;
- let original = void 0;
- let name = void 0;
- if (seg.length !== 1) {
- source = sources.array[seg[SOURCES_INDEX]];
- original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] };
- if (seg.length === 5) name = names.array[seg[NAMES_INDEX]];
- }
- out.push({ generated, source, original, name });
- }
- }
- return out;
- }
- function addSegmentInternal(skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {
- const {
- _mappings: mappings,
- _sources: sources,
- _sourcesContent: sourcesContent,
- _names: names
- // _originalScopes: originalScopes,
- } = cast2(map);
- const line = getIndex(mappings, genLine);
- const index = getColumnIndex(line, genColumn);
- if (!source) {
- if (skipable && skipSourceless(line, index)) return;
- return insert(line, index, [genColumn]);
- }
- assert(sourceLine);
- assert(sourceColumn);
- const sourcesIndex = put(sources, source);
- const namesIndex = name ? put(names, name) : NO_NAME;
- if (sourcesIndex === sourcesContent.length) sourcesContent[sourcesIndex] = content != null ? content : null;
- if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {
- return;
- }
- return insert(
- line,
- index,
- name ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex] : [genColumn, sourcesIndex, sourceLine, sourceColumn]
- );
- }
- function assert(_val) {
- }
- function getIndex(arr, index) {
- for (let i = arr.length; i <= index; i++) {
- arr[i] = [];
- }
- return arr[index];
- }
- function getColumnIndex(line, genColumn) {
- let index = line.length;
- for (let i = index - 1; i >= 0; index = i--) {
- const current = line[i];
- if (genColumn >= current[COLUMN]) break;
- }
- return index;
- }
- function insert(array, index, value) {
- for (let i = array.length; i > index; i--) {
- array[i] = array[i - 1];
- }
- array[index] = value;
- }
- function removeEmptyFinalLines(mappings) {
- const { length } = mappings;
- let len = length;
- for (let i = len - 1; i >= 0; len = i, i--) {
- if (mappings[i].length > 0) break;
- }
- if (len < length) mappings.length = len;
- }
- function putAll(setarr, array) {
- for (let i = 0; i < array.length; i++) put(setarr, array[i]);
- }
- function skipSourceless(line, index) {
- if (index === 0) return true;
- const prev = line[index - 1];
- return prev.length === 1;
- }
- function skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) {
- if (index === 0) return false;
- const prev = line[index - 1];
- if (prev.length === 1) return false;
- return sourcesIndex === prev[SOURCES_INDEX] && sourceLine === prev[SOURCE_LINE] && sourceColumn === prev[SOURCE_COLUMN] && namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME);
- }
- function addMappingInternal(skipable, map, mapping) {
- const { generated, source, original, name, content } = mapping;
- if (!source) {
- return addSegmentInternal(
- skipable,
- map,
- generated.line - 1,
- generated.column,
- null,
- null,
- null,
- null,
- null
- );
- }
- assert(original);
- return addSegmentInternal(
- skipable,
- map,
- generated.line - 1,
- generated.column,
- source,
- original.line - 1,
- original.column,
- name,
- content
- );
- }
- export {
- GenMapping,
- addMapping,
- addSegment,
- allMappings,
- fromMap,
- maybeAddMapping,
- maybeAddSegment,
- setIgnore,
- setSourceContent,
- toDecodedMap,
- toEncodedMap
- };
- //# sourceMappingURL=gen-mapping.mjs.map
|