hunk.code_window: function matches (
     searched: SearchedPackage[],
     pkg: {name: string, version: string}
   ) {
     return searched.some(searchedPkg => searchedPkg.name === pkg.name && semver.satisfies(pkg.version, searchedPkg.range))
   }
hunk.labels: keep keep keep keep keep replace keep
hunk.after_edit:   return searched.some(searchedPkg => {
       if (typeof searchedPkg === 'string') {
         return pkg.name === searchedPkg
       }
       return searchedPkg.name === pkg.name &&
         semver.satisfies(pkg.version, searchedPkg.range)
     })
  
hunk.file_path: src/index.ts
hunk.type: replace
file: "use strict";
  
  var uniq                = require("../array/#/uniq")
    , value               = require("./valid-value")
    , push                = Array.prototype.push
    , getOwnPropertyNames = Object.getOwnPropertyNames
    , getPrototypeOf      = Object.getPrototypeOf;
  
  module.exports = function (obj) {
  	var keys;
  	obj = Object(value(obj));
  	keys = getOwnPropertyNames(obj);
  	while ((obj = getPrototypeOf(obj))) {
  		push.apply(keys, getOwnPropertyNames(obj));
  	}
  	return uniq.call(keys);
  };
  