{"_id":"registry-validator","_rev":"126-18dfb365cc6660634a49b70d8c0dfabb","name":"registry-validator","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"registry-validator","version":"0.1.0","keywords":["npm","registry","protocol","test","validate"],"author":{"name":"StrongLoop","email":"callback@strongloop.com"},"license":"MIT","_id":"registry-validator@0.1.0","maintainers":[{"name":"bajtos","email":"miro.bajtos@gmail.com"}],"homepage":"https://github.com/strongloop/registry-validator","bugs":{"url":"https://github.com/strongloop/registry-validator/issues"},"bin":{"registry-validator":"./bin/registry-validator.js"},"dist":{"shasum":"6873e3d7d24d9f5bc388ba2bb2df6b6aaedc27dd","tarball":"https://registry.npmjs.org/registry-validator/-/registry-validator-0.1.0.tgz","integrity":"sha512-3od0WeE+5ObsRREKXyzqKkCyx9G2eRTewugOTmCtEmrl0iWfMMU85JNxw+sqB4li1ttOwl3mOL3zYAFn8bTHuw==","signatures":[{"sig":"MEUCIQCU+2sGgdoR1Rkk3lTxQS5MjNpr0r60K61rW/g/XWf87wIgOjIsYugEVG6Nj7OxHcMH52jKMUcroisuN02ZA3llqgs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha","pretest":"jshint ."},"_npmUser":{"name":"bajtos","email":"miro.bajtos@gmail.com"},"repository":{"url":"git://github.com/strongloop/registry-validator.git","type":"git"},"_npmVersion":"1.4.4","description":"Validate your npm registry implementation, check if it correctly implements the npm protocol.","directories":{"test":"test"},"dependencies":{"npm":"^1.4.4","chai":"^1.9.0","debug":"^0.7.4","mocha":"^1.18.0","promise":"^4.0.0","bluebird":"^1.1.0","fs-extra":"^0.8.1","superagent":"^0.17.0","superagent-promise":"^0.1.0"},"devDependencies":{"jshint":"^2.4.4","couchapp":"^0.10.0","npmjs.org":"^1.2.0"}},"0.2.0":{"name":"registry-validator","version":"0.2.0","keywords":["npm","registry","protocol","test","validate"],"author":{"name":"StrongLoop","email":"callback@strongloop.com"},"license":"MIT","_id":"registry-validator@0.2.0","maintainers":[{"name":"bajtos","email":"miro.bajtos@gmail.com"},{"name":"strongloop","email":"callback@strongloop.com"}],"homepage":"https://github.com/strongloop/registry-validator","bugs":{"url":"https://github.com/strongloop/registry-validator/issues"},"bin":{"registry-validator":"./bin/registry-validator.js"},"dist":{"shasum":"bad43ed62ec0f343879681ce2424613f0388b89c","tarball":"https://registry.npmjs.org/registry-validator/-/registry-validator-0.2.0.tgz","integrity":"sha512-ZKRbfLzKOVgaAFOwb6Ex1kxzc9HAy5YQEKI7P9DC0ghrHUJSKy3d566Po/lTgGizQUtqBF0df/kJ1KzXBOZTJQ==","signatures":[{"sig":"MEUCIFcDZ+nktVUmXBEKQ7TH/yT/qA8yARNHzRlEcjVnbER/AiEAv97nvlST0/rsPP3fJXaojsfAknP+6YAxTxAEmhP13kw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha","pretest":"jshint ."},"_npmUser":{"name":"bajtos","email":"miro.bajtos@gmail.com"},"repository":{"url":"git://github.com/strongloop/registry-validator.git","type":"git"},"_npmVersion":"1.4.6","description":"Validate your npm registry implementation, check if it correctly implements the npm protocol.","directories":{"test":"test"},"dependencies":{"npm":"^1.4.4","chai":"^1.9.0","debug":"^0.7.4","mocha":"^1.18.0","promise":"^4.0.0","bluebird":"^1.1.0","fs-extra":"^0.8.1","superagent":"^0.17.0","superagent-promise":"^0.1.0"},"devDependencies":{"jshint":"^2.4.4","couchapp":"^0.11.0","npmjs.org":"^1.2.0"}},"0.2.1":{"name":"registry-validator","version":"0.2.1","keywords":["npm","registry","protocol","test","validate"],"author":{"name":"StrongLoop","email":"callback@strongloop.com"},"license":"MIT","_id":"registry-validator@0.2.1","maintainers":[{"name":"bajtos","email":"miro.bajtos@gmail.com"},{"name":"strongloop","email":"callback@strongloop.com"}],"homepage":"https://github.com/strongloop/registry-validator","bugs":{"url":"https://github.com/strongloop/registry-validator/issues"},"bin":{"registry-validator":"./bin/registry-validator.js"},"dist":{"shasum":"faf452079be14ab2266afc6fddaef4ccb6618e78","tarball":"https://registry.npmjs.org/registry-validator/-/registry-validator-0.2.1.tgz","integrity":"sha512-fOjOsAjhQSnT/lD/s6aNgcRis4thV7Wi5C50mA8QP7GdIpyp4mgBlK5lIIpHuO9ZB2s+39ciQnZ+Y74efI6ysg==","signatures":[{"sig":"MEUCIHgsWTU7xQrHigocYkPQXDpNdVc6RjMaVYt2m/aOX1zVAiEAidvBm9ndSzHe+Z1IJVs2u+yZAT2jWLYrgapBKNUYGmM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"mocha","pretest":"jshint ."},"_npmUser":{"name":"bajtos","email":"miro.bajtos@gmail.com"},"repository":{"url":"git://github.com/strongloop/registry-validator.git","type":"git"},"_npmVersion":"1.4.6","description":"Validate your npm registry implementation, check if it correctly implements the npm protocol.","directories":{"test":"test"},"dependencies":{"npm":"^1.4.4","chai":"^1.9.0","debug":"^0.7.4","mocha":"^1.18.0","promise":"^4.0.0","bluebird":"^1.1.0","fs-extra":"^0.8.1","superagent":"^0.17.0","superagent-promise":"^0.1.0"},"devDependencies":{"jshint":"^2.4.4","couchapp":"^0.11.0","npmjs.org":"^1.2.0"}}},"time":{"created":"2014-03-17T06:55:30.558Z","modified":"2026-04-14T15:10:27.597Z","0.1.0":"2014-03-17T06:55:30.559Z","0.2.0":"2014-03-20T08:20:24.367Z","0.2.1":"2014-03-25T07:48:17.226Z"},"bugs":{"url":"https://github.com/strongloop/registry-validator/issues"},"author":{"name":"StrongLoop","email":"callback@strongloop.com"},"license":"MIT","homepage":"https://github.com/strongloop/registry-validator","keywords":["npm","registry","protocol","test","validate"],"repository":{"url":"git://github.com/strongloop/registry-validator.git","type":"git"},"description":"Validate your npm registry implementation, check if it correctly implements the npm protocol.","maintainers":[],"readme":"# registry-validator\n\nValidate your npm registry implementation,\ncheck if it correctly implements the npm protocol.\n\n## Usage (CLI)\n\nInstall this module globally:\n\n```sh\n$ npm install -g registry-validator\n```\n\nOnce your registry is up and running, run the validation:\n\n```sh\n$ registry-validator http://127.0.0.1:15984/ admin:pass\n```\n\nThe validation suite uploads multiple dummy packages to the registry,\ntherefore you should always use a dedicated test-only instance of the registry\nserver.\n\nIt's recommented to reset the registry to an empty state before each run.\n\n### CLI parameters\n\nThe first argument is the URL of the registry. Use the same value \nyou pass to `--registry` option of `npm`.\n\nThe second argument is optional credentials to use for publishing test\npackages. The format is `{login}:{password}`.\n\n\n## Usage (programatic)\n\nAdd the module to your project\n\n```sh\n$ npm install --save-dev registry-validator\n```\n\nCreate a new test file that will\n\n - start your registry server\n - run the validation test suite\n\n```js\nvar validator = require('registry-validator');\nvar registry = require('../');\n\n// assuming an express-based implementation\nvar app = registry();\napp.listen(function() {\n  var port = this.address().port;\n  run('http://localhost:' + port);\n});\n\nfunction run(url) {\n  validator\n    .configure(url, {/* options - see below */})\n    .run(function(err) {\n      if (err) console.error(err);\n      process.exit(err ? 1 : 0);\n    });\n});\n```\n\n**NOTE**\n\nThis module uses `mocha` and `bluebird` internally.\nWhile it should be possible to include this module in an application that uses\nsome of those three modules too, extra care must be taken to prevent\nconfiguration conflicts. It may be easier to use the CLI or start the registry\nin a child process in such case.\n\n### Configuration options\n\n - `userCredentials` - `{String}` in the form of 'user:password'.\n   The credentials to use for authentication of the registry requests.\n\n## Self-test\n\nThe module comes with infrastructure to run the validation against the official\nCouchDB based [registry application](https://github.com/npm/npmjs.org).\n\nTo run the tests, you must have CouchDB installed and the `couchdb` executable\nmust be in your PATH.\n\nUse the usual `npm test` command to run the self-test.\n\n## Troubleshooting\n\nIf the assertion message does not include enough details to identify the\nproblem, set the environment variable `DEBUG=registry-validator:*`\nand re-run the failing test. Debug logs contain the output from\nthe `npm` client among other things.\n","readmeFilename":"README.md","users":{"seldo":true}}