summaryrefslogtreecommitdiff
path: root/node_modules/source-map/dist/source-map.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/source-map/dist/source-map.js')
-rw-r--r--node_modules/source-map/dist/source-map.js287
1 files changed, 72 insertions, 215 deletions
diff --git a/node_modules/source-map/dist/source-map.js b/node_modules/source-map/dist/source-map.js
index b4eb0874..4e630e29 100644
--- a/node_modules/source-map/dist/source-map.js
+++ b/node_modules/source-map/dist/source-map.js
@@ -142,15 +142,6 @@ return /******/ (function(modules) { // webpackBootstrap
generator.addMapping(newMapping);
});
aSourceMapConsumer.sources.forEach(function (sourceFile) {
- var sourceRelative = sourceFile;
- if (sourceRoot !== null) {
- sourceRelative = util.relative(sourceRoot, sourceFile);
- }
-
- if (!generator._sources.has(sourceRelative)) {
- generator._sources.add(sourceRelative);
- }
-
var content = aSourceMapConsumer.sourceContentFor(sourceFile);
if (content != null) {
generator.setSourceContent(sourceFile, content);
@@ -746,7 +737,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
exports.getArg = getArg;
- var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/;
+ var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/;
var dataUrlRegexp = /^data:.+\,.+$/;
function urlParse(aUrl) {
@@ -902,7 +893,7 @@ return /******/ (function(modules) { // webpackBootstrap
exports.join = join;
exports.isAbsolute = function (aPath) {
- return aPath.charAt(0) === '/' || urlRegexp.test(aPath);
+ return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);
};
/**
@@ -1022,7 +1013,7 @@ return /******/ (function(modules) { // webpackBootstrap
* stubbed out mapping.
*/
function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {
- var cmp = strcmp(mappingA.source, mappingB.source);
+ var cmp = mappingA.source - mappingB.source;
if (cmp !== 0) {
return cmp;
}
@@ -1047,7 +1038,7 @@ return /******/ (function(modules) { // webpackBootstrap
return cmp;
}
- return strcmp(mappingA.name, mappingB.name);
+ return mappingA.name - mappingB.name;
}
exports.compareByOriginalPositions = compareByOriginalPositions;
@@ -1071,7 +1062,7 @@ return /******/ (function(modules) { // webpackBootstrap
return cmp;
}
- cmp = strcmp(mappingA.source, mappingB.source);
+ cmp = mappingA.source - mappingB.source;
if (cmp !== 0) {
return cmp;
}
@@ -1086,7 +1077,7 @@ return /******/ (function(modules) { // webpackBootstrap
return cmp;
}
- return strcmp(mappingA.name, mappingB.name);
+ return mappingA.name - mappingB.name;
}
exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;
@@ -1095,14 +1086,6 @@ return /******/ (function(modules) { // webpackBootstrap
return 0;
}
- if (aStr1 === null) {
- return 1; // aStr2 !== null
- }
-
- if (aStr2 === null) {
- return -1; // aStr1 !== null
- }
-
if (aStr1 > aStr2) {
return 1;
}
@@ -1144,69 +1127,6 @@ return /******/ (function(modules) { // webpackBootstrap
}
exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;
- /**
- * Strip any JSON XSSI avoidance prefix from the string (as documented
- * in the source maps specification), and then parse the string as
- * JSON.
- */
- function parseSourceMapInput(str) {
- return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, ''));
- }
- exports.parseSourceMapInput = parseSourceMapInput;
-
- /**
- * Compute the URL of a source given the the source root, the source's
- * URL, and the source map's URL.
- */
- function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {
- sourceURL = sourceURL || '';
-
- if (sourceRoot) {
- // This follows what Chrome does.
- if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {
- sourceRoot += '/';
- }
- // The spec says:
- // Line 4: An optional source root, useful for relocating source
- // files on a server or removing repeated values in the
- // “sources” entry. This value is prepended to the individual
- // entries in the “source” field.
- sourceURL = sourceRoot + sourceURL;
- }
-
- // Historically, SourceMapConsumer did not take the sourceMapURL as
- // a parameter. This mode is still somewhat supported, which is why
- // this code block is conditional. However, it's preferable to pass
- // the source map URL to SourceMapConsumer, so that this function
- // can implement the source URL resolution algorithm as outlined in
- // the spec. This block is basically the equivalent of:
- // new URL(sourceURL, sourceMapURL).toString()
- // ... except it avoids using URL, which wasn't available in the
- // older releases of node still supported by this library.
- //
- // The spec says:
- // If the sources are not absolute URLs after prepending of the
- // “sourceRoot”, the sources are resolved relative to the
- // SourceMap (like resolving script src in a html document).
- if (sourceMapURL) {
- var parsed = urlParse(sourceMapURL);
- if (!parsed) {
- throw new Error("sourceMapURL could not be parsed");
- }
- if (parsed.path) {
- // Strip the last path component, but keep the "/".
- var index = parsed.path.lastIndexOf('/');
- if (index >= 0) {
- parsed.path = parsed.path.substring(0, index + 1);
- }
- }
- sourceURL = join(urlGenerate(parsed), sourceURL);
- }
-
- return normalize(sourceURL);
- }
- exports.computeSourceURL = computeSourceURL;
-
/***/ }),
/* 5 */
@@ -1437,19 +1357,19 @@ return /******/ (function(modules) { // webpackBootstrap
var base64VLQ = __webpack_require__(2);
var quickSort = __webpack_require__(9).quickSort;
- function SourceMapConsumer(aSourceMap, aSourceMapURL) {
+ function SourceMapConsumer(aSourceMap) {
var sourceMap = aSourceMap;
if (typeof aSourceMap === 'string') {
- sourceMap = util.parseSourceMapInput(aSourceMap);
+ sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
}
return sourceMap.sections != null
- ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)
- : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);
+ ? new IndexedSourceMapConsumer(sourceMap)
+ : new BasicSourceMapConsumer(sourceMap);
}
- SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {
- return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);
+ SourceMapConsumer.fromSourceMap = function(aSourceMap) {
+ return BasicSourceMapConsumer.fromSourceMap(aSourceMap);
}
/**
@@ -1489,8 +1409,6 @@ return /******/ (function(modules) { // webpackBootstrap
SourceMapConsumer.prototype.__generatedMappings = null;
Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {
- configurable: true,
- enumerable: true,
get: function () {
if (!this.__generatedMappings) {
this._parseMappings(this._mappings, this.sourceRoot);
@@ -1502,8 +1420,6 @@ return /******/ (function(modules) { // webpackBootstrap
SourceMapConsumer.prototype.__originalMappings = null;
Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {
- configurable: true,
- enumerable: true,
get: function () {
if (!this.__originalMappings) {
this._parseMappings(this._mappings, this.sourceRoot);
@@ -1571,7 +1487,9 @@ return /******/ (function(modules) { // webpackBootstrap
var sourceRoot = this.sourceRoot;
mappings.map(function (mapping) {
var source = mapping.source === null ? null : this._sources.at(mapping.source);
- source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);
+ if (source != null && sourceRoot != null) {
+ source = util.join(sourceRoot, source);
+ }
return {
source: source,
generatedLine: mapping.generatedLine,
@@ -1594,16 +1512,13 @@ return /******/ (function(modules) { // webpackBootstrap
* The only argument is an object with the following properties:
*
* - source: The filename of the original source.
- * - line: The line number in the original source. The line number is 1-based.
+ * - line: The line number in the original source.
* - column: Optional. the column number in the original source.
- * The column number is 0-based.
*
* and an array of objects is returned, each with the following properties:
*
- * - line: The line number in the generated source, or null. The
- * line number is 1-based.
+ * - line: The line number in the generated source, or null.
* - column: The column number in the generated source, or null.
- * The column number is 0-based.
*/
SourceMapConsumer.prototype.allGeneratedPositionsFor =
function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {
@@ -1619,10 +1534,13 @@ return /******/ (function(modules) { // webpackBootstrap
originalColumn: util.getArg(aArgs, 'column', 0)
};
- needle.source = this._findSourceIndex(needle.source);
- if (needle.source < 0) {
+ if (this.sourceRoot != null) {
+ needle.source = util.relative(this.sourceRoot, needle.source);
+ }
+ if (!this._sources.has(needle.source)) {
return [];
}
+ needle.source = this._sources.indexOf(needle.source);
var mappings = [];
@@ -1682,7 +1600,7 @@ return /******/ (function(modules) { // webpackBootstrap
* query for information about the original file positions by giving it a file
* position in the generated source.
*
- * The first parameter is the raw source map (either as a JSON string, or
+ * The only parameter is the raw source map (either as a JSON string, or
* already parsed to an object). According to the spec, source maps have the
* following attributes:
*
@@ -1705,16 +1623,12 @@ return /******/ (function(modules) { // webpackBootstrap
* mappings: "AA,AB;;ABCDE;"
* }
*
- * The second parameter, if given, is a string whose value is the URL
- * at which the source map was found. This URL is used to compute the
- * sources array.
- *
* [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#
*/
- function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {
+ function BasicSourceMapConsumer(aSourceMap) {
var sourceMap = aSourceMap;
if (typeof aSourceMap === 'string') {
- sourceMap = util.parseSourceMapInput(aSourceMap);
+ sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
}
var version = util.getArg(sourceMap, 'version');
@@ -1733,10 +1647,6 @@ return /******/ (function(modules) { // webpackBootstrap
throw new Error('Unsupported version: ' + version);
}
- if (sourceRoot) {
- sourceRoot = util.normalize(sourceRoot);
- }
-
sources = sources
.map(String)
// Some source maps produce relative source paths like "./foo.js" instead of
@@ -1760,14 +1670,9 @@ return /******/ (function(modules) { // webpackBootstrap
this._names = ArraySet.fromArray(names.map(String), true);
this._sources = ArraySet.fromArray(sources, true);
- this._absoluteSources = this._sources.toArray().map(function (s) {
- return util.computeSourceURL(sourceRoot, s, aSourceMapURL);
- });
-
this.sourceRoot = sourceRoot;
this.sourcesContent = sourcesContent;
this._mappings = mappings;
- this._sourceMapURL = aSourceMapURL;
this.file = file;
}
@@ -1775,42 +1680,14 @@ return /******/ (function(modules) { // webpackBootstrap
BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;
/**
- * Utility function to find the index of a source. Returns -1 if not
- * found.
- */
- BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {
- var relativeSource = aSource;
- if (this.sourceRoot != null) {
- relativeSource = util.relative(this.sourceRoot, relativeSource);
- }
-
- if (this._sources.has(relativeSource)) {
- return this._sources.indexOf(relativeSource);
- }
-
- // Maybe aSource is an absolute URL as returned by |sources|. In
- // this case we can't simply undo the transform.
- var i;
- for (i = 0; i < this._absoluteSources.length; ++i) {
- if (this._absoluteSources[i] == aSource) {
- return i;
- }
- }
-
- return -1;
- };
-
- /**
* Create a BasicSourceMapConsumer from a SourceMapGenerator.
*
* @param SourceMapGenerator aSourceMap
* The source map that will be consumed.
- * @param String aSourceMapURL
- * The URL at which the source map can be found (optional)
* @returns BasicSourceMapConsumer
*/
BasicSourceMapConsumer.fromSourceMap =
- function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {
+ function SourceMapConsumer_fromSourceMap(aSourceMap) {
var smc = Object.create(BasicSourceMapConsumer.prototype);
var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
@@ -1819,10 +1696,6 @@ return /******/ (function(modules) { // webpackBootstrap
smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),
smc.sourceRoot);
smc.file = aSourceMap._file;
- smc._sourceMapURL = aSourceMapURL;
- smc._absoluteSources = smc._sources.toArray().map(function (s) {
- return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);
- });
// Because we are modifying the entries (by converting string sources and
// names to indices into the sources and names ArraySets), we have to make
@@ -1869,7 +1742,9 @@ return /******/ (function(modules) { // webpackBootstrap
*/
Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {
get: function () {
- return this._absoluteSources.slice();
+ return this._sources.toArray().map(function (s) {
+ return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;
+ }, this);
}
});
@@ -2050,10 +1925,8 @@ return /******/ (function(modules) { // webpackBootstrap
* source's line and column positions provided. The only argument is an object
* with the following properties:
*
- * - line: The line number in the generated source. The line number
- * is 1-based.
- * - column: The column number in the generated source. The column
- * number is 0-based.
+ * - line: The line number in the generated source.
+ * - column: The column number in the generated source.
* - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
* 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
* closest element that is smaller than or greater than the one we are
@@ -2063,10 +1936,8 @@ return /******/ (function(modules) { // webpackBootstrap
* and an object is returned with the following properties:
*
* - source: The original source file, or null.
- * - line: The line number in the original source, or null. The
- * line number is 1-based.
- * - column: The column number in the original source, or null. The
- * column number is 0-based.
+ * - line: The line number in the original source, or null.
+ * - column: The column number in the original source, or null.
* - name: The original identifier, or null.
*/
BasicSourceMapConsumer.prototype.originalPositionFor =
@@ -2092,7 +1963,9 @@ return /******/ (function(modules) { // webpackBootstrap
var source = util.getArg(mapping, 'source', null);
if (source !== null) {
source = this._sources.at(source);
- source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);
+ if (this.sourceRoot != null) {
+ source = util.join(this.sourceRoot, source);
+ }
}
var name = util.getArg(mapping, 'name', null);
if (name !== null) {
@@ -2139,14 +2012,12 @@ return /******/ (function(modules) { // webpackBootstrap
return null;
}
- var index = this._findSourceIndex(aSource);
- if (index >= 0) {
- return this.sourcesContent[index];
+ if (this.sourceRoot != null) {
+ aSource = util.relative(this.sourceRoot, aSource);
}
- var relativeSource = aSource;
- if (this.sourceRoot != null) {
- relativeSource = util.relative(this.sourceRoot, relativeSource);
+ if (this._sources.has(aSource)) {
+ return this.sourcesContent[this._sources.indexOf(aSource)];
}
var url;
@@ -2156,15 +2027,15 @@ return /******/ (function(modules) { // webpackBootstrap
// many users. We can help them out when they expect file:// URIs to
// behave like it would if they were running a local HTTP server. See
// https://bugzilla.mozilla.org/show_bug.cgi?id=885597.
- var fileUriAbsPath = relativeSource.replace(/^file:\/\//, "");
+ var fileUriAbsPath = aSource.replace(/^file:\/\//, "");
if (url.scheme == "file"
&& this._sources.has(fileUriAbsPath)) {
return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]
}
if ((!url.path || url.path == "/")
- && this._sources.has("/" + relativeSource)) {
- return this.sourcesContent[this._sources.indexOf("/" + relativeSource)];
+ && this._sources.has("/" + aSource)) {
+ return this.sourcesContent[this._sources.indexOf("/" + aSource)];
}
}
@@ -2176,7 +2047,7 @@ return /******/ (function(modules) { // webpackBootstrap
return null;
}
else {
- throw new Error('"' + relativeSource + '" is not in the SourceMap.');
+ throw new Error('"' + aSource + '" is not in the SourceMap.');
}
};
@@ -2186,10 +2057,8 @@ return /******/ (function(modules) { // webpackBootstrap
* the following properties:
*
* - source: The filename of the original source.
- * - line: The line number in the original source. The line number
- * is 1-based.
- * - column: The column number in the original source. The column
- * number is 0-based.
+ * - line: The line number in the original source.
+ * - column: The column number in the original source.
* - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
* 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
* closest element that is smaller than or greater than the one we are
@@ -2198,22 +2067,23 @@ return /******/ (function(modules) { // webpackBootstrap
*
* and an object is returned with the following properties:
*
- * - line: The line number in the generated source, or null. The
- * line number is 1-based.
+ * - line: The line number in the generated source, or null.
* - column: The column number in the generated source, or null.
- * The column number is 0-based.
*/
BasicSourceMapConsumer.prototype.generatedPositionFor =
function SourceMapConsumer_generatedPositionFor(aArgs) {
var source = util.getArg(aArgs, 'source');
- source = this._findSourceIndex(source);
- if (source < 0) {
+ if (this.sourceRoot != null) {
+ source = util.relative(this.sourceRoot, source);
+ }
+ if (!this._sources.has(source)) {
return {
line: null,
column: null,
lastColumn: null
};
}
+ source = this._sources.indexOf(source);
var needle = {
source: source,
@@ -2257,7 +2127,7 @@ return /******/ (function(modules) { // webpackBootstrap
* that it takes "indexed" source maps (i.e. ones with a "sections" field) as
* input.
*
- * The first parameter is a raw source map (either as a JSON string, or already
+ * The only parameter is a raw source map (either as a JSON string, or already
* parsed to an object). According to the spec for indexed source maps, they
* have the following attributes:
*
@@ -2294,16 +2164,12 @@ return /******/ (function(modules) { // webpackBootstrap
* }],
* }
*
- * The second parameter, if given, is a string whose value is the URL
- * at which the source map was found. This URL is used to compute the
- * sources array.
- *
* [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt
*/
- function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {
+ function IndexedSourceMapConsumer(aSourceMap) {
var sourceMap = aSourceMap;
if (typeof aSourceMap === 'string') {
- sourceMap = util.parseSourceMapInput(aSourceMap);
+ sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
}
var version = util.getArg(sourceMap, 'version');
@@ -2343,7 +2209,7 @@ return /******/ (function(modules) { // webpackBootstrap
generatedLine: offsetLine + 1,
generatedColumn: offsetColumn + 1
},
- consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)
+ consumer: new SourceMapConsumer(util.getArg(s, 'map'))
}
});
}
@@ -2376,18 +2242,14 @@ return /******/ (function(modules) { // webpackBootstrap
* source's line and column positions provided. The only argument is an object
* with the following properties:
*
- * - line: The line number in the generated source. The line number
- * is 1-based.
- * - column: The column number in the generated source. The column
- * number is 0-based.
+ * - line: The line number in the generated source.
+ * - column: The column number in the generated source.
*
* and an object is returned with the following properties:
*
* - source: The original source file, or null.
- * - line: The line number in the original source, or null. The
- * line number is 1-based.
- * - column: The column number in the original source, or null. The
- * column number is 0-based.
+ * - line: The line number in the original source, or null.
+ * - column: The column number in the original source, or null.
* - name: The original identifier, or null.
*/
IndexedSourceMapConsumer.prototype.originalPositionFor =
@@ -2471,17 +2333,13 @@ return /******/ (function(modules) { // webpackBootstrap
* the following properties:
*
* - source: The filename of the original source.
- * - line: The line number in the original source. The line number
- * is 1-based.
- * - column: The column number in the original source. The column
- * number is 0-based.
+ * - line: The line number in the original source.
+ * - column: The column number in the original source.
*
* and an object is returned with the following properties:
*
- * - line: The line number in the generated source, or null. The
- * line number is 1-based.
+ * - line: The line number in the generated source, or null.
* - column: The column number in the generated source, or null.
- * The column number is 0-based.
*/
IndexedSourceMapConsumer.prototype.generatedPositionFor =
function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {
@@ -2490,7 +2348,7 @@ return /******/ (function(modules) { // webpackBootstrap
// Only consider this section if the requested source is in the list of
// sources of the consumer.
- if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {
+ if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {
continue;
}
var generatedPosition = section.consumer.generatedPositionFor(aArgs);
@@ -2529,16 +2387,15 @@ return /******/ (function(modules) { // webpackBootstrap
var mapping = sectionMappings[j];
var source = section.consumer._sources.at(mapping.source);
- source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);
+ if (section.consumer.sourceRoot !== null) {
+ source = util.join(section.consumer.sourceRoot, source);
+ }
this._sources.add(source);
source = this._sources.indexOf(source);
- var name = null;
- if (mapping.name) {
- name = section.consumer._names.at(mapping.name);
- this._names.add(name);
- name = this._names.indexOf(name);
- }
+ var name = section.consumer._names.at(mapping.name);
+ this._names.add(name);
+ name = this._names.indexOf(name);
// The mappings coming from the consumer for the section have
// generated positions relative to the start of the section, so we
@@ -2911,7 +2768,7 @@ return /******/ (function(modules) { // webpackBootstrap
// There is no new line in between.
// Associate the code between "lastGeneratedColumn" and
// "mapping.generatedColumn" with "lastMapping"
- var nextLine = remainingLines[remainingLinesIndex] || '';
+ var nextLine = remainingLines[remainingLinesIndex];
var code = nextLine.substr(0, mapping.generatedColumn -
lastGeneratedColumn);
remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -
@@ -2931,7 +2788,7 @@ return /******/ (function(modules) { // webpackBootstrap
lastGeneratedLine++;
}
if (lastGeneratedColumn < mapping.generatedColumn) {
- var nextLine = remainingLines[remainingLinesIndex] || '';
+ var nextLine = remainingLines[remainingLinesIndex];
node.add(nextLine.substr(0, mapping.generatedColumn));
remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);
lastGeneratedColumn = mapping.generatedColumn;