| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | /*	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");var SPLIT_REGEX = /(?!$)[^\n\r;{}]*[\n\r;{}]*/g;function _splitCode(code) {	return code.match(SPLIT_REGEX) || [];}class OriginalSource extends Source {	constructor(value, name) {		super();		this._value = value;		this._name = name;	}	source() {		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)) {							pos += item.length;							return item;						}						var res = new SourceNode(idx + 1, pos, name, item);						pos += item.length;						return res;					})				);			})		);		node.setSourceContent(name, value);		return node;	}	listMap(options) {		return new SourceListMap(this._value, this._name, this._value)	}	updateHash(hash) {		hash.update(this._value);	}}require("./SourceAndMapMixin")(OriginalSource.prototype);module.exports = OriginalSource;
 |