index.js
function transformRange(range, ops) {
  var rangeComps = range.split(':')
    , newRange
  var start = rangeComps[0]
  ops.forEach(op => start = transformRangeAnchor(start, op, /*isStart:*/true))
  var end = rangeComps[1]
  ops.forEach(op => end = transformRangeAnchor(end, op, /*isStart:*/false))
  if (start === end) return start
  return start+':'+end
}
function transformRange(range, ops) {
  var rangeComps = range.split(':')
    , newRange
  var start = rangeComps[0]
  ops.forEach(op => start = transformRangeAnchor(start, op, /*isStart:*/true))
  var end = rangeComps[1]
  ops.forEach(op => end = transformRangeAnchor(end, op, /*isStart:*/false))
  if (start === end) return start
  return start+':'+end
}
Transforms a range against an array of ops