npmrepo implementation