function mapValuesDeep(obj, cb) {
  if (Array.isArray(obj)) {
    return obj.map(v => mapValuesDeep(v, cb))
  }
  if (common.isPlainObject(obj)) {
    return mapValues(obj, v => mapValuesDeep(v, cb))
  }
  return cb(obj)
}
Based on lodash issue discussion
https://github.com/lodash/lodash/issues/1244