| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | var escapePrefix = '__ESCAPED_';function trackPrefix(value, context, interestingContent) {  if (!interestingContent && value.indexOf('\n') == -1) {    if (value.indexOf(escapePrefix) === 0) {      return value;    } else {      context.column += value.length;      return;    }  }  var withoutContent = 0;  var split = value.split('\n');  var total = split.length;  var shift = 0;  while (true) {    if (withoutContent == total - 1)      break;    var part = split[withoutContent];    if (/\S/.test(part))      break;    shift += part.length + 1;    withoutContent++;  }  context.line += withoutContent;  context.column = withoutContent > 0 ? 0 : context.column;  context.column += /^(\s)*/.exec(split[withoutContent])[0].length;  return value.substring(shift).trimLeft();}function sourceFor(originalMetadata, contextMetadata, context) {  var source = originalMetadata.source || contextMetadata.source;  if (source && context.resolvePath)    return context.resolvePath(contextMetadata.source, source);  return source;}function snapshot(data, context, fallbacks) {  var metadata = {    line: context.line,    column: context.column,    source: context.source  };  var sourceContent = null;  var sourceMetadata = context.sourceMapTracker.isTracking(metadata.source) ?    context.sourceMapTracker.originalPositionFor(metadata, data, fallbacks || 0) :    {};  metadata.line = sourceMetadata.line || metadata.line;  metadata.column = sourceMetadata.column || metadata.column;  metadata.source = sourceMetadata.sourceResolved ?    sourceMetadata.source :    sourceFor(sourceMetadata, metadata, context);  if (context.sourceMapInlineSources) {    var sourceMapSourcesContent = context.sourceMapTracker.sourcesContentFor(context.source);    sourceContent = sourceMapSourcesContent && sourceMapSourcesContent[metadata.source] ?      sourceMapSourcesContent :      context.sourceReader.sourceAt(context.source);  }  return sourceContent ?    [metadata.line, metadata.column, metadata.source, sourceContent] :    [metadata.line, metadata.column, metadata.source];}function trackSuffix(data, context) {  var parts = data.split('\n');  for (var i = 0, l = parts.length; i < l; i++) {    var part = parts[i];    var cursor = 0;    if (i > 0) {      context.line++;      context.column = 0;    }    while (true) {      var next = part.indexOf(escapePrefix, cursor);      if (next == -1) {        context.column += part.substring(cursor).length;        break;      }      context.column += next - cursor;      cursor += next - cursor;      var escaped = part.substring(next, part.indexOf('__', next + 1) + 2);      var encodedValues = escaped.substring(escaped.indexOf('(') + 1, escaped.indexOf(')')).split(',');      context.line += ~~encodedValues[0];      context.column = (~~encodedValues[0] === 0 ? context.column : 0) + ~~encodedValues[1];      cursor += escaped.length;    }  }}function track(data, context, snapshotMetadata, fallbacks) {  var untracked = trackPrefix(data, context, snapshotMetadata);  var metadata = snapshotMetadata ?    snapshot(untracked, context, fallbacks) :    [];  if (untracked)    trackSuffix(untracked, context);  return metadata;}module.exports = track;
 |