code: function purgeDeps(opts, diff, meta) {
      if (!diff) {
          return;
      }
  
      var depsKey = 'dependencies' in diff ?
          'dependencies' : 'dependencies__deleted' in diff ?
          'dependencies__deleted' : 'dependencies__added' in diff ?
          'dependencies__added' : null;
      if (!depsKey) {
          return diff;
      }
  
      var deps = diff[depsKey];
  
      diff[depsKey] = Object.keys(deps).reduce(function (acc, key) {
          var deleted = meta.deleted ? meta.deleted :
              (key.indexOf('__deleted') !== -1 ||
              depsKey === 'dependencies__deleted');
          var added = meta.added ? meta.added :
              (key.indexOf('__added') !== -1 ||
              depsKey === 'dependencies__added');
          if (deleted || added) {
              if (meta.depth >= opts.depth) {
                  if (!opts.short) {
                      deps[key].dependencies = '[NestedObject]';
                      acc[key] = deps[key];
                  } else {
                      acc[key] = (deleted ? '[Deleted' : '[Added') +
                          '@' + deps[key].version + ']';
                  }
              } else {
                  acc[key] = purgeDeps(opts, deps[key], {
                      depth: meta.depth + 1,
                      added: added,
                      deleted: deleted
                  });
              }
          } else {
              acc[key] = purgeDeps(opts, deps[key], {
                  depth: meta.depth + 1
              });
          }
  
          return acc;
      }, {});
  
      return diff;
  }
docs: /*jshint camelcase: false