| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | var SourceMapConsumer = require('source-map').SourceMapConsumer;function inputSourceMapTracker() {  var maps = {};  return {    all: all.bind(null, maps),    isTracking: isTracking.bind(null, maps),    originalPositionFor: originalPositionFor.bind(null, maps),    track: track.bind(null, maps)  };}function all(maps) {  return maps;}function isTracking(maps, source) {  return source in maps;}function originalPositionFor(maps, metadata, range, selectorFallbacks) {  var line = metadata[0];  var column = metadata[1];  var source = metadata[2];  var position = {    line: line,    column: column + range  };  var originalPosition;  while (!originalPosition && position.column > column) {    position.column--;    originalPosition = maps[source].originalPositionFor(position);  }  if (!originalPosition || originalPosition.column < 0) {    return metadata;  }  if (originalPosition.line === null && line > 1 && selectorFallbacks > 0) {    return originalPositionFor(maps, [line - 1, column, source], range, selectorFallbacks - 1);  }  return originalPosition.line !== null ?    toMetadata(originalPosition) :    metadata;}function toMetadata(asHash) {  return [asHash.line, asHash.column, asHash.source];}function track(maps, source, data) {  maps[source] = new SourceMapConsumer(data);}module.exports = inputSourceMapTracker;
 |