text: /*!
   * time-stamp <https://github.com/jonschlinkert/time-stamp>
   *
   * Copyright (c) 2015-2017, Jon Schlinkert.
   * Released under the MIT License.
   */
  
  'use strict';
  
  /**
   * Parse the given pattern and return a formatted
   * timestamp.
   *
   * @param  {String} `pattern` Date pattern.
   * @param  {Date} `date` Date object.
   * @return {String}
   */
  
  module.exports = function(pattern, date) {
    if (typeof pattern !== 'string') {
      date = pattern;
      pattern = 'YYYY-MM-DD';
    }
  
    if (!date) date = new Date();
  
    function timestamp() {
      var regex = /(?=(YYYY|YY|MM|DD|HH|mm|ss|ms))\1([:\/]*)/;
      var match = regex.exec(pattern);
  
      if (match) {
        var increment = method(match[1]);
        var val = '00' + String(date[increment[0]]() + (increment[2] || 0));
        var res = val.slice(-increment[1]) + (match[2] || '');
        pattern = pattern.replace(match[0], res);
        timestamp();
      }
    }
  
    timestamp(pattern);
    return pattern;
  };
  
  function method(key) {
    return ({
      YYYY: ['getFullYear', 4],
      YY: ['getFullYear', 2],
      // getMonth is zero-based, thus the extra increment field
      MM: ['getMonth', 2, 1],
      DD: ['getDate', 2],
      HH: ['getHours', 2],
      mm: ['getMinutes', 2],
      ss: ['getSeconds', 2],
      ms: ['getMilliseconds', 3]
    })[key];
  }
  