{"remainingRequest":"/data/node_modules/babel-loader/lib/index.js!/data/node_modules/cli-table2/src/utils.js","dependencies":[{"path":"/data/node_modules/cli-table2/src/utils.js","mtime":1553611387012},{"path":"/data/.babelrc","mtime":1553611371556},{"path":"/data/node_modules/cache-loader/dist/cjs.js","mtime":1553611387012},{"path":"/data/node_modules/babel-loader/lib/index.js","mtime":1553611386992}],"contextDependencies":[],"result":["'use strict';\n\nvar _ = require('lodash');\nvar stringWidth = require('string-width');\n\nfunction codeRegex(capture) {\n  return capture ? /\\u001b\\[((?:\\d*;){0,5}\\d*)m/g : /\\u001b\\[(?:\\d*;){0,5}\\d*m/g;\n}\n\nfunction strlen(str) {\n  var code = codeRegex();\n  var stripped = (\"\" + str).replace(code, '');\n  var split = stripped.split(\"\\n\");\n  return split.reduce(function (memo, s) {\n    return stringWidth(s) > memo ? stringWidth(s) : memo;\n  }, 0);\n}\n\nfunction repeat(str, times) {\n  return Array(times + 1).join(str);\n}\n\nfunction pad(str, len, pad, dir) {\n  var length = strlen(str);\n  if (len + 1 >= length) {\n    var padlen = len - length;\n    switch (dir) {\n      case 'right':\n        str = repeat(pad, padlen) + str;\n        break;\n\n      case 'center':\n        var right = Math.ceil(padlen / 2);\n        var left = padlen - right;\n        str = repeat(pad, left) + str + repeat(pad, right);\n        break;\n\n      default:\n        str = str + repeat(pad, padlen);\n        break;\n    }\n  }\n  return str;\n}\n\nvar codeCache = {};\n\nfunction addToCodeCache(name, on, off) {\n  on = '\\x1B[' + on + 'm';\n  off = '\\x1B[' + off + 'm';\n  codeCache[on] = { set: name, to: true };\n  codeCache[off] = { set: name, to: false };\n  codeCache[name] = { on: on, off: off };\n}\n\n//https://github.com/Marak/colors.js/blob/master/lib/styles.js\naddToCodeCache('bold', 1, 22);\naddToCodeCache('italics', 3, 23);\naddToCodeCache('underline', 4, 24);\naddToCodeCache('inverse', 7, 27);\naddToCodeCache('strikethrough', 9, 29);\n\nfunction updateState(state, controlChars) {\n  var controlCode = controlChars[1] ? parseInt(controlChars[1].split(';')[0]) : 0;\n  if (controlCode >= 30 && controlCode <= 39 || controlCode >= 90 && controlCode <= 97) {\n    state.lastForegroundAdded = controlChars[0];\n    return;\n  }\n  if (controlCode >= 40 && controlCode <= 49 || controlCode >= 100 && controlCode <= 107) {\n    state.lastBackgroundAdded = controlChars[0];\n    return;\n  }\n  if (controlCode === 0) {\n    for (var i in state) {\n      /* istanbul ignore else */\n      if (state.hasOwnProperty(i)) {\n        delete state[i];\n      }\n    }\n    return;\n  }\n  var info = codeCache[controlChars[0]];\n  if (info) {\n    state[info.set] = info.to;\n  }\n}\n\nfunction readState(line) {\n  var code = codeRegex(true);\n  var controlChars = code.exec(line);\n  var state = {};\n  while (controlChars !== null) {\n    updateState(state, controlChars);\n    controlChars = code.exec(line);\n  }\n  return state;\n}\n\nfunction unwindState(state, ret) {\n  var lastBackgroundAdded = state.lastBackgroundAdded;\n  var lastForegroundAdded = state.lastForegroundAdded;\n\n  delete state.lastBackgroundAdded;\n  delete state.lastForegroundAdded;\n\n  _.forEach(state, function (value, key) {\n    if (value) {\n      ret += codeCache[key].off;\n    }\n  });\n\n  if (lastBackgroundAdded && lastBackgroundAdded != '\\x1B[49m') {\n    ret += '\\x1B[49m';\n  }\n  if (lastForegroundAdded && lastForegroundAdded != '\\x1B[39m') {\n    ret += '\\x1B[39m';\n  }\n\n  return ret;\n}\n\nfunction rewindState(state, ret) {\n  var lastBackgroundAdded = state.lastBackgroundAdded;\n  var lastForegroundAdded = state.lastForegroundAdded;\n\n  delete state.lastBackgroundAdded;\n  delete state.lastForegroundAdded;\n\n  _.forEach(state, function (value, key) {\n    if (value) {\n      ret = codeCache[key].on + ret;\n    }\n  });\n\n  if (lastBackgroundAdded && lastBackgroundAdded != '\\x1B[49m') {\n    ret = lastBackgroundAdded + ret;\n  }\n  if (lastForegroundAdded && lastForegroundAdded != '\\x1B[39m') {\n    ret = lastForegroundAdded + ret;\n  }\n\n  return ret;\n}\n\nfunction truncateWidth(str, desiredLength) {\n  if (str.length === strlen(str)) {\n    return str.substr(0, desiredLength);\n  }\n\n  while (strlen(str) > desiredLength) {\n    str = str.slice(0, -1);\n  }\n\n  return str;\n}\n\nfunction truncateWidthWithAnsi(str, desiredLength) {\n  var code = codeRegex(true);\n  var split = str.split(codeRegex());\n  var splitIndex = 0;\n  var retLen = 0;\n  var ret = '';\n  var myArray;\n  var state = {};\n\n  while (retLen < desiredLength) {\n    myArray = code.exec(str);\n    var toAdd = split[splitIndex];\n    splitIndex++;\n    if (retLen + strlen(toAdd) > desiredLength) {\n      toAdd = truncateWidth(toAdd, desiredLength - retLen);\n    }\n    ret += toAdd;\n    retLen += strlen(toAdd);\n\n    if (retLen < desiredLength) {\n      if (!myArray) {\n        break;\n      } // full-width chars may cause a whitespace which cannot be filled\n      ret += myArray[0];\n      updateState(state, myArray);\n    }\n  }\n\n  return unwindState(state, ret);\n}\n\nfunction truncate(str, desiredLength, truncateChar) {\n  truncateChar = truncateChar || '…';\n  var lengthOfStr = strlen(str);\n  if (lengthOfStr <= desiredLength) {\n    return str;\n  }\n  desiredLength -= strlen(truncateChar);\n\n  ret = truncateWidthWithAnsi(str, desiredLength);\n\n  return ret + truncateChar;\n}\n\nfunction defaultOptions() {\n  return {\n    chars: {\n      'top': '─',\n      'top-mid': '┬',\n      'top-left': '┌',\n      'top-right': '┐',\n      'bottom': '─',\n      'bottom-mid': '┴',\n      'bottom-left': '└',\n      'bottom-right': '┘',\n      'left': '│',\n      'left-mid': '├',\n      'mid': '─',\n      'mid-mid': '┼',\n      'right': '│',\n      'right-mid': '┤',\n      'middle': '│'\n    },\n    truncate: '…',\n    colWidths: [],\n    rowHeights: [],\n    colAligns: [],\n    rowAligns: [],\n    style: {\n      'padding-left': 1,\n      'padding-right': 1,\n      head: ['red'],\n      border: ['grey'],\n      compact: false\n    },\n    head: []\n  };\n}\n\nfunction mergeOptions(options, defaults) {\n  options = options || {};\n  defaults = defaults || defaultOptions();\n  var ret = _.extend({}, defaults, options);\n  ret.chars = _.extend({}, defaults.chars, options.chars);\n  ret.style = _.extend({}, defaults.style, options.style);\n  return ret;\n}\n\nfunction wordWrap(maxLength, input) {\n  var lines = [];\n  var split = input.split(/(\\s+)/g);\n  var line = [];\n  var lineLength = 0;\n  var whitespace;\n  for (var i = 0; i < split.length; i += 2) {\n    var word = split[i];\n    var newLength = lineLength + strlen(word);\n    if (lineLength > 0 && whitespace) {\n      newLength += whitespace.length;\n    }\n    if (newLength > maxLength) {\n      if (lineLength !== 0) {\n        lines.push(line.join(''));\n      }\n      line = [word];\n      lineLength = strlen(word);\n    } else {\n      line.push(whitespace || '', word);\n      lineLength = newLength;\n    }\n    whitespace = split[i + 1];\n  }\n  if (lineLength) {\n    lines.push(line.join(''));\n  }\n  return lines;\n}\n\nfunction multiLineWordWrap(maxLength, input) {\n  var output = [];\n  input = input.split('\\n');\n  for (var i = 0; i < input.length; i++) {\n    output.push.apply(output, wordWrap(maxLength, input[i]));\n  }\n  return output;\n}\n\nfunction colorizeLines(input) {\n  var state = {};\n  var output = [];\n  for (var i = 0; i < input.length; i++) {\n    var line = rewindState(state, input[i]);\n    state = readState(line);\n    var temp = _.extend({}, state);\n    output.push(unwindState(temp, line));\n  }\n  return output;\n}\n\nmodule.exports = {\n  strlen: strlen,\n  repeat: repeat,\n  pad: pad,\n  truncate: truncate,\n  mergeOptions: mergeOptions,\n  wordWrap: multiLineWordWrap,\n  colorizeLines: colorizeLines\n};",{"version":3,"sources":["node_modules/cli-table2/src/utils.js"],"names":["_","require","stringWidth","codeRegex","capture","strlen","str","code","stripped","replace","split","reduce","memo","s","repeat","times","Array","join","pad","len","dir","length","padlen","right","Math","ceil","left","codeCache","addToCodeCache","name","on","off","set","to","updateState","state","controlChars","controlCode","parseInt","lastForegroundAdded","lastBackgroundAdded","i","hasOwnProperty","info","readState","line","exec","unwindState","ret","forEach","value","key","rewindState","truncateWidth","desiredLength","substr","slice","truncateWidthWithAnsi","splitIndex","retLen","myArray","toAdd","truncate","truncateChar","lengthOfStr","defaultOptions","chars","colWidths","rowHeights","colAligns","rowAligns","style","head","border","compact","mergeOptions","options","defaults","extend","wordWrap","maxLength","input","lines","lineLength","whitespace","word","newLength","push","multiLineWordWrap","output","apply","colorizeLines","temp","module","exports"],"mappings":"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","file":"utils.js","sourceRoot":"/data","sourcesContent":["var _ = require('lodash');\nvar stringWidth = require('string-width');\n\nfunction codeRegex(capture){\n  return capture ? /\\u001b\\[((?:\\d*;){0,5}\\d*)m/g : /\\u001b\\[(?:\\d*;){0,5}\\d*m/g\n}\n\nfunction strlen(str){\n  var code = codeRegex();\n  var stripped = (\"\" + str).replace(code,'');\n  var split = stripped.split(\"\\n\");\n  return split.reduce(function (memo, s) { return (stringWidth(s) > memo) ? stringWidth(s) : memo }, 0);\n}\n\nfunction repeat(str,times){\n  return Array(times + 1).join(str);\n}\n\nfunction pad(str, len, pad, dir) {\n  var length = strlen(str);\n  if (len + 1 >= length) {\n    var padlen = len - length;\n    switch (dir) {\n      case 'right':\n        str = repeat(pad, padlen) + str;\n        break;\n\n      case 'center':\n        var right = Math.ceil((padlen) / 2);\n        var left = padlen - right;\n        str = repeat(pad, left) + str + repeat(pad, right);\n        break;\n\n      default :\n        str = str + repeat(pad,padlen);\n        break;\n    }\n  }\n  return str;\n}\n\nvar codeCache = {};\n\nfunction addToCodeCache(name,on,off){\n  on = '\\u001b[' + on + 'm';\n  off = '\\u001b[' + off + 'm';\n  codeCache[on] = {set:name,to:true};\n  codeCache[off] = {set:name,to:false};\n  codeCache[name] = {on:on,off:off};\n}\n\n//https://github.com/Marak/colors.js/blob/master/lib/styles.js\naddToCodeCache('bold', 1, 22);\naddToCodeCache('italics', 3, 23);\naddToCodeCache('underline', 4, 24);\naddToCodeCache('inverse', 7, 27);\naddToCodeCache('strikethrough', 9, 29);\n\n\nfunction updateState(state, controlChars){\n  var controlCode = controlChars[1] ? parseInt(controlChars[1].split(';')[0]) : 0;\n  if ( (controlCode >= 30 && controlCode <= 39)\n     || (controlCode >= 90 && controlCode <= 97)\n  ) {\n    state.lastForegroundAdded = controlChars[0];\n    return;\n  }\n  if ( (controlCode >= 40 && controlCode <= 49)\n     || (controlCode >= 100 && controlCode <= 107)\n  ) {\n    state.lastBackgroundAdded = controlChars[0];\n    return;\n  }\n  if (controlCode === 0) {\n    for (var i in state) {\n      /* istanbul ignore else */\n      if (state.hasOwnProperty(i)) {\n        delete state[i];\n      }\n    }\n    return;\n  }\n  var info = codeCache[controlChars[0]];\n  if (info) {\n    state[info.set] = info.to;\n  }\n}\n\nfunction readState(line){\n  var code = codeRegex(true);\n  var controlChars = code.exec(line);\n  var state = {};\n  while(controlChars !== null){\n    updateState(state, controlChars);\n    controlChars = code.exec(line);\n  }\n  return state;\n}\n\nfunction unwindState(state,ret){\n  var lastBackgroundAdded = state.lastBackgroundAdded;\n  var lastForegroundAdded = state.lastForegroundAdded;\n\n  delete state.lastBackgroundAdded;\n  delete state.lastForegroundAdded;\n\n  _.forEach(state,function(value,key){\n    if(value){\n      ret += codeCache[key].off;\n    }\n  });\n\n  if(lastBackgroundAdded && (lastBackgroundAdded != '\\u001b[49m')){\n    ret += '\\u001b[49m';\n  }\n  if(lastForegroundAdded && (lastForegroundAdded != '\\u001b[39m')){\n    ret += '\\u001b[39m';\n  }\n\n  return ret;\n}\n\nfunction rewindState(state,ret){\n  var lastBackgroundAdded = state.lastBackgroundAdded;\n  var lastForegroundAdded = state.lastForegroundAdded;\n\n  delete state.lastBackgroundAdded;\n  delete state.lastForegroundAdded;\n\n  _.forEach(state,function(value,key){\n    if(value){\n      ret = codeCache[key].on + ret;\n    }\n  });\n\n  if(lastBackgroundAdded && (lastBackgroundAdded != '\\u001b[49m')){\n    ret = lastBackgroundAdded + ret;\n  }\n  if(lastForegroundAdded && (lastForegroundAdded != '\\u001b[39m')){\n    ret = lastForegroundAdded + ret;\n  }\n\n  return ret;\n}\n\nfunction truncateWidth(str, desiredLength){\n  if (str.length === strlen(str)) {\n    return str.substr(0, desiredLength);\n  }\n\n  while (strlen(str) > desiredLength){\n    str = str.slice(0, -1);\n  }\n\n  return str;\n}\n\nfunction truncateWidthWithAnsi(str, desiredLength){\n  var code = codeRegex(true);\n  var split = str.split(codeRegex());\n  var splitIndex = 0;\n  var retLen = 0;\n  var ret = '';\n  var myArray;\n  var state = {};\n\n  while(retLen < desiredLength){\n    myArray = code.exec(str);\n    var toAdd = split[splitIndex];\n    splitIndex++;\n    if (retLen + strlen(toAdd) > desiredLength){\n      toAdd = truncateWidth(toAdd, desiredLength - retLen);\n    }\n    ret += toAdd;\n    retLen += strlen(toAdd);\n\n    if(retLen < desiredLength){\n      if (!myArray) { break; }  // full-width chars may cause a whitespace which cannot be filled\n      ret += myArray[0];\n      updateState(state,myArray);\n    }\n  }\n\n  return unwindState(state,ret);\n}\n\nfunction truncate(str, desiredLength, truncateChar){\n  truncateChar = truncateChar || '…';\n  var lengthOfStr = strlen(str);\n  if(lengthOfStr <= desiredLength){\n    return str;\n  }\n  desiredLength -= strlen(truncateChar);\n\n  ret = truncateWidthWithAnsi(str, desiredLength);\n\n  return ret + truncateChar;\n}\n\n\nfunction defaultOptions(){\n  return{\n    chars: {\n      'top': '─'\n      , 'top-mid': '┬'\n      , 'top-left': '┌'\n      , 'top-right': '┐'\n      , 'bottom': '─'\n      , 'bottom-mid': '┴'\n      , 'bottom-left': '└'\n      , 'bottom-right': '┘'\n      , 'left': '│'\n      , 'left-mid': '├'\n      , 'mid': '─'\n      , 'mid-mid': '┼'\n      , 'right': '│'\n      , 'right-mid': '┤'\n      , 'middle': '│'\n    }\n    , truncate: '…'\n    , colWidths: []\n    , rowHeights: []\n    , colAligns: []\n    , rowAligns: []\n    , style: {\n      'padding-left': 1\n      , 'padding-right': 1\n      , head: ['red']\n      , border: ['grey']\n      , compact : false\n    }\n    , head: []\n  };\n}\n\nfunction mergeOptions(options,defaults){\n  options = options || {};\n  defaults = defaults || defaultOptions();\n  var ret = _.extend({}, defaults, options);\n  ret.chars = _.extend({}, defaults.chars, options.chars);\n  ret.style = _.extend({}, defaults.style, options.style);\n  return ret;\n}\n\nfunction wordWrap(maxLength,input){\n  var lines = [];\n  var split = input.split(/(\\s+)/g);\n  var line = [];\n  var lineLength = 0;\n  var whitespace;\n  for (var i = 0; i < split.length; i += 2) {\n    var word = split[i];\n    var newLength = lineLength + strlen(word);\n    if (lineLength > 0 && whitespace) {\n      newLength += whitespace.length;\n    }\n    if(newLength > maxLength){\n      if(lineLength !== 0){\n        lines.push(line.join(''));\n      }\n      line = [word];\n      lineLength = strlen(word);\n    } else {\n      line.push(whitespace || '', word);\n      lineLength = newLength;\n    }\n    whitespace = split[i+1];\n  }\n  if(lineLength){\n    lines.push(line.join(''));\n  }\n  return lines;\n}\n\nfunction multiLineWordWrap(maxLength, input){\n  var output = [];\n  input = input.split('\\n');\n  for(var i = 0; i < input.length; i++){\n    output.push.apply(output,wordWrap(maxLength,input[i]));\n  }\n  return output;\n}\n\nfunction colorizeLines(input){\n  var state = {};\n  var output = [];\n  for(var i = 0; i < input.length; i++){\n    var line = rewindState(state,input[i]) ;\n    state = readState(line);\n    var temp = _.extend({},state);\n    output.push(unwindState(temp,line));\n  }\n  return output;\n}\n\nmodule.exports = {\n  strlen:strlen,\n  repeat:repeat,\n  pad:pad,\n  truncate:truncate,\n  mergeOptions:mergeOptions,\n  wordWrap:multiLineWordWrap,\n  colorizeLines:colorizeLines\n};\n"]}]}