diff options
Diffstat (limited to 'node_modules/webpack-sources/lib')
| -rw-r--r-- | node_modules/webpack-sources/lib/CachedSource.js | 116 | ||||
| -rw-r--r-- | node_modules/webpack-sources/lib/ConcatSource.js | 104 | ||||
| -rw-r--r-- | node_modules/webpack-sources/lib/LineToLineMappedSource.js | 71 | ||||
| -rw-r--r-- | node_modules/webpack-sources/lib/OriginalSource.js | 91 | ||||
| -rw-r--r-- | node_modules/webpack-sources/lib/PrefixSource.js | 94 | ||||
| -rw-r--r-- | node_modules/webpack-sources/lib/RawSource.js | 46 | ||||
| -rw-r--r-- | node_modules/webpack-sources/lib/ReplaceSource.js | 326 | ||||
| -rw-r--r-- | node_modules/webpack-sources/lib/Source.js | 51 | ||||
| -rw-r--r-- | node_modules/webpack-sources/lib/SourceAndMapMixin.js | 2 | ||||
| -rw-r--r-- | node_modules/webpack-sources/lib/SourceMapSource.js | 79 | 
10 files changed, 508 insertions, 472 deletions
diff --git a/node_modules/webpack-sources/lib/CachedSource.js b/node_modules/webpack-sources/lib/CachedSource.js index 50732aebd..0a81c5c45 100644 --- a/node_modules/webpack-sources/lib/CachedSource.js +++ b/node_modules/webpack-sources/lib/CachedSource.js @@ -2,69 +2,77 @@  	MIT License http://www.opensource.org/licenses/mit-license.php
  	Author Tobias Koppers @sokra
  */
 -function CachedSource(source) {
 -	this._source = source;
 -	this._cachedSource = undefined;
 -	this._cachedSize = undefined;
 -	this._cachedMaps = {};
 +"use strict";
 -	if(source.node) this.node = function(options) {
 -		return this._source.node(options);
 -	};
 +const Source = require("./Source");
 -	if(source.listMap) this.listMap = function(options) {
 -		return this._source.listMap(options);
 -	};
 -}
 -module.exports = CachedSource;
 -
 -CachedSource.prototype.source = function() {
 -	if(typeof this._cachedSource !== "undefined") return this._cachedSource;
 -	return this._cachedSource = this._source.source();
 -};
 +class CachedSource extends Source {
 +	constructor(source) {
 +		super();
 +		this._source = source;
 +		this._cachedSource = undefined;
 +		this._cachedSize = undefined;
 +		this._cachedMaps = {};
 -CachedSource.prototype.size = function() {
 -	if(typeof this._cachedSize !== "undefined") return this._cachedSize;
 -	if(typeof this._cachedSource !== "undefined")
 -		return this._cachedSize = this._cachedSource.length;
 -	return this._cachedSize = this._source.size();
 -};
 +		if(source.node) this.node = function(options) {
 +			return this._source.node(options);
 +		};
 -CachedSource.prototype.sourceAndMap = function(options) {
 -	var key = JSON.stringify(options);
 -	if(typeof this._cachedSource !== "undefined" && key in this._cachedMaps)
 -		return {
 -			source: this._cachedSource,
 -			map: this._cachedMaps[key]
 +		if(source.listMap) this.listMap = function(options) {
 +			return this._source.listMap(options);
  		};
 -	else if(typeof this._cachedSource !== "undefined") {
 +	}
 +
 +	source() {
 +		if(typeof this._cachedSource !== "undefined") return this._cachedSource;
 +		return this._cachedSource = this._source.source();
 +	}
 +
 +	size() {
 +		if(typeof this._cachedSize !== "undefined") return this._cachedSize;
 +		if(typeof this._cachedSource !== "undefined")
 +			return this._cachedSize = this._cachedSource.length;
 +		return this._cachedSize = this._source.size();
 +	}
 +
 +	sourceAndMap(options) {
 +		const key = JSON.stringify(options);
 +		if(typeof this._cachedSource !== "undefined" && key in this._cachedMaps)
 +			return {
 +				source: this._cachedSource,
 +				map: this._cachedMaps[key]
 +			};
 +		else if(typeof this._cachedSource !== "undefined") {
 +			return {
 +				source: this._cachedSource,
 +				map: this._cachedMaps[key] = this._source.map(options)
 +			};
 +		} else if(key in this._cachedMaps) {
 +			return {
 +				source: this._cachedSource = this._source.source(),
 +				map: this._cachedMaps[key]
 +			};
 +		}
 +		const result = this._source.sourceAndMap(options);
 +		this._cachedSource = result.source;
 +		this._cachedMaps[key] = result.map;
  		return {
  			source: this._cachedSource,
 -			map: this._cachedMaps[key] = this._source.map(options)
 -		};
 -	} else if(key in this._cachedMaps) {
 -		return {
 -			source: this._cachedSource = this._source.source(),
  			map: this._cachedMaps[key]
  		};
  	}
 -	var result = this._source.sourceAndMap(options);
 -	this._cachedSource = result.source;
 -	this._cachedMaps[key] = result.map;
 -	return {
 -		source: this._cachedSource,
 -		map: this._cachedMaps[key]
 -	};
 -};
 -CachedSource.prototype.map = function(options) {
 -	if(!options) options = {};
 -	var key = JSON.stringify(options);
 -	if(key in this._cachedMaps)
 -		return this._cachedMaps[key];
 -	return this._cachedMaps[key] = this._source.map();
 -};
 +	map(options) {
 +		if(!options) options = {};
 +		const key = JSON.stringify(options);
 +		if(key in this._cachedMaps)
 +			return this._cachedMaps[key];
 +		return this._cachedMaps[key] = this._source.map();
 +	}
 -CachedSource.prototype.updateHash = function(hash) {
 -	this._source.updateHash(hash);
 -};
 +	updateHash(hash) {
 +		this._source.updateHash(hash);
 +	}
 +}
 +
 +module.exports = CachedSource;
 diff --git a/node_modules/webpack-sources/lib/ConcatSource.js b/node_modules/webpack-sources/lib/ConcatSource.js index 434aa3e5c..8dc712d9c 100644 --- a/node_modules/webpack-sources/lib/ConcatSource.js +++ b/node_modules/webpack-sources/lib/ConcatSource.js @@ -2,62 +2,64 @@  	MIT License http://www.opensource.org/licenses/mit-license.php
  	Author Tobias Koppers @sokra
  */
 -var SourceNode = require("source-map").SourceNode;
 -var SourceListMap = require("source-list-map").SourceListMap;
 -var Source = require("./Source");
 +"use strict";
 -function ConcatSource() {
 -	Source.call(this);
 -	this.children = Array.prototype.slice.call(arguments);
 -}
 -module.exports = ConcatSource;
 +const SourceNode = require("source-map").SourceNode;
 +const SourceListMap = require("source-list-map").SourceListMap;
 +const Source = require("./Source");
 +
 +class ConcatSource extends Source {
 +	constructor() {
 +		super();
 +		this.children = Array.prototype.slice.call(arguments);
 +	}
 +
 +	add(item) {
 +		this.children.push(item);
 +	}
 -ConcatSource.prototype = Object.create(Source.prototype);
 -ConcatSource.prototype.constructor = ConcatSource;
 +	source() {
 +		return this.children.map(function(item) {
 +			return typeof item === "string" ? item : item.source();
 +		}).join("");
 +	}
 -ConcatSource.prototype.add = function(item) {
 -	this.children.push(item);
 -};
 +	size() {
 +		return this.children.map(function(item) {
 +			return typeof item === "string" ? item.length : item.size();
 +		}).reduce(function(sum, s) {
 +			return sum + s;
 +		}, 0);
 +	}
 -ConcatSource.prototype.source = function() {
 -	return this.children.map(function(item) {
 -		return typeof item === "string" ? item : item.source();
 -	}).join("");
 -};
 +	node(options) {
 +		const node = new SourceNode(null, null, null, this.children.map(function(item) {
 +			return typeof item === "string" ? item : item.node(options);
 +		}));
 +		return node;
 +	}
 -ConcatSource.prototype.size = function() {
 -	return this.children.map(function(item) {
 -		return typeof item === "string" ? item.length : item.size();
 -	}).reduce(function(sum, s) {
 -		return sum + s;
 -	}, 0);
 -};
 +	listMap(options) {
 +		const map = new SourceListMap();
 +		this.children.forEach(function(item) {
 +			if(typeof item === "string")
 +				map.add(item);
 +			else
 +				map.add(item.listMap(options));
 +		});
 +		return map;
 +	}
 +
 +	updateHash(hash) {
 +		this.children.forEach(function(item) {
 +			if(typeof item === "string")
 +				hash.update(item);
 +			else
 +				item.updateHash(hash);
 +		});
 +	}
 +}
  require("./SourceAndMapMixin")(ConcatSource.prototype);
 -ConcatSource.prototype.node = function(options) {
 -	var node = new SourceNode(null, null, null, this.children.map(function(item) {
 -		return typeof item === "string" ? item : item.node(options);
 -	}));
 -	return node;
 -};
 -
 -ConcatSource.prototype.listMap = function(options) {
 -	var map = new SourceListMap();
 -	this.children.forEach(function(item) {
 -		if(typeof item === "string")
 -			map.add(item);
 -		else
 -			map.add(item.listMap(options));
 -	});
 -	return map;
 -};
 -
 -ConcatSource.prototype.updateHash = function(hash) {
 -	this.children.forEach(function(item) {
 -		if(typeof item === "string")
 -			hash.update(item);
 -		else
 -			item.updateHash(hash);
 -	});
 -};
 +module.exports = ConcatSource;
 diff --git a/node_modules/webpack-sources/lib/LineToLineMappedSource.js b/node_modules/webpack-sources/lib/LineToLineMappedSource.js index bca32cd73..586710ac8 100644 --- a/node_modules/webpack-sources/lib/LineToLineMappedSource.js +++ b/node_modules/webpack-sources/lib/LineToLineMappedSource.js @@ -2,47 +2,48 @@  	MIT License http://www.opensource.org/licenses/mit-license.php
  	Author Tobias Koppers @sokra
  */
 +"use strict";
 +
  var SourceNode = require("source-map").SourceNode;
  var SourceMapConsumer = require("source-map").SourceMapConsumer;
  var SourceListMap = require("source-list-map").SourceListMap;
  var Source = require("./Source");
 -function LineToLineMappedSource(value, name, originalSource) {
 -	Source.call(this);
 -	this._value = value;
 -	this._name = name;
 -	this._originalSource = originalSource;
 +class LineToLineMappedSource extends Source {
 +	constructor(value, name, originalSource) {
 +		super();
 +		this._value = value;
 +		this._name = name;
 +		this._originalSource = originalSource;
 +	}
 +
 +	source() {
 +		return this._value;
 +	}
 +
 +	node(options) {
 +		var value = this._value;
 +		var name = this._name;
 +		var lines = value.split("\n");
 +		var node = new SourceNode(null, null, null,
 +			lines.map(function(line, idx) {
 +				return new SourceNode(idx + 1, 0, name, (line + (idx != lines.length - 1 ? "\n" : "")));
 +			})
 +		);
 +		node.setSourceContent(name, this._originalSource);
 +		return node;
 +	}
 +
 +	listMap(options) {
 +		return new SourceListMap(this._value, this._name, this._originalSource)
 +	}
 +
 +	updateHash(hash) {
 +		hash.update(this._value);
 +		hash.update(this._originalSource);
 +	}
  }
 -module.exports = LineToLineMappedSource;
 -
 -LineToLineMappedSource.prototype = Object.create(Source.prototype);
 -LineToLineMappedSource.prototype.constructor = LineToLineMappedSource;
 -
 -LineToLineMappedSource.prototype.source = function() {
 -	return this._value;
 -};
 -
  require("./SourceAndMapMixin")(LineToLineMappedSource.prototype);
 -LineToLineMappedSource.prototype.node = function(options) {
 -	var value = this._value;
 -	var name = this._name;
 -	var lines = value.split("\n");
 -	var node = new SourceNode(null, null, null,
 -		lines.map(function(line, idx) {
 -			return new SourceNode(idx + 1, 0, name, (line + (idx != lines.length - 1 ? "\n" : "")));
 -		})
 -	);
 -	node.setSourceContent(name, this._originalSource);
 -	return node;
 -};
 -
 -LineToLineMappedSource.prototype.listMap = function(options) {
 -	return new SourceListMap(this._value, this._name, this._originalSource)
 -};
 -
 -LineToLineMappedSource.prototype.updateHash = function(hash) {
 -	hash.update(this._value);
 -	hash.update(this._originalSource);
 -};
 +module.exports = LineToLineMappedSource;
 diff --git a/node_modules/webpack-sources/lib/OriginalSource.js b/node_modules/webpack-sources/lib/OriginalSource.js index ac80db8a2..24380fcce 100644 --- a/node_modules/webpack-sources/lib/OriginalSource.js +++ b/node_modules/webpack-sources/lib/OriginalSource.js @@ -2,6 +2,8 @@  	MIT License http://www.opensource.org/licenses/mit-license.php
  	Author Tobias Koppers @sokra
  */
 +"use strict";
 +
  var SourceNode = require("source-map").SourceNode;
  var SourceMapConsumer = require("source-map").SourceMapConsumer;
  var SourceListMap = require("source-list-map").SourceListMap;
 @@ -35,54 +37,53 @@ function _splitCode(code) {  	return result;
  }
 -function OriginalSource(value, name) {
 -	Source.call(this);
 -	this._value = value;
 -	this._name = name;
 -}
 -
 -module.exports = OriginalSource;
 +class OriginalSource extends Source {
 +	constructor(value, name) {
 +		super();
 +		this._value = value;
 +		this._name = name;
 +	}
 -OriginalSource.prototype = Object.create(Source.prototype);
 -OriginalSource.prototype.constructor = OriginalSource;
 +	source() {
 +		return this._value;
 +	}
 -OriginalSource.prototype.source = function() {
 -	return this._value;
 -};
 +	node(options) {
 +		options = options || {};
 +		var sourceMap = this._sourceMap;
 +		var value = this._value;
 +		var name = this._name;
 +		var lines = value.split("\n");
 +		var node = new SourceNode(null, null, null,
 +			lines.map(function(line, idx) {
 +				var pos = 0;
 +				if(options.columns === false) {
 +					var content = line + (idx != lines.length - 1 ? "\n" : "");
 +					return new SourceNode(idx + 1, 0, name, content);
 +				}
 +				return new SourceNode(null, null, null,
 +					_splitCode(line + (idx != lines.length - 1 ? "\n" : "")).map(function(item) {
 +						if(/^\s*$/.test(item)) return item;
 +						var res = new SourceNode(idx + 1, pos, name, item);
 +						pos += item.length;
 +						return res;
 +					})
 +				);
 +			})
 +		);
 +		node.setSourceContent(name, value);
 +		return node;
 +	}
 -require("./SourceAndMapMixin")(OriginalSource.prototype);
 +	listMap(options) {
 +		return new SourceListMap(this._value, this._name, this._value)
 +	}
 -OriginalSource.prototype.node = function(options) {
 -	options = options || {};
 -	var sourceMap = this._sourceMap;
 -	var value = this._value;
 -	var name = this._name;
 -	var lines = value.split("\n");
 -	var node = new SourceNode(null, null, null,
 -		lines.map(function(line, idx) {
 -			var pos = 0;
 -			if(options.columns === false) {
 -				var content = line + (idx != lines.length - 1 ? "\n" : "");
 -				return new SourceNode(idx + 1, 0, name, content);
 -			}
 -			return new SourceNode(null, null, null,
 -				_splitCode(line + (idx != lines.length - 1 ? "\n" : "")).map(function(item) {
 -					if(/^\s*$/.test(item)) return item;
 -					var res = new SourceNode(idx + 1, pos, name, item);
 -					pos += item.length;
 -					return res;
 -				})
 -			);
 -		})
 -	);
 -	node.setSourceContent(name, value);
 -	return node;
 -};
 +	updateHash(hash) {
 +		hash.update(this._value);
 +	}
 +}
 -OriginalSource.prototype.listMap = function(options) {
 -	return new SourceListMap(this._value, this._name, this._value)
 -};
 +require("./SourceAndMapMixin")(OriginalSource.prototype);
 -OriginalSource.prototype.updateHash = function(hash) {
 -	hash.update(this._value);
 -};
 +module.exports = OriginalSource;
 diff --git a/node_modules/webpack-sources/lib/PrefixSource.js b/node_modules/webpack-sources/lib/PrefixSource.js index 4ea819c45..b241b9dc6 100644 --- a/node_modules/webpack-sources/lib/PrefixSource.js +++ b/node_modules/webpack-sources/lib/PrefixSource.js @@ -2,55 +2,12 @@  	MIT License http://www.opensource.org/licenses/mit-license.php
  	Author Tobias Koppers @sokra
  */
 +"use strict";
 +
  var Source = require("./Source");
  var SourceNode = require("source-map").SourceNode;
 -var REPLACE_REGEX = /\n(?=.|\s)/g
 -
 -function PrefixSource(prefix, source) {
 -	Source.call(this);
 -	this._source = source;
 -	this._prefix = prefix;
 -}
 -module.exports = PrefixSource;
 -
 -PrefixSource.prototype = Object.create(Source.prototype);
 -PrefixSource.prototype.constructor = PrefixSource;
 -
 -PrefixSource.prototype.source = function() {
 -	var node = typeof this._source === "string" ? this._source : this._source.source();
 -	var prefix = this._prefix;
 -	return prefix + node.replace(REPLACE_REGEX, "\n" + prefix);
 -};
 -
 -require("./SourceAndMapMixin")(PrefixSource.prototype);
 -
 -PrefixSource.prototype.node = function(options) {
 -	var node = this._source.node(options);
 -	var append = [this._prefix];
 -	return new SourceNode(null, null, null, [
 -		cloneAndPrefix(node, this._prefix, append)
 -	]);
 -};
 -
 -PrefixSource.prototype.listMap = function(options) {
 -	var prefix = this._prefix;
 -	var map = this._source.listMap(options);
 -	return map.mapGeneratedCode(function(code) {
 -		return prefix + code.replace(REPLACE_REGEX, "\n" + prefix);
 -	});
 -};
 -
 -PrefixSource.prototype.updateHash = function(hash) {
 -	if(typeof this._source === "string")
 -		hash.update(this._source);
 -	else
 -		this._source.updateHash(hash);
 -	if(typeof this._prefix === "string")
 -		hash.update(this._prefix);
 -	else
 -		this._prefix.updateHash(hash);
 -};
 +var REPLACE_REGEX = /\n(?=.|\s)/g;
  function cloneAndPrefix(node, prefix, append) {
  	if(typeof node === "string") {
 @@ -72,3 +29,48 @@ function cloneAndPrefix(node, prefix, append) {  		return newNode;
  	}
  };
 +
 +class PrefixSource extends Source {
 +	constructor(prefix, source) {
 +		super();
 +		this._source = source;
 +		this._prefix = prefix;
 +	}
 +
 +	source() {
 +		var node = typeof this._source === "string" ? this._source : this._source.source();
 +		var prefix = this._prefix;
 +		return prefix + node.replace(REPLACE_REGEX, "\n" + prefix);
 +	}
 +
 +	node(options) {
 +		var node = this._source.node(options);
 +		var append = [this._prefix];
 +		return new SourceNode(null, null, null, [
 +			cloneAndPrefix(node, this._prefix, append)
 +		]);
 +	}
 +
 +	listMap(options) {
 +		var prefix = this._prefix;
 +		var map = this._source.listMap(options);
 +		return map.mapGeneratedCode(function(code) {
 +			return prefix + code.replace(REPLACE_REGEX, "\n" + prefix);
 +		});
 +	}
 +
 +	updateHash(hash) {
 +		if(typeof this._source === "string")
 +			hash.update(this._source);
 +		else
 +			this._source.updateHash(hash);
 +		if(typeof this._prefix === "string")
 +			hash.update(this._prefix);
 +		else
 +			this._prefix.updateHash(hash);
 +	}
 +}
 +
 +require("./SourceAndMapMixin")(PrefixSource.prototype);
 +
 +module.exports = PrefixSource;
 diff --git a/node_modules/webpack-sources/lib/RawSource.js b/node_modules/webpack-sources/lib/RawSource.js index 0b9763938..b93ac4ef0 100644 --- a/node_modules/webpack-sources/lib/RawSource.js +++ b/node_modules/webpack-sources/lib/RawSource.js @@ -2,35 +2,37 @@  	MIT License http://www.opensource.org/licenses/mit-license.php
  	Author Tobias Koppers @sokra
  */
 +"use strict";
 +
  var Source = require("./Source");
  var SourceNode = require("source-map").SourceNode;
  var SourceListMap = require("source-list-map").SourceListMap;
 -function RawSource(value) {
 -	Source.call(this);
 -	this._value = value;
 -}
 -module.exports = RawSource;
 +class RawSource extends Source {
 +	constructor(value) {
 +		super();
 +		this._value = value;
 +	}
 -RawSource.prototype = Object.create(Source.prototype);
 -RawSource.prototype.constructor = RawSource;
 +	source() {
 +		return this._value;
 +	}
 -RawSource.prototype.source = function() {
 -	return this._value;
 -};
 +	map(options) {
 +		return null;
 +	}
 -RawSource.prototype.map = function(options) {
 -	return null;
 -};
 +	node(options) {
 +		return new SourceNode(null, null, null, this._value);
 +	}
 -RawSource.prototype.node = function(options) {
 -	return new SourceNode(null, null, null, this._value);
 -};
 +	listMap(options) {
 +		return new SourceListMap(this._value);
 +	}
 -RawSource.prototype.listMap = function(options) {
 -	return new SourceListMap(this._value);
 -};
 +	updateHash(hash) {
 +		hash.update(this._value);
 +	}
 +}
 -RawSource.prototype.updateHash = function(hash) {
 -	hash.update(this._value);
 -};
 +module.exports = RawSource;
 diff --git a/node_modules/webpack-sources/lib/ReplaceSource.js b/node_modules/webpack-sources/lib/ReplaceSource.js index 63087d6de..93cd549d1 100644 --- a/node_modules/webpack-sources/lib/ReplaceSource.js +++ b/node_modules/webpack-sources/lib/ReplaceSource.js @@ -2,191 +2,197 @@  	MIT License http://www.opensource.org/licenses/mit-license.php
  	Author Tobias Koppers @sokra
  */
 +"use strict";
 +
  var Source = require("./Source");
  var SourceNode = require("source-map").SourceNode;
  var SourceListMap = require("source-list-map").SourceListMap;
  var fromStringWithSourceMap = require("source-list-map").fromStringWithSourceMap;
  var SourceMapConsumer = require("source-map").SourceMapConsumer;
 -function ReplaceSource(source, name) {
 -	Source.call(this);
 -	this._source = source;
 -	this._name = name;
 -	this.replacements = [];
 -}
 -module.exports = ReplaceSource;
 -
 -ReplaceSource.prototype = Object.create(Source.prototype);
 -ReplaceSource.prototype.constructor = ReplaceSource;
 +class ReplaceSource extends Source {
 +	constructor(source, name) {
 +		super();
 +		this._source = source;
 +		this._name = name;
 +		this.replacements = [];
 +	}
 -ReplaceSource.prototype.replace = function(start, end, newValue) {
 -	if(typeof newValue !== "string")
 -		throw new Error("insertion must be a string, but is a " + typeof newValue);
 -	this.replacements.push([start, end, newValue, this.replacements.length]);
 -};
 +	replace(start, end, newValue) {
 +		if(typeof newValue !== "string")
 +			throw new Error("insertion must be a string, but is a " + typeof newValue);
 +		this.replacements.push([start, end, newValue, this.replacements.length]);
 +	}
 -ReplaceSource.prototype.insert = function(pos, newValue) {
 -	if(typeof newValue !== "string")
 -		throw new Error("insertion must be a string, but is a " + typeof newValue + ": " + newValue);
 -	this.replacements.push([pos, pos - 1, newValue, this.replacements.length]);
 -};
 +	insert(pos, newValue) {
 +		if(typeof newValue !== "string")
 +			throw new Error("insertion must be a string, but is a " + typeof newValue + ": " + newValue);
 +		this.replacements.push([pos, pos - 1, newValue, this.replacements.length]);
 +	}
 -ReplaceSource.prototype.source = function(options) {
 -	return this._replaceString(this._source.source());
 -};
 +	source(options) {
 +		return this._replaceString(this._source.source());
 +	}
 -ReplaceSource.prototype._sortReplacements = function() {
 -	this.replacements.sort(function(a, b) {
 -		var diff = b[1] - a[1];
 -		if(diff !== 0)
 -			return diff;
 -		diff = b[0] - a[0];
 -		if(diff !== 0)
 -			return diff;
 -		return b[3] - a[3];
 -	});
 -};
 +	original() {
 +		return this._source;
 +	}
 -ReplaceSource.prototype._replaceString = function(str) {
 -	if(typeof str !== "string")
 -		throw new Error("str must be a string, but is a " + typeof str + ": " + str);
 -	this._sortReplacements();
 -	var result = [str];
 -	this.replacements.forEach(function(repl) {
 -		var remSource = result.pop();
 -		var splitted1 = this._splitString(remSource, Math.floor(repl[1] + 1));
 -		var splitted2 = this._splitString(splitted1[0], Math.floor(repl[0]));
 -		result.push(splitted1[1], repl[2], splitted2[0]);
 -	}, this);
 -	result = result.reverse();
 -	return result.join("");
 -};
 +	_sortReplacements() {
 +		this.replacements.sort(function(a, b) {
 +			var diff = b[1] - a[1];
 +			if(diff !== 0)
 +				return diff;
 +			diff = b[0] - a[0];
 +			if(diff !== 0)
 +				return diff;
 +			return b[3] - a[3];
 +		});
 +	}
 -require("./SourceAndMapMixin")(ReplaceSource.prototype);
 +	_replaceString(str) {
 +		if(typeof str !== "string")
 +			throw new Error("str must be a string, but is a " + typeof str + ": " + str);
 +		this._sortReplacements();
 +		var result = [str];
 +		this.replacements.forEach(function(repl) {
 +			var remSource = result.pop();
 +			var splitted1 = this._splitString(remSource, Math.floor(repl[1] + 1));
 +			var splitted2 = this._splitString(splitted1[0], Math.floor(repl[0]));
 +			result.push(splitted1[1], repl[2], splitted2[0]);
 +		}, this);
 +		result = result.reverse();
 +		return result.join("");
 +	}
 -ReplaceSource.prototype.node = function(options) {
 -	this._sortReplacements();
 -	var result = [this._source.node(options)];
 -	this.replacements.forEach(function(repl) {
 -		var remSource = result.pop();
 -		var splitted1 = this._splitSourceNode(remSource, Math.floor(repl[1] + 1));
 -		var splitted2;
 -		if(Array.isArray(splitted1)) {
 -			splitted2 = this._splitSourceNode(splitted1[0], Math.floor(repl[0]));
 -			if(Array.isArray(splitted2)) {
 -				result.push(splitted1[1], this._replacementToSourceNode(splitted2[1], repl[2]), splitted2[0]);
 +	node(options) {
 +		this._sortReplacements();
 +		var result = [this._source.node(options)];
 +		this.replacements.forEach(function(repl) {
 +			var remSource = result.pop();
 +			var splitted1 = this._splitSourceNode(remSource, Math.floor(repl[1] + 1));
 +			var splitted2;
 +			if(Array.isArray(splitted1)) {
 +				splitted2 = this._splitSourceNode(splitted1[0], Math.floor(repl[0]));
 +				if(Array.isArray(splitted2)) {
 +					result.push(splitted1[1], this._replacementToSourceNode(splitted2[1], repl[2]), splitted2[0]);
 +				} else {
 +					result.push(splitted1[1], this._replacementToSourceNode(splitted1[1], repl[2]), splitted1[0]);
 +				}
  			} else {
 -				result.push(splitted1[1], this._replacementToSourceNode(splitted1[1], repl[2]), splitted1[0]);
 +				splitted2 = this._splitSourceNode(remSource, Math.floor(repl[0]));
 +				if(Array.isArray(splitted2)) {
 +					result.push(this._replacementToSourceNode(splitted2[1], repl[2]), splitted2[0]);
 +				} else {
 +					result.push(repl[2], remSource);
 +				}
  			}
 -		} else {
 -			splitted2 = this._splitSourceNode(remSource, Math.floor(repl[0]));
 -			if(Array.isArray(splitted2)) {
 -				result.push(this._replacementToSourceNode(splitted2[1], repl[2]), splitted2[0]);
 +		}, this);
 +		result = result.reverse();
 +		return new SourceNode(null, null, null, result);
 +	}
 +
 +	listMap(options) {
 +		this._sortReplacements();
 +		var map = this._source.listMap(options);
 +		var currentIndex = 0;
 +		var replacements = this.replacements;
 +		var idxReplacement = replacements.length - 1;
 +		var removeChars = 0;
 +		map = map.mapGeneratedCode(function(str) {
 +			var newCurrentIndex = currentIndex + str.length;
 +			if(removeChars > str.length) {
 +				removeChars -= str.length;
 +				str = "";
  			} else {
 -				result.push(repl[2], remSource);
 +				if(removeChars > 0) {
 +					str = str.substr(removeChars);
 +					currentIndex += removeChars;
 +					removeChars = 0;
 +				}
 +				var finalStr = "";
 +				while(idxReplacement >= 0 && replacements[idxReplacement][0] < newCurrentIndex) {
 +					var repl = replacements[idxReplacement];
 +					var start = Math.floor(repl[0]);
 +					var end = Math.floor(repl[1] + 1);
 +					var before = str.substr(0, Math.max(0, start - currentIndex));
 +					if(end <= newCurrentIndex) {
 +						var after = str.substr(Math.max(0, end - currentIndex));
 +						finalStr += before + repl[2];
 +						str = after;
 +						currentIndex = Math.max(currentIndex, end);
 +					} else {
 +						finalStr += before + repl[2];
 +						str = "";
 +						removeChars = end - newCurrentIndex;
 +					}
 +					idxReplacement--;
 +				}
 +				str = finalStr + str;
  			}
 +			currentIndex = newCurrentIndex;
 +			return str;
 +		});
 +		var extraCode = "";
 +		while(idxReplacement >= 0) {
 +			extraCode += replacements[idxReplacement][2];
 +			idxReplacement--;
  		}
 -	}, this);
 -	result = result.reverse();
 -	return new SourceNode(null, null, null, result);
 -};
 +		if(extraCode) {
 +			map.add(extraCode);
 +		}
 +		return map;
 +	}
 -ReplaceSource.prototype.listMap = function(options) {
 -	this._sortReplacements();
 -	var map = this._source.listMap(options);
 -	var currentIndex = 0;
 -	var replacements = this.replacements;
 -	var idxReplacement = replacements.length - 1;
 -	var removeChars = 0;
 -	map = map.mapGeneratedCode(function(str) {
 -		var newCurrentIndex = currentIndex + str.length;
 -		if(removeChars > str.length) {
 -			removeChars -= str.length;
 -			str = "";
 +	_replacementToSourceNode(oldNode, newString) {
 +		var map = oldNode.toStringWithSourceMap({
 +			file: "?"
 +		}).map;
 +		var original = new SourceMapConsumer(map.toJSON()).originalPositionFor({
 +			line: 1,
 +			column: 0
 +		});
 +		if(original) {
 +			return new SourceNode(original.line, original.column, original.source, newString);
  		} else {
 -			if(removeChars > 0) {
 -				str = str.substr(removeChars);
 -				currentIndex += removeChars;
 -				removeChars = 0;
 -			}
 -			var finalStr = "";
 -			while(idxReplacement >= 0 && replacements[idxReplacement][0] < newCurrentIndex) {
 -				var repl = replacements[idxReplacement];
 -				var start = Math.floor(repl[0]);
 -				var end = Math.floor(repl[1] + 1);
 -				var before = str.substr(0, Math.max(0, start - currentIndex));
 -				if(end <= newCurrentIndex) {
 -					var after = str.substr(Math.max(0, end - currentIndex));
 -					finalStr += before + repl[2];
 -					str = after;
 -					currentIndex = Math.max(currentIndex, end);
 -				} else {
 -					finalStr += before + repl[2];
 -					str = "";
 -					removeChars = end - newCurrentIndex;
 +			return newString;
 +		}
 +	}
 +
 +	_splitSourceNode(node, position) {
 +		if(typeof node === "string") {
 +			if(node.length <= position) return position - node.length;
 +			return position <= 0 ? ["", node] : [node.substr(0, position), node.substr(position)];
 +		} else {
 +			for(var i = 0; i < node.children.length; i++) {
 +				position = this._splitSourceNode(node.children[i], position);
 +				if(Array.isArray(position)) {
 +					var leftNode = new SourceNode(
 +						node.line,
 +						node.column,
 +						node.source,
 +						node.children.slice(0, i).concat([position[0]]),
 +						node.name
 +					);
 +					var rightNode = new SourceNode(
 +						node.line,
 +						node.column,
 +						node.source, [position[1]].concat(node.children.slice(i + 1)),
 +						node.name
 +					);
 +					leftNode.sourceContents = node.sourceContents;
 +					return [leftNode, rightNode];
  				}
 -				idxReplacement--;
  			}
 -			str = finalStr + str;
 +			return position;
  		}
 -		currentIndex = newCurrentIndex;
 -		return str;
 -	});
 -	var extraCode = "";
 -	while(idxReplacement >= 0) {
 -		extraCode += replacements[idxReplacement][2];
 -		idxReplacement--;
 -	}
 -	if(extraCode) {
 -		map.add(extraCode);
  	}
 -	return map;
 -};
 -ReplaceSource.prototype._replacementToSourceNode = function(oldNode, newString) {
 -	var map = oldNode.toStringWithSourceMap({
 -		file: "?"
 -	}).map;
 -	var original = new SourceMapConsumer(map.toJSON()).originalPositionFor({
 -		line: 1,
 -		column: 0
 -	});
 -	if(original) {
 -		return new SourceNode(original.line, original.column, original.source, newString);
 -	} else {
 -		return newString;
 +	_splitString(str, position) {
 +		return position <= 0 ? ["", str] : [str.substr(0, position), str.substr(position)];
  	}
 -};
 +}
 -ReplaceSource.prototype._splitSourceNode = function(node, position) {
 -	if(typeof node === "string") {
 -		if(node.length <= position) return position - node.length;
 -		return position <= 0 ? ["", node] : [node.substr(0, position), node.substr(position)];
 -	} else {
 -		for(var i = 0; i < node.children.length; i++) {
 -			position = this._splitSourceNode(node.children[i], position);
 -			if(Array.isArray(position)) {
 -				var leftNode = new SourceNode(
 -					node.line,
 -					node.column,
 -					node.source,
 -					node.children.slice(0, i).concat([position[0]]),
 -					node.name
 -				);
 -				var rightNode = new SourceNode(
 -					node.line,
 -					node.column,
 -					node.source, [position[1]].concat(node.children.slice(i + 1)),
 -					node.name
 -				);
 -				leftNode.sourceContents = node.sourceContents;
 -				return [leftNode, rightNode];
 -			}
 -		}
 -		return position;
 -	}
 -};
 +require("./SourceAndMapMixin")(ReplaceSource.prototype);
 -ReplaceSource.prototype._splitString = function(str, position) {
 -	return position <= 0 ? ["", str] : [str.substr(0, position), str.substr(position)];
 -};
 +module.exports = ReplaceSource;
 diff --git a/node_modules/webpack-sources/lib/Source.js b/node_modules/webpack-sources/lib/Source.js index 1c729fcf1..c8300f44e 100644 --- a/node_modules/webpack-sources/lib/Source.js +++ b/node_modules/webpack-sources/lib/Source.js @@ -2,35 +2,44 @@  	MIT License http://www.opensource.org/licenses/mit-license.php
  	Author Tobias Koppers @sokra
  */
 +"use strict";
 +
  var SourceNode = require("source-map").SourceNode;
  var SourceMapConsumer = require("source-map").SourceMapConsumer;
 -function Source() {}
 +class Source {
 -module.exports = Source;
 +	source() {
 +		throw new Error("Abstract");
 +	}
 -Source.prototype.source = null;
 +	size() {
 +		return this.source().length;
 +	}
 -Source.prototype.size = function() {
 -	return this.source().length;
 -};
 +	map(options) {
 +		return null;
 +	}
 -Source.prototype.map = function(options) {
 -	return null;
 -};
 +	sourceAndMap(options) {
 +		return {
 +			source: this.source(),
 +			map: this.map()
 +		};
 +	}
 -Source.prototype.sourceAndMap = function(options) {
 -	return {
 -		source: this.source(),
 -		map: this.map()
 -	};
 -};
 +	node() {
 +		throw new Error("Abstract");
 +	}
 -Source.prototype.node = null;
 +	listNode() {
 +		throw new Error("Abstract");
 +	}
 -Source.prototype.listNode = null;
 +	updateHash(hash) {
 +		var source = this.source();
 +		hash.update(source || "");
 +	}
 +}
 -Source.prototype.updateHash = function(hash) {
 -	var source = this.source();
 -	hash.update(source || "");
 -};
 +module.exports = Source;
 diff --git a/node_modules/webpack-sources/lib/SourceAndMapMixin.js b/node_modules/webpack-sources/lib/SourceAndMapMixin.js index e677c6235..57dec9dfa 100644 --- a/node_modules/webpack-sources/lib/SourceAndMapMixin.js +++ b/node_modules/webpack-sources/lib/SourceAndMapMixin.js @@ -2,6 +2,8 @@  	MIT License http://www.opensource.org/licenses/mit-license.php
  	Author Tobias Koppers @sokra
  */
 +"use strict";
 +
  module.exports = function mixinSourceAndMap(proto) {
  	proto.map = function(options) {
  		options = options || {};
 diff --git a/node_modules/webpack-sources/lib/SourceMapSource.js b/node_modules/webpack-sources/lib/SourceMapSource.js index 3a7e75a47..274b2087a 100644 --- a/node_modules/webpack-sources/lib/SourceMapSource.js +++ b/node_modules/webpack-sources/lib/SourceMapSource.js @@ -2,6 +2,8 @@  	MIT License http://www.opensource.org/licenses/mit-license.php
  	Author Tobias Koppers @sokra
  */
 +"use strict";
 +
  var SourceNode = require("source-map").SourceNode;
  var SourceMapConsumer = require("source-map").SourceMapConsumer;
  var SourceMapGenerator = require("source-map").SourceMapGenerator;
 @@ -9,47 +11,48 @@ var SourceListMap = require("source-list-map").SourceListMap;  var fromStringWithSourceMap = require("source-list-map").fromStringWithSourceMap;
  var Source = require("./Source");
 -function SourceMapSource(value, name, sourceMap, originalSource, innerSourceMap) {
 -	Source.call(this);
 -	this._value = value;
 -	this._name = name;
 -	this._sourceMap = sourceMap;
 -	this._originalSource = originalSource;
 -	this._innerSourceMap = innerSourceMap;
 -}
 -module.exports = SourceMapSource;
 +class SourceMapSource extends Source {
 +	constructor(value, name, sourceMap, originalSource, innerSourceMap) {
 +		super();
 +		this._value = value;
 +		this._name = name;
 +		this._sourceMap = sourceMap;
 +		this._originalSource = originalSource;
 +		this._innerSourceMap = innerSourceMap;
 +	}
 -SourceMapSource.prototype = Object.create(Source.prototype);
 -SourceMapSource.prototype.constructor = SourceMapSource;
 +	source() {
 +		return this._value;
 +	}
 -SourceMapSource.prototype.source = function() {
 -	return this._value;
 -};
 +	node(options) {
 +		var innerSourceMap = this._innerSourceMap;
 +		var sourceMap = this._sourceMap;
 +		if(innerSourceMap) {
 +			sourceMap = SourceMapGenerator.fromSourceMap(new SourceMapConsumer(sourceMap));
 +			if(this._originalSource)
 +				sourceMap.setSourceContent(this._name, this._originalSource);
 +			innerSourceMap = new SourceMapConsumer(innerSourceMap);
 +			sourceMap.applySourceMap(innerSourceMap, this._name);
 +			sourceMap = sourceMap.toJSON();
 +		}
 +		return SourceNode.fromStringWithSourceMap(this._value, new SourceMapConsumer(sourceMap));
 +	}
 -require("./SourceAndMapMixin")(SourceMapSource.prototype);
 +	listMap(options) {
 +		options = options || {};
 +		if(options.module === false)
 +			return new SourceListMap(this._value, this._name, this._value);
 +		return fromStringWithSourceMap(this._value, typeof this._sourceMap === "string" ? JSON.parse(this._sourceMap) : this._sourceMap);
 +	}
 -SourceMapSource.prototype.node = function(options) {
 -	var innerSourceMap = this._innerSourceMap;
 -	var sourceMap = this._sourceMap;
 -	if(innerSourceMap) {
 -		sourceMap = SourceMapGenerator.fromSourceMap(new SourceMapConsumer(sourceMap));
 +	updateHash(hash) {
 +		hash.update(this._value);
  		if(this._originalSource)
 -			sourceMap.setSourceContent(this._name, this._originalSource);
 -		innerSourceMap = new SourceMapConsumer(innerSourceMap);
 -		sourceMap.applySourceMap(innerSourceMap, this._name);
 -		sourceMap = sourceMap.toJSON();
 +			hash.update(this._originalSource);
  	}
 -	return SourceNode.fromStringWithSourceMap(this._value, new SourceMapConsumer(sourceMap));
 -};
 -
 -SourceMapSource.prototype.listMap = function(options) {
 -	if(options.module === false)
 -		return new SourceListMap(this._value, this._name, this._value);
 -	return fromStringWithSourceMap(this._value, typeof this._sourceMap === "string" ? JSON.parse(this._sourceMap) : this._sourceMap);
 -};
 -
 -SourceMapSource.prototype.updateHash = function(hash) {
 -	hash.update(this._value);
 -	if(this._originalSource)
 -		hash.update(this._originalSource);
 -};
 +}
 +
 +require("./SourceAndMapMixin")(SourceMapSource.prototype);
 +
 +module.exports = SourceMapSource;
  | 
