{"_id":"@trussle/qc","_rev":"127-b76d01df8d8233412d957259bc4f98c0","name":"@trussle/qc","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.0":{"name":"@trussle/qc","version":"1.0.0","author":{"name":"Team Trussle"},"license":"ISC","_id":"@trussle/qc@1.0.0","maintainers":[{"name":"jonnyarnold","email":"jonny.arnold89@gmail.com"}],"homepage":"https://github.com/trussle/qc#readme","bugs":{"url":"https://github.com/trussle/qc/issues"},"bin":{"qc":"./bin/qc"},"dist":{"shasum":"837b4a18554451bcb937053c9d4686b43668f8e8","tarball":"https://registry.npmjs.org/@trussle/qc/-/qc-1.0.0.tgz","integrity":"sha512-Bz8GnPEOn9mIQiOkJsFVvzonW3L6ZwkECl8JeSUVUsug2c0cXj2Y85XD7ndENQGBKs8GOBg16rQthxX8thufPw==","signatures":[{"sig":"MEYCIQC5dPTpPRl/NIqcnDKCPF92Wn7kk9WC9R6qWOEiCWLlawIhAOIVQ5Pm/4V2vmBdff/l30vfRQzGCKG5m+5jrvceKUO6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_shasum":"837b4a18554451bcb937053c9d4686b43668f8e8","gitHead":"f6a958c03fcb5390b96c251862264f01fa7fa20d","scripts":{"postinstall":"./bin/install"},"_npmUser":{"name":"jonnyarnold","email":"jonny.arnold89@gmail.com"},"repository":{"url":"git+https://github.com/trussle/qc.git","type":"git"},"_npmVersion":"3.7.3","description":"Quality control tool for Trussle","directories":{},"_nodeVersion":"5.9.1","dependencies":{"eslint":"^3.9.1","istanbul":"^0.4.5","eslint-config-trussle":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/qc-1.0.0.tgz_1478801854194_0.5198712812270969","host":"packages-18-east.internal.npmjs.com"}},"1.0.1":{"name":"@trussle/qc","version":"1.0.1","author":{"name":"Team Trussle"},"license":"ISC","_id":"@trussle/qc@1.0.1","maintainers":[{"name":"bengladman","email":"ben@trussle.com"},{"name":"jonnyarnold","email":"jonny.arnold89@gmail.com"},{"name":"jonnywildey","email":"jonnywildey@gmail.com"},{"name":"pete-trussle","email":"pete@trussle.com"},{"name":"trussle-admin","email":"team@trussle.com"}],"homepage":"https://github.com/trussle/qc#readme","bugs":{"url":"https://github.com/trussle/qc/issues"},"bin":{"qc":"./bin/qc"},"dist":{"shasum":"1bbde520369cb1eac29b5f63e512ef4a7eee994d","tarball":"https://registry.npmjs.org/@trussle/qc/-/qc-1.0.1.tgz","integrity":"sha512-8lOKrRIM8aPHXfuKSWOYDdbmr7Wm5i652sYPY7efiLA1cnJVa61Pg2Hl1U2JK3e1dXtHSxvWsPFNiioDTj+c/w==","signatures":[{"sig":"MEYCIQDirlA7BrWIJPG519asBGRQoGsZ3RG7OeLjZZDR4uBA6wIhAK1HadhGvokO5I6EO4h/wJqaV7BEdLDL1cxQcsnUXCGo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_shasum":"1bbde520369cb1eac29b5f63e512ef4a7eee994d","gitHead":"0b91894032341348f764c66a3c671cc27f1cbe07","scripts":{"test":"./test/run","postinstall":"./bin/install"},"_npmUser":{"name":"jonnyarnold","email":"jonny.arnold89@gmail.com"},"repository":{"url":"git+https://github.com/trussle/qc.git","type":"git"},"_npmVersion":"3.7.3","description":"Quality control tool for Trussle","directories":{},"_nodeVersion":"5.9.1","dependencies":{"eslint":"^3.9.1","istanbul":"^0.4.5","eslint-config-trussle":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/qc-1.0.1.tgz_1478869140372_0.6927971495315433","host":"packages-12-west.internal.npmjs.com"}},"1.0.2":{"name":"@trussle/qc","version":"1.0.2","author":{"name":"Team Trussle"},"license":"ISC","_id":"@trussle/qc@1.0.2","maintainers":[{"name":"bengladman","email":"ben@trussle.com"},{"name":"jonnyarnold","email":"jonny.arnold89@gmail.com"},{"name":"jonnywildey","email":"jonnywildey@gmail.com"},{"name":"pete-trussle","email":"pete@trussle.com"},{"name":"trussle-admin","email":"team@trussle.com"}],"homepage":"https://github.com/trussle/qc#readme","bugs":{"url":"https://github.com/trussle/qc/issues"},"bin":{"qc":"./bin/qc"},"dist":{"shasum":"e1288139fb095f1abdaca949ae28e1f366733943","tarball":"https://registry.npmjs.org/@trussle/qc/-/qc-1.0.2.tgz","integrity":"sha512-2EvVa3xLuf7QUtY8zBLp04oGj5vG/xEksn7q4ozq7v/IG85kxL8t1mvVfUp24x8P3I34P6BIN98p5q9ojcG0/g==","signatures":[{"sig":"MEUCIQCcF0b7wgvZ1m9s/V5BG37PUTDSjOlAYmh72NYa1pR2OAIgTfa/e9eDzvGyPXExyO5MrkkhaHhkRnP7v0d/+fzmask=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_shasum":"e1288139fb095f1abdaca949ae28e1f366733943","gitHead":"9f0cead68e7ba2d56c49cf55d8fe5a93375c9206","scripts":{"test":"./test/run","postinstall":"./bin/install"},"_npmUser":{"name":"jonnyarnold","email":"jonny.arnold89@gmail.com"},"repository":{"url":"git+https://github.com/trussle/qc.git","type":"git"},"_npmVersion":"3.10.9","description":"Quality control tool for Trussle","directories":{},"_nodeVersion":"5.9.1","dependencies":{"istanbul":"^0.4.5","eslint-config-trussle":"^3.1.2"},"_npmOperationalInternal":{"tmp":"tmp/qc-1.0.2.tgz_1479297854844_0.9653148062061518","host":"packages-18-east.internal.npmjs.com"}},"1.0.3":{"name":"@trussle/qc","version":"1.0.3","author":{"name":"Team Trussle"},"license":"ISC","_id":"@trussle/qc@1.0.3","maintainers":[{"name":"bengladman","email":"ben@trussle.com"},{"name":"jonnyarnold","email":"jonny.arnold89@gmail.com"},{"name":"jonnywildey","email":"jonnywildey@gmail.com"},{"name":"pete-trussle","email":"pete@trussle.com"},{"name":"trussle-admin","email":"team@trussle.com"}],"homepage":"https://github.com/trussle/qc#readme","bugs":{"url":"https://github.com/trussle/qc/issues"},"bin":{"qc":"./bin/qc"},"dist":{"shasum":"f917f837fd4642cef8dbc3b04ff525494ddbeb28","tarball":"https://registry.npmjs.org/@trussle/qc/-/qc-1.0.3.tgz","integrity":"sha512-BKZQgFy41fZAuYRQJurrDxWneyWoMLkU+sg2A77GFtAPNttW77TP3Osw3O9khCSldSs6unL1kdTP64cyDq17QA==","signatures":[{"sig":"MEQCIHmM+n/7rjgPXnXK5wnLU2KHv5QOalO8Ua2uS9iibYzZAiBCtu2W/7tsiYh//4TOQ7qD5rdxKncgTS2aWbLhwY54wg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_shasum":"f917f837fd4642cef8dbc3b04ff525494ddbeb28","gitHead":"bf39f5a4961c7589026ea82310637e1da78b444d","scripts":{"test":"./test/run","postinstall":"./bin/install"},"_npmUser":{"name":"jonnyarnold","email":"jonny.arnold89@gmail.com"},"repository":{"url":"git+https://github.com/trussle/qc.git","type":"git"},"_npmVersion":"3.10.9","description":"Quality control tool for Trussle","directories":{},"_nodeVersion":"5.9.1","dependencies":{"istanbul":"^0.4.5","eslint-config-trussle":"^3.1.2"},"_npmOperationalInternal":{"tmp":"tmp/qc-1.0.3.tgz_1479492939360_0.04753078077919781","host":"packages-12-west.internal.npmjs.com"}},"1.0.4":{"name":"@trussle/qc","version":"1.0.4","author":{"name":"Team Trussle"},"license":"ISC","_id":"@trussle/qc@1.0.4","maintainers":[{"name":"bengladman","email":"ben@trussle.com"},{"name":"jonnyarnold","email":"jonny.arnold89@gmail.com"},{"name":"jonnywildey","email":"jonnywildey@gmail.com"},{"name":"pete-trussle","email":"pete@trussle.com"},{"name":"trussle-admin","email":"team@trussle.com"}],"homepage":"https://github.com/trussle/qc#readme","bugs":{"url":"https://github.com/trussle/qc/issues"},"bin":{"qc":"./bin/qc"},"dist":{"shasum":"ff7699299c246f5525b69c85dc1fbd51d6557d63","tarball":"https://registry.npmjs.org/@trussle/qc/-/qc-1.0.4.tgz","integrity":"sha512-MLDxaujZn66qQ5KklQGQqWUDSt22tKsol5ZKIeyXvUxZnyaxGu5ZmLjViMFXkr6QQPiL/etjJIywEKd+9eKoOA==","signatures":[{"sig":"MEQCIF7eFWa+PJ9RhfEbp/i9IFX8DXI0fwVKJUSLDx6SM25lAiBEPglkKShdaxfo5578wi3KLONovpVsUpaCBum3FbUecQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","_shasum":"ff7699299c246f5525b69c85dc1fbd51d6557d63","gitHead":"cbda9fc45b04b14e109faaf5d2a0983834e262c1","scripts":{"test":"./test/run","postinstall":"./bin/install"},"_npmUser":{"name":"jonnyarnold","email":"jonny.arnold89@gmail.com"},"repository":{"url":"git+https://github.com/trussle/qc.git","type":"git"},"_npmVersion":"3.10.9","description":"Quality control tool for Trussle","directories":{},"_nodeVersion":"5.9.1","dependencies":{"istanbul":"^0.4.5","eslint-config-trussle":"^3.1.2"},"_npmOperationalInternal":{"tmp":"tmp/qc-1.0.4.tgz_1479731929868_0.9702802605461329","host":"packages-18-east.internal.npmjs.com"}},"1.0.5":{"name":"@trussle/qc","version":"1.0.5","author":{"name":"Team Trussle"},"license":"ISC","_id":"@trussle/qc@1.0.5","maintainers":[{"name":"bengladman","email":"ben@trussle.com"},{"name":"jonnyarnold","email":"jonny.arnold89@gmail.com"},{"name":"jonnywildey","email":"jonnywildey@gmail.com"},{"name":"pete-trussle","email":"pete@trussle.com"},{"name":"trussle-admin","email":"team@trussle.com"}],"homepage":"https://github.com/trussle/qc#readme","bugs":{"url":"https://github.com/trussle/qc/issues"},"bin":{"qc":"./bin/qc"},"dist":{"shasum":"0f0ad9040d38d0b71fea9d925ef402613e79e305","tarball":"https://registry.npmjs.org/@trussle/qc/-/qc-1.0.5.tgz","integrity":"sha512-CbeHk74xSNueKmWhNqI7BEx9xE8TM3S9vkmKhhcm3zcTO2L5SbqILZW128eylmyIIldjhqC2B64X/h0ky/b/Ow==","signatures":[{"sig":"MEUCIFADhEF8K61tmZbQiOo16GX1E0avwvgKyGabdD/8PQCsAiEAhhqtu0XGU2RsI6TtLMLGPr8IdcovUmqUMzXQrSpD+zU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2e+0CRA9TVsSAnZWagAAlNEQAJFcyTs6zuuDNXA+V/iM\nRS/IHxtjmFQIfPmIWGENaaDwLSe8LUv4HLCFdXdWqSKgAI0wX6FnnOEJh3aU\nRCFOtynwQITzX1FzR/wUalOmrCG4EHLYk68jbY0jRKqCZnSAn7W4MeP2Iazm\n7u95Obt/GvF+s1MN6XFdvgQcM2mgTit2/a2iqVktuhoL5+9trVfaK1R89rk3\n14Q5iNBkzrbSn8kce0HWOtRCFsj+uOIpMpJIvsmdITCBfU4dnjEozB+jJM76\nI/V6lpmpAhRJsCp4KSI0rAFTLCrwWyeQgN8npQzFRGNjuVxE9YgMlIGMsVIr\n1hlvhWkmH8ilFXiLKYKsfWA2kE1SKjl8SkbkMapEba3lRGaj9n6V4siA1hot\nC7xM+b+Or2bzWTiFziHzcWNfo+YHsrf43kSvtPD3q8gaf8so8KoOqPjgc1LT\nI19/CmD4A5DdXKtz3+ZJnt6Ki+D5ncqzY+YhFkUAAlvdGSMqm8C/PbxxPA5Y\nFw5vCKGa94pVb4tf1Z3wsnt7dLYJBgkVh/lWTKcrdp/zGd/1LLyR6hQGK6ce\nTiKFfDrHZQ/WoFpE44HraXMBByWR/p5Rb5HFeriso45jQTh90/GkTimelXLy\n1DbrQTuIAdJHwNQ3Mx5HV6flii2VCdurkyJQfK2Q3qz2FG17i+a8VDUJuuZu\n3miy\r\n=S5at\r\n-----END PGP SIGNATURE-----\r\n"},"_from":".","_shasum":"0f0ad9040d38d0b71fea9d925ef402613e79e305","gitHead":"4e90a259efae1928726c6301cd2e09cfc58a2765","scripts":{"test":"./test/run","postinstall":"./bin/install"},"_npmUser":{"name":"jonnyarnold","email":"jonny.arnold89@gmail.com"},"repository":{"url":"git+https://github.com/trussle/qc.git","type":"git"},"_npmVersion":"3.10.9","description":"Quality control tool for Trussle","directories":{},"_nodeVersion":"5.9.1","dependencies":{"istanbul":"^0.4.5","eslint-config-trussle":"^3.1.2"},"_npmOperationalInternal":{"tmp":"tmp/qc-1.0.5.tgz_1479738882021_0.5369530699681491","host":"packages-12-west.internal.npmjs.com"}}},"time":{"created":"2016-11-10T18:17:34.766Z","modified":"2026-08-19T10:42:35.739Z","1.0.0":"2016-11-10T18:17:34.766Z","1.0.1":"2016-11-11T12:59:02.571Z","1.0.2":"2016-11-16T12:04:15.475Z","1.0.3":"2016-11-18T18:16:05.114Z","1.0.4":"2016-11-21T12:38:50.397Z","1.0.5":"2016-11-21T14:34:43.975Z"},"bugs":{"url":"https://github.com/trussle/qc/issues"},"author":{"name":"Team Trussle"},"license":"ISC","homepage":"https://github.com/trussle/qc#readme","repository":{"url":"git+https://github.com/trussle/qc.git","type":"git"},"description":"Quality control tool for Trussle","maintainers":[{"email":"engineering@trussle.com","name":"trussle-admin"}],"readme":"<img align=\"right\" src=\"http://i.dailymail.co.uk/i/pix/2010/02/09/article-1249539-005E1BF400000258-954_233x320.jpg\" />\n\n# Trussle QC\n\nQC is a tool that performs quality control checks on a Javascript repository. It makes sure that:\n\n- All tests are passing (by calling `npm test`)\n- All code is lint-free (using [Trussle's ESLint rules](https://github.com/trussle/eslint-config-trussle))\n- Code coverage is sufficient (using [Istanbul](https://github.com/gotwarlost/istanbul))\n\n**If any of these checks don't pass, QC won't let you push your changes.** \nMean, I know - but it's the only way you'll learn.\n\n<br style=\"clear: both;\" />\n\n## Installation\n\nQC should be installed as a dependency in your project:\n\n```sh\nnpm install --save-dev @trussle/qc\n```\n\n**If you're using mocha,** you'll need to change from using `mocha` to using `_mocha`; this avoids forking the process, which [causes some issues with code coverage](https://github.com/gotwarlost/istanbul/issues/44).\n\n## Usage\n\nOn installation, QC will do a few things:\n- If there is no `.eslintrc.js` file, one is added to the root of the project.\n- If there is no `.istanbul.yml` file, one is added to the root of your project.\n- It will set up a [Git pre-push hook](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) that runs itself when pushing code, to make sure you're behaving 😘\n\nIf you want to run QC yourself, just run `./node_modules/.bin/qc` or set up the following script in your `package.json`:\n\n```json\n{\n    \"scripts\": {\n        \"qc\": \"qc\"\n    }\n}\n```\n\n## Assumptions\n\n> **Please read this section very carefully:** if any of these assumptions are not true about your project, QC will fail.\n\nQC assumes the following about your package:\n\n- There is a `test` script in your `package.json` which points to an executable in the `./node_modules/.bin` directory (**not** global; usually `_mocha`).\n","readmeFilename":"README.md"}