summaryrefslogtreecommitdiff
path: root/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js')
-rw-r--r--node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js236
1 files changed, 236 insertions, 0 deletions
diff --git a/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js
new file mode 100644
index 0000000..d9fcf5c
--- /dev/null
+++ b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js
@@ -0,0 +1,236 @@
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@jridgewell/set-array'), require('@jridgewell/sourcemap-codec'), require('@jridgewell/trace-mapping')) :
+ typeof define === 'function' && define.amd ? define(['exports', '@jridgewell/set-array', '@jridgewell/sourcemap-codec', '@jridgewell/trace-mapping'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.genMapping = {}, global.setArray, global.sourcemapCodec, global.traceMapping));
+})(this, (function (exports, setArray, sourcemapCodec, traceMapping) { 'use strict';
+
+ const COLUMN = 0;
+ const SOURCES_INDEX = 1;
+ const SOURCE_LINE = 2;
+ const SOURCE_COLUMN = 3;
+ const NAMES_INDEX = 4;
+
+ const NO_NAME = -1;
+ /**
+ * A low-level API to associate a generated position with an original source position. Line and
+ * column here are 0-based, unlike `addMapping`.
+ */
+ exports.addSegment = void 0;
+ /**
+ * A high-level API to associate a generated position with an original source position. Line is
+ * 1-based, but column is 0-based, due to legacy behavior in `source-map` library.
+ */
+ exports.addMapping = void 0;
+ /**
+ * Same as `addSegment`, but will only add the segment if it generates useful information in the
+ * resulting map. This only works correctly if segments are added **in order**, meaning you should
+ * not add a segment with a lower generated line/column than one that came before.
+ */
+ exports.maybeAddSegment = void 0;
+ /**
+ * Same as `addMapping`, but will only add the mapping if it generates useful information in the
+ * resulting map. This only works correctly if mappings are added **in order**, meaning you should
+ * not add a mapping with a lower generated line/column than one that came before.
+ */
+ exports.maybeAddMapping = void 0;
+ /**
+ * Adds/removes the content of the source file to the source map.
+ */
+ exports.setSourceContent = void 0;
+ /**
+ * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects
+ * a sourcemap, or to JSON.stringify.
+ */
+ exports.toDecodedMap = void 0;
+ /**
+ * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects
+ * a sourcemap, or to JSON.stringify.
+ */
+ exports.toEncodedMap = void 0;
+ /**
+ * Constructs a new GenMapping, using the already present mappings of the input.
+ */
+ exports.fromMap = void 0;
+ /**
+ * Returns an array of high-level mapping objects for every recorded segment, which could then be
+ * passed to the `source-map` library.
+ */
+ exports.allMappings = void 0;
+ // This split declaration is only so that terser can elminiate the static initialization block.
+ let addSegmentInternal;
+ /**
+ * Provides the state to generate a sourcemap.
+ */
+ class GenMapping {
+ constructor({ file, sourceRoot } = {}) {
+ this._names = new setArray.SetArray();
+ this._sources = new setArray.SetArray();
+ this._sourcesContent = [];
+ this._mappings = [];
+ this.file = file;
+ this.sourceRoot = sourceRoot;
+ }
+ }
+ (() => {
+ exports.addSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => {
+ return addSegmentInternal(false, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content);
+ };
+ exports.maybeAddSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => {
+ return addSegmentInternal(true, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content);
+ };
+ exports.addMapping = (map, mapping) => {
+ return addMappingInternal(false, map, mapping);
+ };
+ exports.maybeAddMapping = (map, mapping) => {
+ return addMappingInternal(true, map, mapping);
+ };
+ exports.setSourceContent = (map, source, content) => {
+ const { _sources: sources, _sourcesContent: sourcesContent } = map;
+ sourcesContent[setArray.put(sources, source)] = content;
+ };
+ exports.toDecodedMap = (map) => {
+ const { file, sourceRoot, _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = map;
+ removeEmptyFinalLines(mappings);
+ return {
+ version: 3,
+ file: file || undefined,
+ names: names.array,
+ sourceRoot: sourceRoot || undefined,
+ sources: sources.array,
+ sourcesContent,
+ mappings,
+ };
+ };
+ exports.toEncodedMap = (map) => {
+ const decoded = exports.toDecodedMap(map);
+ return Object.assign(Object.assign({}, decoded), { mappings: sourcemapCodec.encode(decoded.mappings) });
+ };
+ exports.allMappings = (map) => {
+ const out = [];
+ const { _mappings: mappings, _sources: sources, _names: names } = 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 = undefined;
+ let original = undefined;
+ let name = undefined;
+ 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;
+ };
+ exports.fromMap = (input) => {
+ const map = new traceMapping.TraceMap(input);
+ const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });
+ putAll(gen._names, map.names);
+ putAll(gen._sources, map.sources);
+ gen._sourcesContent = map.sourcesContent || map.sources.map(() => null);
+ gen._mappings = traceMapping.decodedMappings(map);
+ return gen;
+ };
+ // Internal helpers
+ addSegmentInternal = (skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => {
+ const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = map;
+ const line = getLine(mappings, genLine);
+ const index = getColumnIndex(line, genColumn);
+ if (!source) {
+ if (skipable && skipSourceless(line, index))
+ return;
+ return insert(line, index, [genColumn]);
+ }
+ const sourcesIndex = setArray.put(sources, source);
+ const namesIndex = name ? setArray.put(names, name) : NO_NAME;
+ if (sourcesIndex === sourcesContent.length)
+ sourcesContent[sourcesIndex] = content !== null && content !== void 0 ? 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 getLine(mappings, index) {
+ for (let i = mappings.length; i <= index; i++) {
+ mappings[i] = [];
+ }
+ return mappings[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(strarr, array) {
+ for (let i = 0; i < array.length; i++)
+ setArray.put(strarr, array[i]);
+ }
+ function skipSourceless(line, index) {
+ // The start of a line is already sourceless, so adding a sourceless segment to the beginning
+ // doesn't generate any useful information.
+ if (index === 0)
+ return true;
+ const prev = line[index - 1];
+ // If the previous segment is also sourceless, then adding another sourceless segment doesn't
+ // genrate any new information. Else, this segment will end the source/named segment and point to
+ // a sourceless position, which is useful.
+ return prev.length === 1;
+ }
+ function skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) {
+ // A source/named segment at the start of a line gives position at that genColumn
+ if (index === 0)
+ return false;
+ const prev = line[index - 1];
+ // If the previous segment is sourceless, then we're transitioning to a source.
+ if (prev.length === 1)
+ return false;
+ // If the previous segment maps to the exact same source position, then this segment doesn't
+ // provide any new position information.
+ 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);
+ }
+ const s = source;
+ return addSegmentInternal(skipable, map, generated.line - 1, generated.column, s, original.line - 1, original.column, name, content);
+ }
+
+ exports.GenMapping = GenMapping;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+}));
+//# sourceMappingURL=gen-mapping.umd.js.map