You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							175 lines
						
					
					
						
							6.8 KiB
						
					
					
				
			
		
		
	
	
							175 lines
						
					
					
						
							6.8 KiB
						
					
					
				| (function (global, factory) {
 | |
|     typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@jridgewell/set-array'), require('@jridgewell/sourcemap-codec')) :
 | |
|     typeof define === 'function' && define.amd ? define(['exports', '@jridgewell/set-array', '@jridgewell/sourcemap-codec'], factory) :
 | |
|     (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.genMapping = {}, global.setArray, global.sourcemapCodec));
 | |
| })(this, (function (exports, setArray, sourcemapCodec) { 'use strict';
 | |
| 
 | |
|     /**
 | |
|      * 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;
 | |
|     /**
 | |
|      * 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.decodedMap = void 0;
 | |
|     /**
 | |
|      * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects
 | |
|      * a sourcemap, or to JSON.stringify.
 | |
|      */
 | |
|     exports.encodedMap = 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;
 | |
|     /**
 | |
|      * 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) => {
 | |
|             const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = map;
 | |
|             const line = getLine(mappings, genLine);
 | |
|             if (source == null) {
 | |
|                 const seg = [genColumn];
 | |
|                 const index = getColumnIndex(line, genColumn, seg);
 | |
|                 return insert(line, index, seg);
 | |
|             }
 | |
|             const sourcesIndex = setArray.put(sources, source);
 | |
|             const seg = name
 | |
|                 ? [genColumn, sourcesIndex, sourceLine, sourceColumn, setArray.put(names, name)]
 | |
|                 : [genColumn, sourcesIndex, sourceLine, sourceColumn];
 | |
|             const index = getColumnIndex(line, genColumn, seg);
 | |
|             if (sourcesIndex === sourcesContent.length)
 | |
|                 sourcesContent[sourcesIndex] = null;
 | |
|             insert(line, index, seg);
 | |
|         };
 | |
|         exports.addMapping = (map, mapping) => {
 | |
|             const { generated, source, original, name } = mapping;
 | |
|             return exports.addSegment(map, generated.line - 1, generated.column, source, original == null ? undefined : original.line - 1, original === null || original === void 0 ? void 0 : original.column, name);
 | |
|         };
 | |
|         exports.setSourceContent = (map, source, content) => {
 | |
|             const { _sources: sources, _sourcesContent: sourcesContent } = map;
 | |
|             sourcesContent[setArray.put(sources, source)] = content;
 | |
|         };
 | |
|         exports.decodedMap = (map) => {
 | |
|             const { file, sourceRoot, _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = map;
 | |
|             return {
 | |
|                 version: 3,
 | |
|                 file,
 | |
|                 names: names.array,
 | |
|                 sourceRoot: sourceRoot || undefined,
 | |
|                 sources: sources.array,
 | |
|                 sourcesContent,
 | |
|                 mappings,
 | |
|             };
 | |
|         };
 | |
|         exports.encodedMap = (map) => {
 | |
|             const decoded = exports.decodedMap(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[0] };
 | |
|                     let source = undefined;
 | |
|                     let original = undefined;
 | |
|                     let name = undefined;
 | |
|                     if (seg.length !== 1) {
 | |
|                         source = sources.array[seg[1]];
 | |
|                         original = { line: seg[2] + 1, column: seg[3] };
 | |
|                         if (seg.length === 5)
 | |
|                             name = names.array[seg[4]];
 | |
|                     }
 | |
|                     out.push({ generated, source, original, name });
 | |
|                 }
 | |
|             }
 | |
|             return out;
 | |
|         };
 | |
|     })();
 | |
|     function getLine(mappings, index) {
 | |
|         for (let i = mappings.length; i <= index; i++) {
 | |
|             mappings[i] = [];
 | |
|         }
 | |
|         return mappings[index];
 | |
|     }
 | |
|     function getColumnIndex(line, column, seg) {
 | |
|         let index = line.length;
 | |
|         for (let i = index - 1; i >= 0; i--, index--) {
 | |
|             const current = line[i];
 | |
|             const col = current[0];
 | |
|             if (col > column)
 | |
|                 continue;
 | |
|             if (col < column)
 | |
|                 break;
 | |
|             const cmp = compare(current, seg);
 | |
|             if (cmp === 0)
 | |
|                 return index;
 | |
|             if (cmp < 0)
 | |
|                 break;
 | |
|         }
 | |
|         return index;
 | |
|     }
 | |
|     function compare(a, b) {
 | |
|         let cmp = compareNum(a.length, b.length);
 | |
|         if (cmp !== 0)
 | |
|             return cmp;
 | |
|         // We've already checked genColumn
 | |
|         if (a.length === 1)
 | |
|             return 0;
 | |
|         cmp = compareNum(a[1], b[1]);
 | |
|         if (cmp !== 0)
 | |
|             return cmp;
 | |
|         cmp = compareNum(a[2], b[2]);
 | |
|         if (cmp !== 0)
 | |
|             return cmp;
 | |
|         cmp = compareNum(a[3], b[3]);
 | |
|         if (cmp !== 0)
 | |
|             return cmp;
 | |
|         if (a.length === 4)
 | |
|             return 0;
 | |
|         return compareNum(a[4], b[4]);
 | |
|     }
 | |
|     function compareNum(a, b) {
 | |
|         return a - b;
 | |
|     }
 | |
|     function insert(array, index, value) {
 | |
|         if (index === -1)
 | |
|             return;
 | |
|         for (let i = array.length; i > index; i--) {
 | |
|             array[i] = array[i - 1];
 | |
|         }
 | |
|         array[index] = value;
 | |
|     }
 | |
| 
 | |
|     exports.GenMapping = GenMapping;
 | |
| 
 | |
|     Object.defineProperty(exports, '__esModule', { value: true });
 | |
| 
 | |
| }));
 | |
| //# sourceMappingURL=gen-mapping.umd.js.map
 |