{"_id":"@alcumus/common-tools","_rev":"40-58f1039a42f3f5d5887d02b9951793be","name":"@alcumus/common-tools","dist-tags":{"latest":"0.1.3","HF-563-2":"0.0.21-HF-563-2","HF-563-3":"0.0.21-HF-563-3","HF-563-4":"0.0.21-HF-563-4","HF-563-5":"0.0.21-HF-563-5","HF-563-6":"0.0.21-HF-563-6","HF-563-26":"0.0.21-HF-563-26","HF-639-1":"0.1.1-HF-639-1","HF-701-1":"0.1.2-HF-701-1","HF-773-1":"0.1.2-HF-773-1","HF-773-2":"0.1.2-HF-773-2","HF-888-1":"0.1.3-HF-888-1"},"versions":{"0.0.16":{"name":"@alcumus/common-tools","version":"0.0.16","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js' --fix && tslint 'src/**/*.ts' '*.ts' --fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js' && tslint 'src/**/*.ts' '*.ts'","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext ts,html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"@angular/compiler":"^6.1.10","@angular/core":"^6.1.10","alcumus-linting-rules":"0.0.5","angular-tslint-rules":"^1.5.0","bitbucket":"^1.4.0","chai":"^4.2.0","codelyzer":"^4.5.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","nodemon":"^1.18.7","request-promise-native":"^1.0.5","stylelint":"^9.6.0","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","tslint":"^5.11.0","tslint-eslint-rules":"^5.4.0","typescript":"^3.1.3","yargs":"^12.0.2"},"devDependencies":{"mkdirp":"^0.5.1","mocha":"^5.2.0","proxyquire":"^2.1.0","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","sinon":"^7.2.2"},"gitHead":"26d9911f71cae27d58a4c82f8f2bcd522444a9f6","_id":"@alcumus/common-tools@0.0.16","_npmVersion":"6.4.1","_nodeVersion":"10.15.1","_npmUser":{"name":"lwelsh","email":"lauren.mae.welsh@gmail.com"},"dist":{"integrity":"sha512-rHHvOpoElF0MwQXg427WlbJscOONeIr8wGz1aau8wVTUil8PftJiVM/T6YdZEOKBL2qXfjY6y2tkOJRmR1Gopw==","shasum":"1213935be73edc139da67aa7a30e6011fcbd5bc9","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.0.16.tgz","fileCount":33,"unpackedSize":320729,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcrIbbCRA9TVsSAnZWagAAohIP/jd2Tr2RaD45wUEnAF/g\nzZwicjxTWpotxIP4ZlloVvevaptY0+7Xz04KS9cqBV5HiTRiSuVPEg4imi2c\nqN5F6Awad/a/ohQ9uXFZKwhMptj9G0fXVtdnzw0klYDTxJA0jRLiCWynXeB8\nlB0tVCr9uuwKhqFYkDwndk6Zlw856aeFd3/Qmq/uQnWdJ1MHVYNK7p4ir5nO\nWcapka/IpjPUlNsM2drKHtvld/U7aOjI7Ibm7wLD8i2yO2mTL9J3o5PNtzeE\ntbCQEuKJs/beh52wNpPfORS1fWoRGotQn24X8X52VDXkcZGfTsE4l7r7P8Ia\nlYH0uTuUz29IbERhwuuPb+RAMV4AIiEiyG++bwK88Lrk5YKnLQ6UCEZV48cy\n5QdFvYhGprFa+JvRmKLLjtDQpYu3Ohy4wzZJD3QPlahs+OUPJQx6DFFmDAQY\npiV1T5yXk5NiEJxOQgbDetF3dK1SDPFFQL9tSGNI11x4yRFEkUKCb7RXg5CX\nIl3nhsiUkZiHiXALeBoMuMr5QcRqzyVcH3oVh1o+qci63eP8Q5q+q7ll0iNJ\nWdDu+8N4ft9Z8EHVSzRt5PO7YoNtZW4WpOMnbyGqvwT/SxWkzEAKTfJqSrbi\nWJqwlH7g0YfLQ9vntmu13g/ppphrxHX3m2fsz57H1v+HuGT5uQDM1ymoDGt5\nQX6q\r\n=/USp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGfVjlL3DM8j6wx0jsx6Dy+NQJ4yG4VhBKX5APu8ZdG8AiBfr/3pDPa6rj2UOuuJHNg9VzXKJYE2a+8MaQ4cXItdDw=="}]},"maintainers":[{"name":"lwelsh","email":"lauren.mae.welsh@gmail.com"},{"name":"sfuenffinger","email":"simon.fuenffinger@alcumusgroup.com"},{"name":"itinfrastructure_alcumusgroup","email":"itinfrastructure@alcumusgroup.com"},{"name":"whydoidoit","email":"michael.john.talbot@gmail.com"},{"name":"thor84no","email":"thor84no@gmail.com"},{"name":"davecozens","email":"dave@davecozens.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.0.16_1554810586762_0.5298119321262051"},"_hasShrinkwrap":true},"0.0.17":{"name":"@alcumus/common-tools","version":"0.0.17","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js' --fix && tslint 'src/**/*.ts' '*.ts' --fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js' && tslint 'src/**/*.ts' '*.ts'","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext ts,html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"@alcumus/linting-rules":"0.0.6","@angular/compiler":"^6.1.10","@angular/core":"^6.1.10","angular-tslint-rules":"^1.5.0","bitbucket":"^1.4.0","chai":"^4.2.0","codelyzer":"^4.5.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","nodemon":"^1.18.7","request-promise-native":"^1.0.5","stylelint":"^9.6.0","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","tslint":"^5.11.0","tslint-eslint-rules":"^5.4.0","typescript":"^3.1.3","yargs":"^12.0.2"},"devDependencies":{"mkdirp":"^0.5.1","mocha":"^5.2.0","proxyquire":"^2.1.0","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","sinon":"^7.2.2"},"gitHead":"b773d55e0dd540b8c4b3ddb4c8cbef8a71f58611","_id":"@alcumus/common-tools@0.0.17","_npmVersion":"6.3.0","_nodeVersion":"10.6.0","_npmUser":{"name":"sfuenffinger","email":"simon.fuenffinger@alcumusgroup.com"},"dist":{"integrity":"sha512-hdH/aRTiHFxowCEKLExWZS/kDm60jKClH9qQGIGQ/mVvc2DTZ5+oemSrMkVO+tPd6QwZYGImtusc3bMRjYKDLA==","shasum":"780c9f7344052a0081fa03202c3e41a2cead4bdd","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.0.17.tgz","fileCount":33,"unpackedSize":320724,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcrccqCRA9TVsSAnZWagAADrQP/iYA5B7E6OdeOFQIANcA\nuImjgPkfUx+jJCwCoLIY36lFjimR+xwl6QL4N42RRc6aPmpnFo6+czJTqKkn\nSxx6Xv946VEbcYHmiZyR6Qh6TH8YxzV6q7jDh6t9MxmJVD0WyafhgpfqghvD\nbJcslTrRWrTaQilUB1eplknWhxdgprZ5O3iJm9BXbFkkRxyjvri4PeWoka2r\nAR/YhwYJyEqNfy86dj7KCEi2gClz8Ib2ranDSo6n01wBVlPKvpewlloNnLlr\nzBkmb/+4HoAIlNIQG588L+g3PC135wfzn6qYnbrm1T/FITL2+jlXwy1V+253\nwzArZYmlBGTXD6A3Is79BtxyxPYH7wWVxB1zX7OSE5AmgETaaHtjFZpLGK78\nQFvRch0XE9LQRjQu/8xa874/CkVxfZueRuthS4+upgUy9uh45ptktkcWmYQS\nbLBQEOLevKcT/RpaKc18bI6LNPcr5q+aFzmMIc5aguzN+P7B8rmV/L54gzli\nL/9UI3OtmqaVp2vdqzyy3ArcCzpK7Q2JCYa4o1289LtfpV0IunNtOJiBMBwS\nOJMwm6GGj3Fsk4lp12JM9IzbghN4d14Oi13uwj7fmhp/U2nSclmXz5cfIsjl\naAvMJeo75+n7PdJHahKWoxj6yK/+KphB1bXNtOb2GlrGi4OfphnAdnwX23fc\nBHij\r\n=9gLM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHBbbREhIWkAwQSDe7g4Zl0qNy4WMPVEGFFbz+XWn05xAiEAsceRqtna8wax4f/ujCNS1t0oRSLTHk+u2GGArPhY/84="}]},"maintainers":[{"name":"davecozens","email":"dave@davecozens.com"},{"name":"itinfrastructure_alcumusgroup","email":"itinfrastructure@alcumusgroup.com"},{"name":"lwelsh","email":"lauren.mae.welsh@gmail.com"},{"name":"sfuenffinger","email":"simon.fuenffinger@alcumusgroup.com"},{"name":"thor84no","email":"thor84no@gmail.com"},{"name":"whydoidoit","email":"michael.john.talbot@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.0.17_1554892585393_0.3633202126632449"},"_hasShrinkwrap":true},"0.0.18-alpha.1":{"name":"@alcumus/common-tools","version":"0.0.18-alpha.1","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js' --fix && tslint 'src/**/*.ts' '*.ts' --fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js' && tslint 'src/**/*.ts' '*.ts'","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext ts,html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"@angular/compiler":"^6.1.10","@angular/core":"^6.1.10","angular-tslint-rules":"^1.5.0","bitbucket":"^1.4.0","chai":"^4.2.0","codelyzer":"^4.5.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","nodemon":"^1.18.7","request-promise-native":"^1.0.5","stylelint":"^9.6.0","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","tslint":"^5.11.0","tslint-eslint-rules":"^5.4.0","typescript":"^3.1.3","yargs":"^12.0.2"},"devDependencies":{"mkdirp":"^0.5.1","mocha":"^5.2.0","proxyquire":"^2.1.0","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","sinon":"^7.2.2"},"gitHead":"313c8e92450b7d71d09c98d49eb836f181e8e906","_id":"@alcumus/common-tools@0.0.18-alpha.1","_npmVersion":"6.3.0","_nodeVersion":"10.6.0","_npmUser":{"name":"sfuenffinger","email":"simon.fuenffinger@alcumusgroup.com"},"dist":{"integrity":"sha512-F9DOaay2r48PYyzV2d7epxpcouN4M8iGsU/W6dfX3/qSZlabm3wSorxicHD/zouZlaDyVYJGA3p0jMEc1NJrFw==","shasum":"7b4929c2f69fbce2eed22260aacc04032c66d730","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.0.18-alpha.1.tgz","fileCount":41,"unpackedSize":324859,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcsEznCRA9TVsSAnZWagAA8RkP/RzWxkUM/ygeKa2AB7Qx\n3pSOIzdvTZx2nw2JhPF/cX5iWOZUIKGzKjD2HA19Jpff4RdklGrZpfaaZJZw\nTGhsiIyOSS3V/cFXJHdsw5oi6XqPduzVhBGRcfXp4fjT3dRKEvZK+Be5xOPv\noEwSnH80lPlBUXijGKByCMKp9m9dV/0yibdFq0f7jP9UKq0KtmWz9qfliJI6\nh48UxSj9jbDcf0UdlFWD08EnMeeKVSKOtDaUqyZDv3sUIxefnXYaDS+c6PMA\nqtAz1LVuJ3kVKjdmwH3XuXK91WwfDoeXlaMVtJd5fHiG/cJppcJzohXUva44\nNRXFZBbLAOOH3l7LaWxqf80p1b0ihuAsM01IxkrPi1ibux18q6vqsfAQMQ5D\nvaFFCHfUmfh4yFumVAqyViiBme3pW8SWJnjA1qjyRY0o+v2U9X6THzEOs/c2\nOiGpHQyOS+SfW3tiLaLVn+TUAMDB5z83rHWT1yyX8f57aFo+0OVrSkkkE+uF\n4UzdzU0fUcd/d3Hwru2eN1zIl2uvji14GdLm3XhuA3/Kx865tnsCeOQeYq2C\nWA+kCLHV9lzv15+Jq7JNPoBLi6JqerBAasPX1wkipI6qBlrsooVOpIL4FljT\nebO0tJSD4p2eXMpUAGVKJ6YhPWC+TAPm74awsuIx/YRpKs7jwfe1oLrEB9S9\nzO+S\r\n=vXh9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbEfmJaNkgla4ovWa/64L7Zd0hwgJI+3ea8Ba1CNhkGwIgGQUl+1SktPsaGzUIRD+M/V85zGSu79Q2mctC2HYkhW4="}]},"maintainers":[{"name":"davecozens","email":"dave@davecozens.com"},{"name":"itinfrastructure_alcumusgroup","email":"itinfrastructure@alcumusgroup.com"},{"name":"lwelsh","email":"lauren.mae.welsh@gmail.com"},{"name":"sfuenffinger","email":"simon.fuenffinger@alcumusgroup.com"},{"name":"thor84no","email":"thor84no@gmail.com"},{"name":"whydoidoit","email":"michael.john.talbot@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.0.18-alpha.1_1555057894909_0.18294177122902622"},"_hasShrinkwrap":true},"0.0.18":{"name":"@alcumus/common-tools","version":"0.0.18","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js' --fix && tslint 'src/**/*.ts' '*.ts' --fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js' && tslint 'src/**/*.ts' '*.ts'","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext ts,html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"@angular/compiler":"^6.1.10","@angular/core":"^6.1.10","angular-tslint-rules":"^1.5.0","bitbucket":"^1.4.0","chai":"^4.2.0","codelyzer":"^4.5.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","nodemon":"^1.18.7","request-promise-native":"^1.0.5","stylelint":"^9.6.0","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","tslint":"^5.11.0","tslint-eslint-rules":"^5.4.0","typescript":"^3.1.3","yargs":"^12.0.2"},"devDependencies":{"mkdirp":"^0.5.1","mocha":"^5.2.0","proxyquire":"^2.1.0","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","sinon":"^7.2.2"},"gitHead":"870939a4cc709f6e020b818c179aff32c67447ad","_id":"@alcumus/common-tools@0.0.18","_npmVersion":"6.3.0","_nodeVersion":"10.6.0","_npmUser":{"name":"sfuenffinger","email":"simon.fuenffinger@alcumusgroup.com"},"dist":{"integrity":"sha512-wbi+zT3m/yDwAB7kM/DLCdNgkNIyTtnjAusE+pjxTK9mpEsRlyQ35OX7jODxC4BA1l2fCEq60nQjv7jKaA23GQ==","shasum":"d17beb45209b1f8293bfc45d493b993753c52a4b","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.0.18.tgz","fileCount":41,"unpackedSize":324851,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcsFcDCRA9TVsSAnZWagAARa0P/jZoGA968GzqzOVtAchh\nmXtfD5oHSZ6T8IP6EvkAr7fTFjMmUTHcyo5rUPxug4P+UEda4lltOYQLJ2s8\njHoRrGOlPts3tfAySBq4bpAqurHNIcFSD6qx6MAIL0RvmzBc1Y18E0G4BCmq\nQIMNO5TRpqJprVpGAMW01FfyP8shN9mv4CzcEVOlO1YTMclGdZ3iuCDNjhYL\neP45vpP681YWdCO7gDKNBNieQ57G4Oxlr9kSGkG/3zl2L+jEEtfXteJBb/dt\neVMnToSnyBs90tzuITeBO7T47/zm5p9UF5yDVEKbW+E0r04HlL6rFNrJEtye\n+69nooMOvLrajmFZVYIh9cjhM917jh23ouZV59V/53PxV/1JNji/Xk7qjtO1\nfcg/q1FEvXEP2GCVy52owXL7fKZcv/Sm+xOFVpyXMyMNmE8gHGq0Ko8uhRZm\n6w/FXKwfpwwtxJyfBwkjdKvA7sIqZqUpuP5i5voXaG4q8wBO3IzcWTjcnIOf\n2Yxm7Oc1w4gwxxZ4QQT8IccY+vhZXMgEnmZxHSygfVGbVQY0AQ895NKotTjW\nk4FWN50wN3lJR81iEoav8An70xyn1FW/DJNlquZqHdcoMXyKnUOAxcCUKPP3\nH1Dbxfz+GimGB4e4y+5MQ0V/W3MhdMEflq++e0kemVV66h3N5oyzvXsCVohf\nRG+A\r\n=wbQr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFcC7PboqMMHfVaS9T9G56OXdnVjXEkFXzcztbDgbjOkAiBbB+zV8Ogs1amrICf2p6ONkRuefcN+KmqdYdNG5uFebg=="}]},"maintainers":[{"name":"davecozens","email":"dave@davecozens.com"},{"name":"itinfrastructure_alcumusgroup","email":"itinfrastructure@alcumusgroup.com"},{"name":"lwelsh","email":"lauren.mae.welsh@gmail.com"},{"name":"sfuenffinger","email":"simon.fuenffinger@alcumusgroup.com"},{"name":"thor84no","email":"thor84no@gmail.com"},{"name":"whydoidoit","email":"michael.john.talbot@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.0.18_1555060483079_0.7435159720860143"},"_hasShrinkwrap":true},"0.0.19":{"name":"@alcumus/common-tools","version":"0.0.19","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js'--fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js'","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"bitbucket":"^1.4.0","chai":"^4.2.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","mkdirp":"^0.5.1","nodemon":"^1.18.7","request-promise-native":"^1.0.5","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","stylelint":"^10.0.1","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","yargs":"^12.0.2"},"devDependencies":{"mocha":"^5.2.0","proxyquire":"^2.1.0","sinon":"^7.2.2"},"gitHead":"e7194f1dd204e4b3fcab314b11194386d1df029a","_id":"@alcumus/common-tools@0.0.19","_nodeVersion":"10.15.0","_npmVersion":"6.8.0","dist":{"integrity":"sha512-HeDU5BLpbyZHOXHKA+keUQpaqP8vj9ZR8hQqVGXSbFI1MbAw9glbRZiu04k24Hq7JECih50ISxm721oGkqdbZw==","shasum":"a9d5b251f8fc38c65d1465439c65c682ff31823b","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.0.19.tgz","fileCount":38,"unpackedSize":318131,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJctw0eCRA9TVsSAnZWagAA/k4QAIjWCKHlyK8jZiwociBc\ncjsxvaeSC6SCYFSaDMv2z7kM3msKBfWThCykIHC5ygzZoOCB/w2H2vdJmTB8\nBi0sHSoLPAtG3YtBYCKty/3AHOd2T88PnJTLDDFElhUpq2j1FWJl1XjYQzqH\nU+BNQUWlxhaNU/I7Bba/Zga64NccTaJtPQsD/Or7ilCr724lgfWQeGOFCCBK\nar3bMLz4Cs5c1LqCCQLHreqq8ZYGVlHr1y6BTu9WqJNv14Oi3sArwq0Nl4lB\ny7a7QAUFC9bcFdUhmrFOmsw5a6RreFqqdqjKAI6Ne2kwBqt+V/l3KiBmmDB8\n7Ups9iK1Lfclnqn461TfYf7KlCRx2p6Cda0mA/T3PIfcvkIedst9IX8rk7nn\ngvub4N7zPZBgQUUgfZ7YaUUvqttbPnokBZqqJZPzg5p9NA4po/cq2c9WmDUY\nJmjBNGbUmq2oBfWCqcqqwzbfXgTVkIeHdFCrjFdIHjwmPkSr2kzBHJXNNn3Y\nwu25zY+qvwhckNz/Efu7WwinXCwMBuRcdgvvImIM8TkSbiqWQc2RyrM1kw0I\nPRS58FeIzsa6k4kyIu+kdZhyWp5T3ArgC22MVLiLTpspFKUIEvuF0X3mmnol\nb7PO9Nut59V5RZAeJ21ctqLY5pe6t+ujl7IMoqLKbTgd3ayDNt76Q4OGSzS5\nN0AS\r\n=yqQq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+jkzZmzH6PD9o0jwIkV3Cb+GH2y9HLMLcwQIxaRQOLAIgOcwCeCI/JP6jg9AlfXgcc0mRYJEf8b0nU6sXVpW9pUs="}]},"maintainers":[{"name":"davecozens","email":"dave@davecozens.com"},{"name":"itinfrastructure_alcumusgroup","email":"itinfrastructure@alcumusgroup.com"},{"name":"lwelsh","email":"lauren.mae.welsh@gmail.com"},{"name":"sfuenffinger","email":"simon.fuenffinger@alcumusgroup.com"},{"name":"thor84no","email":"thor84no@gmail.com"},{"name":"whydoidoit","email":"michael.john.talbot@gmail.com"}],"_npmUser":{"name":"thor84no","email":"thor84no@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.0.19_1555500317461_0.9790768333157367"},"_hasShrinkwrap":true},"0.0.21-HF-563-2":{"name":"@alcumus/common-tools","version":"0.0.21-HF-563-2","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js'--fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js'","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"bitbucket":"^1.4.0","chai":"^4.2.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","mkdirp":"^0.5.1","nodemon":"^1.18.7","request-promise-native":"^1.0.5","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","stylelint":"^10.0.1","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","yargs":"^12.0.2"},"devDependencies":{"mocha":"^5.2.0","proxyquire":"^2.1.0","sinon":"^7.2.2"},"readme":"# Common Rules\n\nThis repository contains common automation tools to be shared among multiple projects, including tools for installing linting rules etc.\n\nAll changes to this project should be published under a new version number.\n\nTo use this project, first install using `npm i --save-dev alcumus-common-tools`, then use the provided binaries to install what you need. For example:\n\n```bash\nnpx common # install the most common options needed (eslint, .editorconfig, git hooks, etc.).\nnpx linting # install eslint.\nnpx linting react # install linters needed for react projects\nnpx editor-config # install just .editorconfig file.\nnpx git-hooks # NOT YET IMPLEMENTED: this will install the common git hooks to the project.\n```\n\n`npx common` forwards any parameters it receives to all of the other commands it triggers so `npx common eslint` will call `npx linting eslint`.\n\nThese commands should create very minimal files within your current project\n(a symlink where appropriate, a simple config file that just extends the ones from this project elsewhere).\nIn the case of extending config files for linters it also allows us to make project specific changes\nif appropriate; though this should be a last resort.\n\nOverall we should make our changes in just this project and use npm to upgrade to newer versions in other projects.\n\n## Using locally\n\nIn order to test locally, just clone the repo and link a test project to this as follows:\n\n```bash\nnpm link # execute in the root of this project to make npm associate this folder with the correct package.\ncd <project> # change to your test project.\nnpm link alcumus-common-tools # equivalent of npm i alcumus-common-tools, but creates symlinks in node_modules instead of installing.\n```\n\n## Publishing changes\n\nTo publish changes you've made (and tested locally), just run `npm run publish-new`. This will publish to the correct NPM registrar as\nwell as bumping the version number ready for the next change. For major version changes, first change `package.json` to have the correct\nversion number, then run `npm run publish-new`.\n\n## Publishing pre-relase\n\nTo publish a pre-release version of changes you've made (and tested locally), just run `npm run publish-pre-release`. This will publish a pre-release version to the correct npm repo using the\nversion defined in the package json and current branch number in the following format: version-branch-publishVersion (e.g. 0.1.10-HF-563-1) it will then increment\nthe publish version for each subsequent run of the pre-release job.\n\n## Using on Windows\n\nUsage on Windows should be the same as usage on Mac, except that it must be run as an administrator (run your IDE or CMD itself as admin).\n\n## Git hooks\n\nA set of git hooks will be installed in the current project when using `npx common`. They can also be specifically installed\nwith the `npx install-git-hooks` command. At present these git hooks provide the following functionality:\n\n* Warn when you check out a branch that does not follow the branch naming convention (<ticket>-<description>) or is specifically exempt (master).\n* Ensure that all commit messages are prefixed with the ticket number from the branch they were created on. I.e., if you commit with a message\n\"Fixing unit tests\" on branch \"HF-99-fixing-framework-bug\" your commit message will be automatically changed to \"HF-99: Fixing unit tests\".\n\nTo create more git hooks, simply create a new file with a file name matching any [git hook](https://githooks.com) file\nname (with .js after it) in `src/git-hooks` and run the install again. The files will be symlinked to `.git/hooks/`\nmaking sure they will be updated if the npm module is updated.\n\n## Pull-requests\n\nThis repository exposes a `npx pr` command that can be used to create pull requests in a standardised way that can be\nextended later. At present, this will ensure that the project passes linting before allowing a PR to be created. In the\nfuture this will be extended to include unit tests passing if present etc. In addition to this, a report can be\ngenerated that will be attached to the PR itself. At the moment this just compares linting pre-PR and post-PR, but can\nbe extended to show changes in code coverage, etc. In addition to this the command allows an easy way of inviting\npeople by name or by team. In order to create Bitbucket PRs, appropriate credentials must be available in `~/al-tools.credentials.json`.\nThe `~/al-tools.credentials.json` structure is as follows:\n\n> **Note:**\n> \n> In order to execute npx commands that are declared in this project from within this project, add `-p .` to the command\n> as in `npx -p . pr ...`\n\n```json\n{\n    \"bitbucket\": {\n        \"username\": \"<user>_alcumusgroup\",\n        \"password\": \"--\"\n    },\n    \"jira\": {\n        \"username\": \"<user>\",\n        \"password\": \"--\"\n    }\n}\n```\n\nThe JIRA username/password is required to get JIRA descriptions added to your PR, but is otherwise optional. JIRA\nunfortunately requires you to put your normal username and password in the config file, while Bitbucket allows you to\ncreate an app password (see [https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html]).\n\nExamples:\n\n```bash\nnpx pr -r thor # invite Thor to be a reviewer (this will be matched against both full name and username, case insensitive).\nnpx pr -r pippin mark # invite all of team Pippin and Mark Gabb to be a reviewer.\n```\n\nAny number of reviewers can be added and additional groupings can easily be added by changing the `teams.json` file in the S3 bucket `al-automation`.\n\nNOTE: Currently `npx pr` is a short form of `npx pr create`. Additional commands (such as `npx pr update` may be created\nin the future).\n\n`npx pr --help` should provide a good idea of the options available, though sensible defaults for merging to `master`\nare provided.\n\n### Future improvements\n\n* Add code coverage report to PR.\n* Add tasks based on reviewer checklist to PR.\n* Stop PR from being created if unit tests fail.\n* `npx pr update` - refresh generated content for PR based on changes, but leave other details as they were.\n\n## Making a new command available\n\n * Add a `<command>-cli.js` file that will handle CLI arguments. Bear in mind that your file may be called\n with arguments that belong to other CLI files so be careful about how you read them.\n * Separate the CLI logic from the business logic, business logic goes in `src`.\n * Add the name of your CLI file to `package.json` under the `bin` property.\n * If appropriate, add it to `common-cli.js`, which is executed for `npx common` as mentioned above.\n * Remember to publish the new version when you're done. (When the NPM repo is ready).\n","readmeFilename":"README.md","gitHead":"796d37be6c2da1f929ae71af41fa0c074666af56","_id":"@alcumus/common-tools@0.0.21-HF-563-2","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"nevans","email":"nia.evans@alcumusgroup.com"},"dist":{"integrity":"sha512-w/mbi7itd+DvOXzsOWwwoDDF8zLis60PNpKYpmt8jfcNmcNAWR2zHNq8wtEx91JHXEebfhetTKHfiud1ExwNMw==","shasum":"ae033c66ec9e3d9d6778b95ff98d6688a352ad55","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.0.21-HF-563-2.tgz","fileCount":40,"unpackedSize":321879,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxwXICRA9TVsSAnZWagAA8ZsQAI0wJt/5OFEPWdPtRXtH\nfdgwerQl3wtHLMu2WZZMRz/acrNagDee+UXzQlibwSjsZvvkf+RO8jtUCypw\nmKzzJQ4KHDaw49ZDftWSoWnWahuGpNH6/BF6EtdQ91XePQg5K2fJ4GDkVYJ1\nP0P4U4xn3uWxzt2aiAmY5NRqunr/57u8K+aedQnnp68kKQaznG7RZcUFUGrr\nJ3DUrF3KwxPMYtpt4gaV9zZjLGueSHfAX56kJKHJVXK6IEOIyfM+N6cYcYAz\nFFUXL9oAmkPKP8XBgDVScGGdtYAND7OKXEO7jjCfI/kl1FwI6UzCP9FYi3r2\njQpIXPKOUZYPHFX0MusdrCQavcftUv1dGqW4PVnUdvpEhDDMxiB3kZio3Wao\nut6IgL2IEgB3BlU0spN0Egfl4CpJy4IeYP81bcTbu2mySTGsrUQwIp/XBmSU\nlOAzhVncu0ilNJGL1U6YsWcZWVg1kbHHTc3R77BzSrIGC90EAKkmx1BFCA0R\n6HvbA4/10OwLPRPWq9dtyLQI7rEqGy6YOpKtQczMD/0nLyTJEwA5FnAJ5L0n\nvILEyPJLXqzsaVVEJfEc8ntfkNHTLaBXuevJ/tCBbXo7dPziF8aCYtcQsh3y\nBuFjI8dvbqA1wghyI/gYWbhGCk3kSCDBFYmMzhlu0wqAR4Ku4mJ7r1O6i2Hm\nVh4d\r\n=48Ei\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPS3XnRxrHlwMe+60uSR1VcKcl0SdYgh3uTAohDxGXVQIgfADuwGWD35bSZl+cu8dyLBkvpQVzJHB9gxPi0d4G+fg="}]},"maintainers":[{"email":"dave@davecozens.com","name":"davecozens"},{"email":"itinfrastructure@alcumusgroup.com","name":"itinfrastructure_alcumusgroup"},{"email":"lauren.mae.welsh@gmail.com","name":"lwelsh"},{"email":"nia.evans@alcumusgroup.com","name":"nevans"},{"email":"simon.fuenffinger@alcumusgroup.com","name":"sfuenffinger"},{"email":"thor84no@gmail.com","name":"thor84no"},{"email":"michael.john.talbot@gmail.com","name":"whydoidoit"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.0.21-HF-563-2_1556547015539_0.8042434765039945"},"_hasShrinkwrap":true},"0.0.21-HF-563-3":{"name":"@alcumus/common-tools","version":"0.0.21-HF-563-3","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js'--fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js'","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"bitbucket":"^1.4.0","chai":"^4.2.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","mkdirp":"^0.5.1","nodemon":"^1.18.7","request-promise-native":"^1.0.5","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","stylelint":"^10.0.1","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","yargs":"^12.0.2"},"devDependencies":{"mocha":"^5.2.0","proxyquire":"^2.1.0","sinon":"^7.2.2"},"readme":"# Common Rules\n\nThis repository contains common automation tools to be shared among multiple projects, including tools for installing linting rules etc.\n\nAll changes to this project should be published under a new version number.\n\nTo use this project, first install using `npm i --save-dev alcumus-common-tools`, then use the provided binaries to install what you need. For example:\n\n```bash\nnpx common # install the most common options needed (eslint, .editorconfig, git hooks, etc.).\nnpx linting # install eslint.\nnpx linting react # install linters needed for react projects\nnpx editor-config # install just .editorconfig file.\nnpx git-hooks # NOT YET IMPLEMENTED: this will install the common git hooks to the project.\n```\n\n`npx common` forwards any parameters it receives to all of the other commands it triggers so `npx common eslint` will call `npx linting eslint`.\n\nThese commands should create very minimal files within your current project\n(a symlink where appropriate, a simple config file that just extends the ones from this project elsewhere).\nIn the case of extending config files for linters it also allows us to make project specific changes\nif appropriate; though this should be a last resort.\n\nOverall we should make our changes in just this project and use npm to upgrade to newer versions in other projects.\n\n## Using locally\n\nIn order to test locally, just clone the repo and link a test project to this as follows:\n\n```bash\nnpm link # execute in the root of this project to make npm associate this folder with the correct package.\ncd <project> # change to your test project.\nnpm link alcumus-common-tools # equivalent of npm i alcumus-common-tools, but creates symlinks in node_modules instead of installing.\n```\n\n## Publishing changes\n\nTo publish changes you've made (and tested locally), just run `npm run publish-new`. This will publish to the correct NPM registrar as\nwell as bumping the version number ready for the next change. For major version changes, first change `package.json` to have the correct\nversion number, then run `npm run publish-new`.\n\n## Publishing pre-relase\n\nTo publish a pre-release version of changes you've made (and tested locally), just run `npm run publish-pre-release`. This will publish a pre-release version to the correct npm repo using the\nversion defined in the package json and current branch number in the following format: version-branch-publishVersion (e.g. 0.1.10-HF-563-1) it will then increment\nthe publish version for each subsequent run of the pre-release job.\n\n## Using on Windows\n\nUsage on Windows should be the same as usage on Mac, except that it must be run as an administrator (run your IDE or CMD itself as admin).\n\n## Git hooks\n\nA set of git hooks will be installed in the current project when using `npx common`. They can also be specifically installed\nwith the `npx install-git-hooks` command. At present these git hooks provide the following functionality:\n\n* Warn when you check out a branch that does not follow the branch naming convention (<ticket>-<description>) or is specifically exempt (master).\n* Ensure that all commit messages are prefixed with the ticket number from the branch they were created on. I.e., if you commit with a message\n\"Fixing unit tests\" on branch \"HF-99-fixing-framework-bug\" your commit message will be automatically changed to \"HF-99: Fixing unit tests\".\n\nTo create more git hooks, simply create a new file with a file name matching any [git hook](https://githooks.com) file\nname (with .js after it) in `src/git-hooks` and run the install again. The files will be symlinked to `.git/hooks/`\nmaking sure they will be updated if the npm module is updated.\n\n## Pull-requests\n\nThis repository exposes a `npx pr` command that can be used to create pull requests in a standardised way that can be\nextended later. At present, this will ensure that the project passes linting before allowing a PR to be created. In the\nfuture this will be extended to include unit tests passing if present etc. In addition to this, a report can be\ngenerated that will be attached to the PR itself. At the moment this just compares linting pre-PR and post-PR, but can\nbe extended to show changes in code coverage, etc. In addition to this the command allows an easy way of inviting\npeople by name or by team. In order to create Bitbucket PRs, appropriate credentials must be available in `~/al-tools.credentials.json`.\nThe `~/al-tools.credentials.json` structure is as follows:\n\n> **Note:**\n> \n> In order to execute npx commands that are declared in this project from within this project, add `-p .` to the command\n> as in `npx -p . pr ...`\n\n```json\n{\n    \"bitbucket\": {\n        \"username\": \"<user>_alcumusgroup\",\n        \"password\": \"--\"\n    },\n    \"jira\": {\n        \"username\": \"<user>\",\n        \"password\": \"--\"\n    }\n}\n```\n\nThe JIRA username/password is required to get JIRA descriptions added to your PR, but is otherwise optional. JIRA\nunfortunately requires you to put your normal username and password in the config file, while Bitbucket allows you to\ncreate an app password (see [https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html]).\n\nExamples:\n\n```bash\nnpx pr -r thor # invite Thor to be a reviewer (this will be matched against both full name and username, case insensitive).\nnpx pr -r pippin mark # invite all of team Pippin and Mark Gabb to be a reviewer.\n```\n\nAny number of reviewers can be added and additional groupings can easily be added by changing the `teams.json` file in the S3 bucket `al-automation`.\n\nNOTE: Currently `npx pr` is a short form of `npx pr create`. Additional commands (such as `npx pr update` may be created\nin the future).\n\n`npx pr --help` should provide a good idea of the options available, though sensible defaults for merging to `master`\nare provided.\n\n### Future improvements\n\n* Add code coverage report to PR.\n* Add tasks based on reviewer checklist to PR.\n* Stop PR from being created if unit tests fail.\n* `npx pr update` - refresh generated content for PR based on changes, but leave other details as they were.\n\n## Making a new command available\n\n * Add a `<command>-cli.js` file that will handle CLI arguments. Bear in mind that your file may be called\n with arguments that belong to other CLI files so be careful about how you read them.\n * Separate the CLI logic from the business logic, business logic goes in `src`.\n * Add the name of your CLI file to `package.json` under the `bin` property.\n * If appropriate, add it to `common-cli.js`, which is executed for `npx common` as mentioned above.\n * Remember to publish the new version when you're done. (When the NPM repo is ready).\n","readmeFilename":"README.md","gitHead":"1e07a36ce18f730e17dcfa5724fd14e7d25c08d8","_id":"@alcumus/common-tools@0.0.21-HF-563-3","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"nevans","email":"nia.evans@alcumusgroup.com"},"dist":{"integrity":"sha512-oAK5KAexEKzhoxST8JPB3Ite/caYeC+Zjr/dVPb7xX56QQ7y/N69+qMY9ErsV1FvAH7GDpmgbLS8xmIh8niArw==","shasum":"347e3660db5d41ab9b36e819dd3eecbb2f167e44","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.0.21-HF-563-3.tgz","fileCount":40,"unpackedSize":321721,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxwZQCRA9TVsSAnZWagAAbSoP/3D52GcRiWC9d7oJiKav\nCtBuZoQ36c4xkUF5pEuwNbbkNbjHlicA2y5wz8hXd3WqKThZIMGDw98ipW5W\njtQEcJIaPrHXy8p1d5oaKQoYnSXpW4zefwKQSW+NlnsRAuhdG4ksdE6worG3\nfUkh5J4W8ULSWAcyMntSuMDPLDevTmSwBsu9YMzeLcL/5nxsSWKFN31iioat\ndH/iOL0FASW9d0owxAuiU3PNnubjjL9ScozyiyeWwiEFt9uLHyTNHfOwEzhh\n5WXYxbsrxJoZ5il8T0L/HChs2K4+CLuZubCqC4TKNbs1N45ISth5Wxph57pw\nC/v7Vp9V2MED3CIFcCyg19JJpF8VtSI+FAHf6mHLh05PW1u7NmO3SDznONZN\nIzUvMSKSmtvAiz5RtKIWd/pAAZcQTwwFN1pzNBSGpjBYgpSNqP1jIgY3aeTN\nmHD+MZcQffn3rFcBV+uJFMZH83Lzq3UCDC6LZNAI36ip7vBUNpptcccCHzYq\nKU89NrBQaPy8V6kKTWmHRnUGvzLL+ZCvcTtv9d8D8/fJqY+1mb/mVV1JunKo\nA0pvUToxJe0++HMV6RUqGgk/7taZQeClk/YcK1FJLmJjbsRhm2txJr7LdMdF\nzscSllHlVCEdatlRuUpu+xmnnJF7VNePdgRy7m9oMpLcGmW2D6k00K8/2mPK\nvw8M\r\n=4wNk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICxM2RpZ+cGPNDXsC2xPGhEMYvmT+NwDJUuSh3ypNkdAAiEAmL5LsSFmwG3S0VycKv0ZYTiibIeBVlEXgFNeM3qM/LA="}]},"maintainers":[{"email":"dave@davecozens.com","name":"davecozens"},{"email":"itinfrastructure@alcumusgroup.com","name":"itinfrastructure_alcumusgroup"},{"email":"lauren.mae.welsh@gmail.com","name":"lwelsh"},{"email":"nia.evans@alcumusgroup.com","name":"nevans"},{"email":"simon.fuenffinger@alcumusgroup.com","name":"sfuenffinger"},{"email":"thor84no@gmail.com","name":"thor84no"},{"email":"michael.john.talbot@gmail.com","name":"whydoidoit"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.0.21-HF-563-3_1556547152139_0.29883176906867126"},"_hasShrinkwrap":true},"0.0.21-HF-563-4":{"name":"@alcumus/common-tools","version":"0.0.21-HF-563-4","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js'--fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js'","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"bitbucket":"^1.4.0","chai":"^4.2.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","mkdirp":"^0.5.1","nodemon":"^1.18.7","request-promise-native":"^1.0.5","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","stylelint":"^10.0.1","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","yargs":"^12.0.2"},"devDependencies":{"mocha":"^5.2.0","proxyquire":"^2.1.0","sinon":"^7.2.2"},"readme":"# Common Rules\n\nThis repository contains common automation tools to be shared among multiple projects, including tools for installing linting rules etc.\n\nAll changes to this project should be published under a new version number.\n\nTo use this project, first install using `npm i --save-dev alcumus-common-tools`, then use the provided binaries to install what you need. For example:\n\n```bash\nnpx common # install the most common options needed (eslint, .editorconfig, git hooks, etc.).\nnpx linting # install eslint.\nnpx linting react # install linters needed for react projects\nnpx editor-config # install just .editorconfig file.\nnpx git-hooks # NOT YET IMPLEMENTED: this will install the common git hooks to the project.\n```\n\n`npx common` forwards any parameters it receives to all of the other commands it triggers so `npx common eslint` will call `npx linting eslint`.\n\nThese commands should create very minimal files within your current project\n(a symlink where appropriate, a simple config file that just extends the ones from this project elsewhere).\nIn the case of extending config files for linters it also allows us to make project specific changes\nif appropriate; though this should be a last resort.\n\nOverall we should make our changes in just this project and use npm to upgrade to newer versions in other projects.\n\n## Using locally\n\nIn order to test locally, just clone the repo and link a test project to this as follows:\n\n```bash\nnpm link # execute in the root of this project to make npm associate this folder with the correct package.\ncd <project> # change to your test project.\nnpm link alcumus-common-tools # equivalent of npm i alcumus-common-tools, but creates symlinks in node_modules instead of installing.\n```\n\n## Publishing changes\n\nTo publish changes you've made (and tested locally), just run `npm run publish-new`. This will publish to the correct NPM registrar as\nwell as bumping the version number ready for the next change. For major version changes, first change `package.json` to have the correct\nversion number, then run `npm run publish-new`.\n\n## Publishing pre-relase\n\nTo publish a pre-release version of changes you've made (and tested locally), just run `npm run publish-pre-release`. This will publish a pre-release version to the correct npm repo using the\nversion defined in the package json and current branch number in the following format: version-branch-publishVersion (e.g. 0.1.10-HF-563-1) it will then increment\nthe publish version for each subsequent run of the pre-release job.\n\n## Using on Windows\n\nUsage on Windows should be the same as usage on Mac, except that it must be run as an administrator (run your IDE or CMD itself as admin).\n\n## Git hooks\n\nA set of git hooks will be installed in the current project when using `npx common`. They can also be specifically installed\nwith the `npx install-git-hooks` command. At present these git hooks provide the following functionality:\n\n* Warn when you check out a branch that does not follow the branch naming convention (<ticket>-<description>) or is specifically exempt (master).\n* Ensure that all commit messages are prefixed with the ticket number from the branch they were created on. I.e., if you commit with a message\n\"Fixing unit tests\" on branch \"HF-99-fixing-framework-bug\" your commit message will be automatically changed to \"HF-99: Fixing unit tests\".\n\nTo create more git hooks, simply create a new file with a file name matching any [git hook](https://githooks.com) file\nname (with .js after it) in `src/git-hooks` and run the install again. The files will be symlinked to `.git/hooks/`\nmaking sure they will be updated if the npm module is updated.\n\n## Pull-requests\n\nThis repository exposes a `npx pr` command that can be used to create pull requests in a standardised way that can be\nextended later. At present, this will ensure that the project passes linting before allowing a PR to be created. In the\nfuture this will be extended to include unit tests passing if present etc. In addition to this, a report can be\ngenerated that will be attached to the PR itself. At the moment this just compares linting pre-PR and post-PR, but can\nbe extended to show changes in code coverage, etc. In addition to this the command allows an easy way of inviting\npeople by name or by team. In order to create Bitbucket PRs, appropriate credentials must be available in `~/al-tools.credentials.json`.\nThe `~/al-tools.credentials.json` structure is as follows:\n\n> **Note:**\n> \n> In order to execute npx commands that are declared in this project from within this project, add `-p .` to the command\n> as in `npx -p . pr ...`\n\n```json\n{\n    \"bitbucket\": {\n        \"username\": \"<user>_alcumusgroup\",\n        \"password\": \"--\"\n    },\n    \"jira\": {\n        \"username\": \"<user>\",\n        \"password\": \"--\"\n    }\n}\n```\n\nThe JIRA username/password is required to get JIRA descriptions added to your PR, but is otherwise optional. JIRA\nunfortunately requires you to put your normal username and password in the config file, while Bitbucket allows you to\ncreate an app password (see [https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html]).\n\nExamples:\n\n```bash\nnpx pr -r thor # invite Thor to be a reviewer (this will be matched against both full name and username, case insensitive).\nnpx pr -r pippin mark # invite all of team Pippin and Mark Gabb to be a reviewer.\n```\n\nAny number of reviewers can be added and additional groupings can easily be added by changing the `teams.json` file in the S3 bucket `al-automation`.\n\nNOTE: Currently `npx pr` is a short form of `npx pr create`. Additional commands (such as `npx pr update` may be created\nin the future).\n\n`npx pr --help` should provide a good idea of the options available, though sensible defaults for merging to `master`\nare provided.\n\n### Future improvements\n\n* Add code coverage report to PR.\n* Add tasks based on reviewer checklist to PR.\n* Stop PR from being created if unit tests fail.\n* `npx pr update` - refresh generated content for PR based on changes, but leave other details as they were.\n\n## Making a new command available\n\n * Add a `<command>-cli.js` file that will handle CLI arguments. Bear in mind that your file may be called\n with arguments that belong to other CLI files so be careful about how you read them.\n * Separate the CLI logic from the business logic, business logic goes in `src`.\n * Add the name of your CLI file to `package.json` under the `bin` property.\n * If appropriate, add it to `common-cli.js`, which is executed for `npx common` as mentioned above.\n * Remember to publish the new version when you're done. (When the NPM repo is ready).\n","readmeFilename":"README.md","gitHead":"7ee83abd33f1a2fd326d5c8adaba5ca85ffb24b2","_id":"@alcumus/common-tools@0.0.21-HF-563-4","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"nevans","email":"nia.evans@alcumusgroup.com"},"dist":{"integrity":"sha512-/EQUVuApH/T8PZVKixcjEB7eMzl+2hSXAswsr59RcjBlAhMjSHBwtjSZJfQ5oOUmj67pqkBScYRTjY6wkN9XTw==","shasum":"0a7b97009981dead6a997492fccea148f19f3340","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.0.21-HF-563-4.tgz","fileCount":40,"unpackedSize":321672,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxwbiCRA9TVsSAnZWagAAyOQP/Rx/HFNWVUzXSFXkGeAw\n1EHUPioBxGsmhnrx/YGmzjrfpMcZ0dcbjMuCJYkY5yeB+ja+LxZy1wKto+1W\nbp7pkBHyvSbJwC1ajirv1Rw5ILx+sM9bJWJXP97bzUlSJPGarHVGV/xaNnfa\n6hzVuvWpU/R4d23HNEGQcaVQE6q2mjwDc2d9HVTyGRkWmvxuJotSmMg0658a\nCLeTg/J2tBJNHMRXUnUBRDuBy4GZpIjJPCdNEuf8IQZdYsD0jnAHzlnAIM+D\n+qBMYpFEwJzletOZ35d7n8bFOWA7RDTFjeLqZcsU6tmjow9qzMQrk0u4u2ar\nWXXA9gL1wFi1mxGUvSqZMkJi3C2rStn68IPJiJMdoRv+OBpix/yE88O6wf4J\nzEQ/H1se6Rc6MVyZ97R1AEW81WrJEp08/6w8BKk5wAVNBarmHPRXQyWFD2ZE\nOPp3f6ovdvseEKHdRXm/JRyUyQFlKi4UANDDHhRyjWn+dciKHRA4UMa/CCJz\niO5aww86nSsXDEXRQtL2EPb1+LOg0Bb8F919E7u6JcRA38jSttyiTRznGfRS\nWlLt1UmlDZVSqmz+ORvRnELIynEufLojche+Dfv039XSrFvekb1IKlDGflUv\noquhHOW3VMcamNjJEAlhaD/sOH8ueXctlHZcbq4hDdOXnZX18OUf5f3rFsWR\n5NP3\r\n=3LeM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEDggq+czpK+G29z5F6OtKXNztC3KFePH7Z1vUfhkOi/AiBmOxVoDUQhK0d6oPR4jceAoeBcvVuGpMyfXQgVGVj33A=="}]},"maintainers":[{"email":"dave@davecozens.com","name":"davecozens"},{"email":"itinfrastructure@alcumusgroup.com","name":"itinfrastructure_alcumusgroup"},{"email":"lauren.mae.welsh@gmail.com","name":"lwelsh"},{"email":"nia.evans@alcumusgroup.com","name":"nevans"},{"email":"simon.fuenffinger@alcumusgroup.com","name":"sfuenffinger"},{"email":"thor84no@gmail.com","name":"thor84no"},{"email":"michael.john.talbot@gmail.com","name":"whydoidoit"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.0.21-HF-563-4_1556547298149_0.05519829212746297"},"_hasShrinkwrap":true},"0.0.21-HF-563-5":{"name":"@alcumus/common-tools","version":"0.0.21-HF-563-5","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js'--fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js'","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"bitbucket":"^1.4.0","chai":"^4.2.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","mkdirp":"^0.5.1","nodemon":"^1.18.7","request-promise-native":"^1.0.5","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","stylelint":"^10.0.1","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","yargs":"^12.0.2"},"devDependencies":{"mocha":"^5.2.0","proxyquire":"^2.1.0","sinon":"^7.2.2"},"readme":"# Common Rules\n\nThis repository contains common automation tools to be shared among multiple projects, including tools for installing linting rules etc.\n\nAll changes to this project should be published under a new version number.\n\nTo use this project, first install using `npm i --save-dev alcumus-common-tools`, then use the provided binaries to install what you need. For example:\n\n```bash\nnpx common # install the most common options needed (eslint, .editorconfig, git hooks, etc.).\nnpx linting # install eslint.\nnpx linting react # install linters needed for react projects\nnpx editor-config # install just .editorconfig file.\nnpx git-hooks # NOT YET IMPLEMENTED: this will install the common git hooks to the project.\n```\n\n`npx common` forwards any parameters it receives to all of the other commands it triggers so `npx common eslint` will call `npx linting eslint`.\n\nThese commands should create very minimal files within your current project\n(a symlink where appropriate, a simple config file that just extends the ones from this project elsewhere).\nIn the case of extending config files for linters it also allows us to make project specific changes\nif appropriate; though this should be a last resort.\n\nOverall we should make our changes in just this project and use npm to upgrade to newer versions in other projects.\n\n## Using locally\n\nIn order to test locally, just clone the repo and link a test project to this as follows:\n\n```bash\nnpm link # execute in the root of this project to make npm associate this folder with the correct package.\ncd <project> # change to your test project.\nnpm link alcumus-common-tools # equivalent of npm i alcumus-common-tools, but creates symlinks in node_modules instead of installing.\n```\n\n## Publishing changes\n\nTo publish changes you've made (and tested locally), just run `npm run publish-new`. This will publish to the correct NPM registrar as\nwell as bumping the version number ready for the next change. For major version changes, first change `package.json` to have the correct\nversion number, then run `npm run publish-new`.\n\n## Publishing pre-relase\n\nTo publish a pre-release version of changes you've made (and tested locally), just run `npm run publish-pre-release`. This will publish a pre-release version to the correct npm repo using the\nversion defined in the package json and current branch number in the following format: version-branch-publishVersion (e.g. 0.1.10-HF-563-1) it will then increment\nthe publish version for each subsequent run of the pre-release job.\n\n## Using on Windows\n\nUsage on Windows should be the same as usage on Mac, except that it must be run as an administrator (run your IDE or CMD itself as admin).\n\n## Git hooks\n\nA set of git hooks will be installed in the current project when using `npx common`. They can also be specifically installed\nwith the `npx install-git-hooks` command. At present these git hooks provide the following functionality:\n\n* Warn when you check out a branch that does not follow the branch naming convention (<ticket>-<description>) or is specifically exempt (master).\n* Ensure that all commit messages are prefixed with the ticket number from the branch they were created on. I.e., if you commit with a message\n\"Fixing unit tests\" on branch \"HF-99-fixing-framework-bug\" your commit message will be automatically changed to \"HF-99: Fixing unit tests\".\n\nTo create more git hooks, simply create a new file with a file name matching any [git hook](https://githooks.com) file\nname (with .js after it) in `src/git-hooks` and run the install again. The files will be symlinked to `.git/hooks/`\nmaking sure they will be updated if the npm module is updated.\n\n## Pull-requests\n\nThis repository exposes a `npx pr` command that can be used to create pull requests in a standardised way that can be\nextended later. At present, this will ensure that the project passes linting before allowing a PR to be created. In the\nfuture this will be extended to include unit tests passing if present etc. In addition to this, a report can be\ngenerated that will be attached to the PR itself. At the moment this just compares linting pre-PR and post-PR, but can\nbe extended to show changes in code coverage, etc. In addition to this the command allows an easy way of inviting\npeople by name or by team. In order to create Bitbucket PRs, appropriate credentials must be available in `~/al-tools.credentials.json`.\nThe `~/al-tools.credentials.json` structure is as follows:\n\n> **Note:**\n> \n> In order to execute npx commands that are declared in this project from within this project, add `-p .` to the command\n> as in `npx -p . pr ...`\n\n```json\n{\n    \"bitbucket\": {\n        \"username\": \"<user>_alcumusgroup\",\n        \"password\": \"--\"\n    },\n    \"jira\": {\n        \"username\": \"<user>\",\n        \"password\": \"--\"\n    }\n}\n```\n\nThe JIRA username/password is required to get JIRA descriptions added to your PR, but is otherwise optional. JIRA\nunfortunately requires you to put your normal username and password in the config file, while Bitbucket allows you to\ncreate an app password (see [https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html]).\n\nExamples:\n\n```bash\nnpx pr -r thor # invite Thor to be a reviewer (this will be matched against both full name and username, case insensitive).\nnpx pr -r pippin mark # invite all of team Pippin and Mark Gabb to be a reviewer.\n```\n\nAny number of reviewers can be added and additional groupings can easily be added by changing the `teams.json` file in the S3 bucket `al-automation`.\n\nNOTE: Currently `npx pr` is a short form of `npx pr create`. Additional commands (such as `npx pr update` may be created\nin the future).\n\n`npx pr --help` should provide a good idea of the options available, though sensible defaults for merging to `master`\nare provided.\n\n### Future improvements\n\n* Add code coverage report to PR.\n* Add tasks based on reviewer checklist to PR.\n* Stop PR from being created if unit tests fail.\n* `npx pr update` - refresh generated content for PR based on changes, but leave other details as they were.\n\n## Making a new command available\n\n * Add a `<command>-cli.js` file that will handle CLI arguments. Bear in mind that your file may be called\n with arguments that belong to other CLI files so be careful about how you read them.\n * Separate the CLI logic from the business logic, business logic goes in `src`.\n * Add the name of your CLI file to `package.json` under the `bin` property.\n * If appropriate, add it to `common-cli.js`, which is executed for `npx common` as mentioned above.\n * Remember to publish the new version when you're done. (When the NPM repo is ready).\n","readmeFilename":"README.md","gitHead":"84142ed98bdc5c74e4fe8227a4dc9bd68bf0f032","_id":"@alcumus/common-tools@0.0.21-HF-563-5","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"nevans","email":"nia.evans@alcumusgroup.com"},"dist":{"integrity":"sha512-+paACxYMwImnOz80qq4tzNyTnWJXd1Ehd+v0j9OJMo3+vGd0Bt6rOCsXvRMp2iAUjxVEvNKNzwGbIzGvCTn8NA==","shasum":"535fc0a420227c3b41594ad571bbebae077056b1","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.0.21-HF-563-5.tgz","fileCount":40,"unpackedSize":321815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyWQOCRA9TVsSAnZWagAAd4wP/0Dfi/8UAv7mB+fxWtPK\nRWgn4DwTqPeBrAyh+225iv1gfp2EzK2Iu3y8s4hWh2275zAVVj3EzpVqTbts\nbJhuKFKH+kFtNDmIBG0rbC8z8mqbQr2SPO9NJwODjSqRX728diNuX6grY5Mo\nZghXsrikNu8neT3vwjFfSZyZp8SozjsJNLHotuD/AO5MGeNkA39k8n9HpT1W\n/jfiD6KL7ALhFLjIaRX0wCw7aMIDGVmNs5uaoIzRYRN8s1G5hkY+epE2jWX7\nc/oix+xeF2jSGHy8ME0Y0wzGPDleS14Fce3+aVMH8Lp6gM6DgSlEJIFhm3RS\n6bl1jO9L1ZJuubg8T4YbbgsYkwwy03j0/x4PxNjHIABZYn4WQBvrYk5GsYEp\nM3NNIwhsftQVvLcOOQCKr1YRKMEJDB58KnmPxiwK1WpYov4MVJsUrBQvS5mp\n7RSVZ6I0K8Y7SL6o/qatTsem1/kSr31I1VlvgnK0HaFcvC8prv/xb3lcsd85\nclkf1tBH1HGLf3dSyPvUf9bb2wPofRWvNvivxlhzfvg76AvYiOT7qvuUhLCG\nv4sWu7POLGL+QnGb6afm5aN8jlrqRgdn7sH/EwIpEqunof1fW7qWaacANqao\njj/nLn3nfpoH6EC3HPI/icq8bkVRhn8jnaSh4JS75ArlnVPLq2+MjSHszfvb\nv3L2\r\n=x6TD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICNfMl7XoKq4eFcsFh64WUB3Lf0dML4n6pDSbEPwWREDAiAXL9Ac3mQKTf1jrTnkezpwMulXST2xe9WmwZlKOQ/YWA=="}]},"maintainers":[{"email":"dave@davecozens.com","name":"davecozens"},{"email":"itinfrastructure@alcumusgroup.com","name":"itinfrastructure_alcumusgroup"},{"email":"lauren.mae.welsh@gmail.com","name":"lwelsh"},{"email":"nia.evans@alcumusgroup.com","name":"nevans"},{"email":"simon.fuenffinger@alcumusgroup.com","name":"sfuenffinger"},{"email":"thor84no@gmail.com","name":"thor84no"},{"email":"michael.john.talbot@gmail.com","name":"whydoidoit"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.0.21-HF-563-5_1556702221455_0.7579610956028797"},"_hasShrinkwrap":true},"0.0.21-HF-563-6":{"name":"@alcumus/common-tools","version":"0.0.21-HF-563-6","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js'--fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js'","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"bitbucket":"^1.4.0","chai":"^4.2.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","mkdirp":"^0.5.1","nodemon":"^1.18.7","request-promise-native":"^1.0.5","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","stylelint":"^10.0.1","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","yargs":"^12.0.2"},"devDependencies":{"mocha":"^5.2.0","proxyquire":"^2.1.0","sinon":"^7.2.2"},"readme":"# Common Rules\n\nThis repository contains common automation tools to be shared among multiple projects, including tools for installing linting rules etc.\n\nAll changes to this project should be published under a new version number.\n\nTo use this project, first install using `npm i --save-dev alcumus-common-tools`, then use the provided binaries to install what you need. For example:\n\n```bash\nnpx common # install the most common options needed (eslint, .editorconfig, git hooks, etc.).\nnpx linting # install eslint.\nnpx linting react # install linters needed for react projects\nnpx editor-config # install just .editorconfig file.\nnpx git-hooks # NOT YET IMPLEMENTED: this will install the common git hooks to the project.\n```\n\n`npx common` forwards any parameters it receives to all of the other commands it triggers so `npx common eslint` will call `npx linting eslint`.\n\nThese commands should create very minimal files within your current project\n(a symlink where appropriate, a simple config file that just extends the ones from this project elsewhere).\nIn the case of extending config files for linters it also allows us to make project specific changes\nif appropriate; though this should be a last resort.\n\nOverall we should make our changes in just this project and use npm to upgrade to newer versions in other projects.\n\n## Using locally\n\nIn order to test locally, just clone the repo and link a test project to this as follows:\n\n```bash\nnpm link # execute in the root of this project to make npm associate this folder with the correct package.\ncd <project> # change to your test project.\nnpm link alcumus-common-tools # equivalent of npm i alcumus-common-tools, but creates symlinks in node_modules instead of installing.\n```\n\n## Publishing changes\n\nTo publish changes you've made (and tested locally), just run `npm run publish-new`. This will publish to the correct NPM registrar as\nwell as bumping the version number ready for the next change. For major version changes, first change `package.json` to have the correct\nversion number, then run `npm run publish-new`.\n\n## Publishing pre-relase\n\nTo publish a pre-release version of changes you've made (and tested locally), just run `npm run publish-pre-release`. This will publish a pre-release version to the correct npm repo using the\nversion defined in the package json and current branch number in the following format: version-branch-publishVersion (e.g. 0.1.10-HF-563-1) it will then increment\nthe publish version for each subsequent run of the pre-release job.\n\n## Using on Windows\n\nUsage on Windows should be the same as usage on Mac, except that it must be run as an administrator (run your IDE or CMD itself as admin).\n\n## Git hooks\n\nA set of git hooks will be installed in the current project when using `npx common`. They can also be specifically installed\nwith the `npx install-git-hooks` command. At present these git hooks provide the following functionality:\n\n* Warn when you check out a branch that does not follow the branch naming convention (<ticket>-<description>) or is specifically exempt (master).\n* Ensure that all commit messages are prefixed with the ticket number from the branch they were created on. I.e., if you commit with a message\n\"Fixing unit tests\" on branch \"HF-99-fixing-framework-bug\" your commit message will be automatically changed to \"HF-99: Fixing unit tests\".\n\nTo create more git hooks, simply create a new file with a file name matching any [git hook](https://githooks.com) file\nname (with .js after it) in `src/git-hooks` and run the install again. The files will be symlinked to `.git/hooks/`\nmaking sure they will be updated if the npm module is updated.\n\n## Pull-requests\n\nThis repository exposes a `npx pr` command that can be used to create pull requests in a standardised way that can be\nextended later. At present, this will ensure that the project passes linting before allowing a PR to be created. In the\nfuture this will be extended to include unit tests passing if present etc. In addition to this, a report can be\ngenerated that will be attached to the PR itself. At the moment this just compares linting pre-PR and post-PR, but can\nbe extended to show changes in code coverage, etc. In addition to this the command allows an easy way of inviting\npeople by name or by team. In order to create Bitbucket PRs, appropriate credentials must be available in `~/al-tools.credentials.json`.\nThe `~/al-tools.credentials.json` structure is as follows:\n\n> **Note:**\n> \n> In order to execute npx commands that are declared in this project from within this project, add `-p .` to the command\n> as in `npx -p . pr ...`\n\n```json\n{\n    \"bitbucket\": {\n        \"username\": \"<user>_alcumusgroup\",\n        \"password\": \"--\"\n    },\n    \"jira\": {\n        \"username\": \"<user>\",\n        \"password\": \"--\"\n    }\n}\n```\n\nThe JIRA username/password is required to get JIRA descriptions added to your PR, but is otherwise optional. JIRA\nunfortunately requires you to put your normal username and password in the config file, while Bitbucket allows you to\ncreate an app password (see [https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html]).\n\nExamples:\n\n```bash\nnpx pr -r thor # invite Thor to be a reviewer (this will be matched against both full name and username, case insensitive).\nnpx pr -r pippin mark # invite all of team Pippin and Mark Gabb to be a reviewer.\n```\n\nAny number of reviewers can be added and additional groupings can easily be added by changing the `teams.json` file in the S3 bucket `al-automation`.\n\nNOTE: Currently `npx pr` is a short form of `npx pr create`. Additional commands (such as `npx pr update` may be created\nin the future).\n\n`npx pr --help` should provide a good idea of the options available, though sensible defaults for merging to `master`\nare provided.\n\n### Future improvements\n\n* Add code coverage report to PR.\n* Add tasks based on reviewer checklist to PR.\n* Stop PR from being created if unit tests fail.\n* `npx pr update` - refresh generated content for PR based on changes, but leave other details as they were.\n\n## Making a new command available\n\n * Add a `<command>-cli.js` file that will handle CLI arguments. Bear in mind that your file may be called\n with arguments that belong to other CLI files so be careful about how you read them.\n * Separate the CLI logic from the business logic, business logic goes in `src`.\n * Add the name of your CLI file to `package.json` under the `bin` property.\n * If appropriate, add it to `common-cli.js`, which is executed for `npx common` as mentioned above.\n * Remember to publish the new version when you're done. (When the NPM repo is ready).\n","readmeFilename":"README.md","gitHead":"25187d16802ccd5d31e448c4c1335a95feecac5b","_id":"@alcumus/common-tools@0.0.21-HF-563-6","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"nevans","email":"nia.evans@alcumusgroup.com"},"dist":{"integrity":"sha512-gUwW7pNufhk3TEuhPSASrHhl1n44sn0Lprt8oJBvc0y/fAPLqDjvgNASG0d66l5+k8X22Q7jM46YkbdfNjJUqw==","shasum":"f908efe26afbc1b5f440cbfb94bbc60dced9ebd2","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.0.21-HF-563-6.tgz","fileCount":40,"unpackedSize":321815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyWQvCRA9TVsSAnZWagAAH4oQAITCZAR6LORzxniVyDdm\nmrymirBnn3tx9feSTq4+2+tZWt3AzsmnJCjStoKe4WldsaQWQgpzTLZS04Bo\nq/b4FsocbhKoEoQq1cApBgSTwogIBslOBLPVn88mQqCIYOuV+vHs+m2MBUSv\nV4vQ+d3u4KmDWXsdOMkfl2xGmhXGHju6rXrNQoKUbLYK7BizteqDW4Nd/WBL\nrE0Ea95r2vH9OgY3R0J6bg7BXmpNjISTtQhJ0XaxZMAzcNbHTK0GEWLkSILm\nZo/TySWGZflpt59RzjORs246fjm41PCs3od+l7djYMuPWNHyd0AVvd2U8Upp\nKFFGAV5V52F8A7Qfladur0X21/nduGeeT6ceD0YUzMX5lAByC5UX1CJotJpg\nmiF4wHjgr5v08MBi/wfp4A2bkZmpZsIYEY9p4HTjeU5ZaUqORAvAVkZpGmX0\nsBbVW8QAXNxi8i98Z9uQiOgDXIRu4ACrb/WYpk5xETvTtVN84OW+fZTh+Sjn\nCsoBqi1wKbcVHBptplfx61EPwHyMLlm104j0D9/GXlaGjPpzHfbFw50HDIbf\nNNstAcPAXV2zT0Kno8AN/1SopBYPZoaJ6z1naH2DMCU3f9faIOkBY2yhGdkJ\nYE9aYJQoccA2qUCnOu9Zx+pQ8v6jPDBuq9ItXG3LPH+/ZeFlsT4xLJQ4fpdu\nQLop\r\n=NFNA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBQsRe5UKf3/JbCj8d/KyprqJqhCaIWuVFzNu9L6S7/bAiBzmsgdmSUN+vjRx6cgnjMBgKqfgLNgVgdF9JtUQpMo8g=="}]},"maintainers":[{"email":"dave@davecozens.com","name":"davecozens"},{"email":"itinfrastructure@alcumusgroup.com","name":"itinfrastructure_alcumusgroup"},{"email":"lauren.mae.welsh@gmail.com","name":"lwelsh"},{"email":"nia.evans@alcumusgroup.com","name":"nevans"},{"email":"simon.fuenffinger@alcumusgroup.com","name":"sfuenffinger"},{"email":"thor84no@gmail.com","name":"thor84no"},{"email":"michael.john.talbot@gmail.com","name":"whydoidoit"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.0.21-HF-563-6_1556702254549_0.893964143829771"},"_hasShrinkwrap":true},"0.0.21-HF-563-26":{"name":"@alcumus/common-tools","version":"0.0.21-HF-563-26","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js'--fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js'","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"bitbucket":"^1.4.0","chai":"^4.2.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","mkdirp":"^0.5.1","nodemon":"^1.18.7","request-promise-native":"^1.0.5","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","stylelint":"^10.0.1","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","yargs":"^12.0.2"},"devDependencies":{"mocha":"^5.2.0","proxyquire":"^2.1.0","sinon":"^7.2.2"},"readme":"# Common Rules\n\nThis repository contains common automation tools to be shared among multiple projects, including tools for installing linting rules etc.\n\nAll changes to this project should be published under a new version number.\n\nTo use this project, first install using `npm i --save-dev alcumus-common-tools`, then use the provided binaries to install what you need. For example:\n\n```bash\nnpx common # install the most common options needed (eslint, .editorconfig, git hooks, etc.).\nnpx linting # install eslint.\nnpx linting react # install linters needed for react projects\nnpx editor-config # install just .editorconfig file.\nnpx git-hooks # NOT YET IMPLEMENTED: this will install the common git hooks to the project.\n```\n\n`npx common` forwards any parameters it receives to all of the other commands it triggers so `npx common eslint` will call `npx linting eslint`.\n\nThese commands should create very minimal files within your current project\n(a symlink where appropriate, a simple config file that just extends the ones from this project elsewhere).\nIn the case of extending config files for linters it also allows us to make project specific changes\nif appropriate; though this should be a last resort.\n\nOverall we should make our changes in just this project and use npm to upgrade to newer versions in other projects.\n\n## Using locally\n\nIn order to test locally, just clone the repo and link a test project to this as follows:\n\n```bash\nnpm link # execute in the root of this project to make npm associate this folder with the correct package.\ncd <project> # change to your test project.\nnpm link alcumus-common-tools # equivalent of npm i alcumus-common-tools, but creates symlinks in node_modules instead of installing.\n```\n\n## Publishing changes\n\nTo publish changes you've made (and tested locally), just run `npm run publish-new`. This will publish to the correct NPM registrar as\nwell as bumping the version number ready for the next change. For major version changes, first change `package.json` to have the correct\nversion number, then run `npm run publish-new`.\n\n## Publishing pre-relase\n\nTo publish a pre-release version of changes you've made (and tested locally), just run `npm run publish-pre-release`. This will publish a pre-release version to the correct npm repo using the\nversion defined in the package json and current branch number in the following format: version-branch-publishVersion (e.g. 0.1.10-HF-563-1) it will then increment\nthe publish version for each subsequent run of the pre-release job.\n\n## Using on Windows\n\nUsage on Windows should be the same as usage on Mac, except that it must be run as an administrator (run your IDE or CMD itself as admin).\n\n## Git hooks\n\nA set of git hooks will be installed in the current project when using `npx common`. They can also be specifically installed\nwith the `npx install-git-hooks` command. At present these git hooks provide the following functionality:\n\n* Warn when you check out a branch that does not follow the branch naming convention (<ticket>-<description>) or is specifically exempt (master).\n* Ensure that all commit messages are prefixed with the ticket number from the branch they were created on. I.e., if you commit with a message\n\"Fixing unit tests\" on branch \"HF-99-fixing-framework-bug\" your commit message will be automatically changed to \"HF-99: Fixing unit tests\".\n\nTo create more git hooks, simply create a new file with a file name matching any [git hook](https://githooks.com) file\nname (with .js after it) in `src/git-hooks` and run the install again. The files will be symlinked to `.git/hooks/`\nmaking sure they will be updated if the npm module is updated.\n\n## Pull-requests\n\nThis repository exposes a `npx pr` command that can be used to create pull requests in a standardised way that can be\nextended later. At present, this will ensure that the project passes linting before allowing a PR to be created. In the\nfuture this will be extended to include unit tests passing if present etc. In addition to this, a report can be\ngenerated that will be attached to the PR itself. At the moment this just compares linting pre-PR and post-PR, but can\nbe extended to show changes in code coverage, etc. In addition to this the command allows an easy way of inviting\npeople by name or by team. In order to create Bitbucket PRs, appropriate credentials must be available in `~/al-tools.credentials.json`.\nThe `~/al-tools.credentials.json` structure is as follows:\n\n> **Note:**\n> \n> In order to execute npx commands that are declared in this project from within this project, add `-p .` to the command\n> as in `npx -p . pr ...`\n\n```json\n{\n    \"bitbucket\": {\n        \"username\": \"<user>_alcumusgroup\",\n        \"password\": \"--\"\n    },\n    \"jira\": {\n        \"username\": \"<user>\",\n        \"password\": \"--\"\n    }\n}\n```\n\nThe JIRA username/password is required to get JIRA descriptions added to your PR, but is otherwise optional. JIRA\nunfortunately requires you to put your normal username and password in the config file, while Bitbucket allows you to\ncreate an app password (see [https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html]).\n\nExamples:\n\n```bash\nnpx pr -r thor # invite Thor to be a reviewer (this will be matched against both full name and username, case insensitive).\nnpx pr -r pippin mark # invite all of team Pippin and Mark Gabb to be a reviewer.\n```\n\nAny number of reviewers can be added and additional groupings can easily be added by changing the `teams.json` file in the S3 bucket `al-automation`.\n\nNOTE: Currently `npx pr` is a short form of `npx pr create`. Additional commands (such as `npx pr update` may be created\nin the future).\n\n`npx pr --help` should provide a good idea of the options available, though sensible defaults for merging to `master`\nare provided.\n\n### Future improvements\n\n* Add code coverage report to PR.\n* Add tasks based on reviewer checklist to PR.\n* Stop PR from being created if unit tests fail.\n* `npx pr update` - refresh generated content for PR based on changes, but leave other details as they were.\n\n## Making a new command available\n\n * Add a `<command>-cli.js` file that will handle CLI arguments. Bear in mind that your file may be called\n with arguments that belong to other CLI files so be careful about how you read them.\n * Separate the CLI logic from the business logic, business logic goes in `src`.\n * Add the name of your CLI file to `package.json` under the `bin` property.\n * If appropriate, add it to `common-cli.js`, which is executed for `npx common` as mentioned above.\n * Remember to publish the new version when you're done. (When the NPM repo is ready).\n","readmeFilename":"README.md","gitHead":"e74e264c8aac20e56f1f4595e74f12e85d94c803","_id":"@alcumus/common-tools@0.0.21-HF-563-26","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"nevans","email":"nia.evans@alcumusgroup.com"},"dist":{"integrity":"sha512-Onirq0ZBBj51plPxUjJcF8vfIVDf1um4A0WED1/FDCWxDNvqTJLymQShNbCXs6L2cOwxDE4FWFulrPyhcg1X5w==","shasum":"6a32203fdfbaae02be1c5974ebfaeda943087ba0","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.0.21-HF-563-26.tgz","fileCount":40,"unpackedSize":321816,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyWROCRA9TVsSAnZWagAA9X8P/3LfR+8PyQ0sMqr6hBlt\nYdpEDSpKgT/7FSKrwRkLvGjuzD3AUWkZomirM+JYRALljnCMhtbIEzbPYerp\nfB2RFbaPKF0ysBSmISW7Fhkg4lxVHIDGV19S6/BnHTeUlHSrzUuoG1y2L5dJ\nQSQgPnOoRN9V6f1LJxtS4kBufrQ3phC5PZK11mMKwL/8Nrbcwd+resh3QtSN\nJhMnVE84P8hUw36UctpkzMYaYdw4I6gKtB6F00E9admaUHJK0ozJAGc1/+eN\nv1Sgbspa/fRjQ7NI51U8qNX31fHpPHvwhb8w+mZ3xOTJxPXxPHv1m9U8cdQ/\n3PsskpLywjQzrgZhJ2Jz4UAR9+MXuwf1NHU6Z3iILalnPnArcJxiGjPE8Oz6\n9ScpYCMdDYV53KsztMK4fMXaP7JWVOqKWpET92GcatdSVyJIg4GswESsy4mn\nL1hqouEvsefpZjznjyKGvMtewzt1F5Fqfzur+x2X3ZXlzVYP92oLT0qhzG0p\nxraMaDIeE1V+Jb9LyvGg4qOsLxW2PzP28kTm1rz7g5bLvSFDLPSJIoFO6vov\nydNNK1kBM39kabidJinmgf/lAFy/se5O04z+CXbx3WyTzJPZcY62T/VupG64\n9LEy+3gaRAocuhE0DNoCJtDbz4jJi6z3f0ytLdCIQ70ENouivzVYGdpZpU9Z\nBJ/C\r\n=b74M\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA6x5vr2yN9z3AqeMs78YUmzGo/xwfkHG5EAEUFhjvKoAiEA+wGQ3e6qc4DksFTteFSa2ODmYf8EXok+7SoKp13TmRA="}]},"maintainers":[{"email":"dave@davecozens.com","name":"davecozens"},{"email":"itinfrastructure@alcumusgroup.com","name":"itinfrastructure_alcumusgroup"},{"email":"lauren.mae.welsh@gmail.com","name":"lwelsh"},{"email":"nia.evans@alcumusgroup.com","name":"nevans"},{"email":"simon.fuenffinger@alcumusgroup.com","name":"sfuenffinger"},{"email":"thor84no@gmail.com","name":"thor84no"},{"email":"michael.john.talbot@gmail.com","name":"whydoidoit"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.0.21-HF-563-26_1556702285472_0.19274497353948683"},"_hasShrinkwrap":true},"0.1.0":{"name":"@alcumus/common-tools","version":"0.1.0","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js'--fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js'","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"bitbucket":"^1.4.0","chai":"^4.2.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","mkdirp":"^0.5.1","nodemon":"^1.18.7","request-promise-native":"^1.0.5","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","stylelint":"^10.0.1","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","yargs":"^12.0.2"},"devDependencies":{"mocha":"^5.2.0","proxyquire":"^2.1.0","sinon":"^7.2.2"},"gitHead":"002f67e05d63f683bcc405e5613efe85d75ad04e","_id":"@alcumus/common-tools@0.1.0","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"nevans","email":"nia.evans@alcumusgroup.com"},"dist":{"integrity":"sha512-in3zY4fao/YKVxqKRSmhjZfXFPbSMEBiB41hnUDbiEXtrrRe9Nf4sap06indgDr7b7QckBotqIs/TVgbVBV3TA==","shasum":"562056eca87122057437ee6451faf8f35abf0165","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.1.0.tgz","fileCount":40,"unpackedSize":321805,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyWt9CRA9TVsSAnZWagAA1AcP/iiYiEnYzwjFaRq6hE8h\nNAymOfEvRI87gbYQMUJ5Flb5Hyiq92K09/z3q2bD9CrCt8dUoDIW8NKxFRXQ\nuPlfujWEz042mr6pgOkRZJIofbP5hyCSG0X82AheE9TTLca/PbBW/rCJXXIN\ndorM2CSTDiBttLx6kwmWCkGE6Jg3EFrnxmQKo598DM/pY7eSqgZmP+3Atlev\ny4qvjS6stezEfcbs11s9SsmQBWgh2Its59o6yyY45y0AKOoimM1ndC7Y3Kym\nd2G7RemIEzPFyXyIedHz0TYkJ6hWPaZodgFaoQkeKec8jrHLmrviUTcranS3\n9jNp9MZBNenCoi1xcye6o9O1jOcXYTxYC161uvhRUbQnR7vI0ZIMhXNEEWY5\nvd23UlMlMeLZ+zxG4jD6je3QkQueNEbxQJzHn8k0bYAp4nJzrnVttD0tmPek\njVlZ87LbKWIdZRaSl2W0qyQ4cuA42aSrHCUEhIH/Oe60ZRPG4SuizC7SD3ym\nUvL+VKSUi6HobB4kHYo4ELR6PmP86FZmqFrOFjVoBCBybcvappG0tHgbczpM\nJTjJJFG0vClM/Nx+e/VKrinI4twIjJQjy7/8fJ1oUp1clwxnmYDc+H1CZV2A\noiUYl6g5rx1P2H4kIaPNZg36aqGKcp+Cf247Ssep3o+sTU9JyKx9tBbC8SOj\n9d4E\r\n=8vic\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFIRzydmi/+c7pf4eRXXX5WwfC0B0Qv6GX0umj+YW9zwIgdXKQBDAXp3Qg7mlvXIOtdCfRF3fkcbMPOJVCglZIRAs="}]},"maintainers":[{"email":"dave@davecozens.com","name":"davecozens"},{"email":"itinfrastructure@alcumusgroup.com","name":"itinfrastructure_alcumusgroup"},{"email":"lauren.mae.welsh@gmail.com","name":"lwelsh"},{"email":"nia.evans@alcumusgroup.com","name":"nevans"},{"email":"simon.fuenffinger@alcumusgroup.com","name":"sfuenffinger"},{"email":"thor84no@gmail.com","name":"thor84no"},{"email":"michael.john.talbot@gmail.com","name":"whydoidoit"},{"email":"nabeelamir2@gmail.com","name":"woozay"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.1.0_1556704125070_0.30879466738599226"},"_hasShrinkwrap":true},"0.1.1-HF-639-1":{"name":"@alcumus/common-tools","version":"0.1.1-HF-639-1","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js'--fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js'","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"bitbucket":"^1.4.0","chai":"^4.2.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","mkdirp":"^0.5.1","nodemon":"^1.18.7","request-promise-native":"^1.0.5","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","stylelint":"^10.0.1","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","yargs":"^12.0.2"},"devDependencies":{"mocha":"^5.2.0","proxyquire":"^2.1.0","sinon":"^7.2.2"},"readme":"# Common Rules\n\nThis repository contains common automation tools to be shared among multiple projects, including tools for installing linting rules etc.\n\nAll changes to this project should be published under a new version number.\n\nTo use this project, first install using `npm i --save-dev alcumus-common-tools`, then use the provided binaries to install what you need. For example:\n\n```bash\nnpx common # install the most common options needed (eslint, .editorconfig, git hooks, etc.).\nnpx linting # install eslint.\nnpx linting react # install linters needed for react projects\nnpx editor-config # install just .editorconfig file.\nnpx git-hooks # NOT YET IMPLEMENTED: this will install the common git hooks to the project.\n```\n\n`npx common` forwards any parameters it receives to all of the other commands it triggers so `npx common eslint` will call `npx linting eslint`.\n\nThese commands should create very minimal files within your current project\n(a symlink where appropriate, a simple config file that just extends the ones from this project elsewhere).\nIn the case of extending config files for linters it also allows us to make project specific changes\nif appropriate; though this should be a last resort.\n\nOverall we should make our changes in just this project and use npm to upgrade to newer versions in other projects.\n\n## Using locally\n\nIn order to test locally, just clone the repo and link a test project to this as follows:\n\n```bash\nnpm link # execute in the root of this project to make npm associate this folder with the correct package.\ncd <project> # change to your test project.\nnpm link alcumus-common-tools # equivalent of npm i alcumus-common-tools, but creates symlinks in node_modules instead of installing.\n```\n\n## Publishing changes\n\nTo publish changes you've made (and tested locally), just run `npm run publish-new`. This will publish to the correct NPM registrar as\nwell as bumping the version number ready for the next change. For major version changes, first change `package.json` to have the correct\nversion number, then run `npm run publish-new`.\n\n## Publishing pre-relase\n\nTo publish a pre-release version of changes you've made (and tested locally), just run `npm run publish-pre-release`. This will publish a pre-release version to the correct npm repo using the\nversion defined in the package json and current branch number in the following format: version-branch-publishVersion (e.g. 0.1.10-HF-563-1) it will then increment\nthe publish version for each subsequent run of the pre-release job.\n\n## Using on Windows\n\nUsage on Windows should be the same as usage on Mac, except that it must be run as an administrator (run your IDE or CMD itself as admin).\n\n## Git hooks\n\nA set of git hooks will be installed in the current project when using `npx common`. They can also be specifically installed\nwith the `npx install-git-hooks` command. At present these git hooks provide the following functionality:\n\n* Warn when you check out a branch that does not follow the branch naming convention (<ticket>-<description>) or is specifically exempt (master).\n* Ensure that all commit messages are prefixed with the ticket number from the branch they were created on. I.e., if you commit with a message\n\"Fixing unit tests\" on branch \"HF-99-fixing-framework-bug\" your commit message will be automatically changed to \"HF-99: Fixing unit tests\".\n\nTo create more git hooks, simply create a new file with a file name matching any [git hook](https://githooks.com) file\nname (with .js after it) in `src/git-hooks` and run the install again. The files will be symlinked to `.git/hooks/`\nmaking sure they will be updated if the npm module is updated.\n\n## Pull-requests\n\nThis repository exposes a `npx pr` command that can be used to create pull requests in a standardised way that can be\nextended later. At present, this will ensure that the project passes linting before allowing a PR to be created. In the\nfuture this will be extended to include unit tests passing if present etc. In addition to this, a report can be\ngenerated that will be attached to the PR itself. At the moment this just compares linting pre-PR and post-PR, but can\nbe extended to show changes in code coverage, etc. In addition to this the command allows an easy way of inviting\npeople by name or by team. In order to create Bitbucket PRs, appropriate credentials must be available in `~/al-tools.credentials.json`.\nThe `~/al-tools.credentials.json` structure is as follows:\n\n> **Note:**\n> \n> In order to execute npx commands that are declared in this project from within this project, add `-p .` to the command\n> as in `npx -p . pr ...`\n\n```json\n{\n    \"bitbucket\": {\n        \"username\": \"<user>_alcumusgroup\",\n        \"password\": \"--\"\n    },\n    \"jira\": {\n        \"username\": \"<user>\",\n        \"password\": \"--\"\n    }\n}\n```\n\nThe JIRA username/password is required to get JIRA descriptions added to your PR, but is otherwise optional. JIRA\nunfortunately requires you to put your normal username and password in the config file, while Bitbucket allows you to\ncreate an app password (see [https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html]).\n\nExamples:\n\n```bash\nnpx pr -r thor # invite Thor to be a reviewer (this will be matched against both full name and username, case insensitive).\nnpx pr -r pippin mark # invite all of team Pippin and Mark Gabb to be a reviewer.\n```\n\nAny number of reviewers can be added and additional groupings can easily be added by changing the `teams.json` file in the S3 bucket `al-automation`.\n\nNOTE: Currently `npx pr` is a short form of `npx pr create`. Additional commands (such as `npx pr update` may be created\nin the future).\n\n`npx pr --help` should provide a good idea of the options available, though sensible defaults for merging to `master`\nare provided.\n\n### Future improvements\n\n* Add code coverage report to PR.\n* Add tasks based on reviewer checklist to PR.\n* Stop PR from being created if unit tests fail.\n* `npx pr update` - refresh generated content for PR based on changes, but leave other details as they were.\n\n## Making a new command available\n\n * Add a `<command>-cli.js` file that will handle CLI arguments. Bear in mind that your file may be called\n with arguments that belong to other CLI files so be careful about how you read them.\n * Separate the CLI logic from the business logic, business logic goes in `src`.\n * Add the name of your CLI file to `package.json` under the `bin` property.\n * If appropriate, add it to `common-cli.js`, which is executed for `npx common` as mentioned above.\n * Remember to publish the new version when you're done. (When the NPM repo is ready).\n","readmeFilename":"README.md","gitHead":"053a002fe53f23ed3ba720dfa107e8a95cbf6407","_id":"@alcumus/common-tools@0.1.1-HF-639-1","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"nevans","email":"nia.evans@alcumusgroup.com"},"dist":{"integrity":"sha512-kqohLCi2L89+uKENYNKAByGSF2ZkfTFe++Z3nvLZs+y/IfDAAjkWUc2tWRiWstkiqSIVFmIvksMoxGMRDABgZg==","shasum":"4ea8d29cecdc04e38396c998f62453b578e8c9b1","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.1.1-HF-639-1.tgz","fileCount":40,"unpackedSize":310908,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyrnICRA9TVsSAnZWagAA9QIP/AqPQVGRRhNYDclMTS/G\ngeRvsxNwyeNw92e1iH+6OvNI54QuJvjp7zfoWkjcGkBOdhm8bjhMoAZjH6e4\nrS7uhm/AXIlBlhadLt8laSUVov/vD3whatpYqNYXyzTz1yd/buGSLxVZVLpl\nS6HhMgtsSe16YkcYX6hcU+VboPhR7BPBXrHH84OCRhoaTTzoqhdJoiM4kyx0\nKo4bObh7n6KTP+z9RJn/LEL0eY6eGqubzMM0mG+TeDM3qdqrimHZ6Ljpf72S\ntPjy96ASqZKWkBObpppw8H1wffgiwpRP9xKaHEB1R+efsF7Y9hR5rlrHo2L0\nhlCJVEWUTtvTygjGWOR9BUftfF4j41aab3t4QCAr6FbySR2JR8MXu6Yk88jr\nwaxTuBdkAfQQBVCqKsdEALf6uEo4atYdeZ4GPMXH+gyYR8lGXxvXOPj0hlgU\nU16qcZpitiq8kVbs88pj92lucKEj1PkyKhe1yP1Yo63NiHsAEnFn4kgtT/4H\nAizLIw1vrQwJYWjnW5TzPzgwH4sxK6YfPR36w/o6ecf5be/wzcSSDOleXfJh\nDGSRBCAWbH32D/h4QUbWAS3xyQYVKrSJVBy75gX3u9H0F8nKidwCyZAL4JAS\nq0H1iMyGTHZk3CDACPAmv/hgIGASPWlrWf2AR1+lbexNhxvgNA/AbZM8hqtB\nUucP\r\n=rjn9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDqwDlKf9CddwSeqkV6vTCIrH1lbcILT99aFECxPuMypwIgJ6DdvEyl7wMFQq+79hj0WnRlVeU2WaZAJQ5WmQe52jw="}]},"maintainers":[{"email":"dave@davecozens.com","name":"davecozens"},{"email":"itinfrastructure@alcumusgroup.com","name":"itinfrastructure_alcumusgroup"},{"email":"lauren.mae.welsh@gmail.com","name":"lwelsh"},{"email":"nia.evans@alcumusgroup.com","name":"nevans"},{"email":"simon.fuenffinger@alcumusgroup.com","name":"sfuenffinger"},{"email":"thor84no@gmail.com","name":"thor84no"},{"email":"michael.john.talbot@gmail.com","name":"whydoidoit"},{"email":"nabeelamir2@gmail.com","name":"woozay"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.1.1-HF-639-1_1556789703943_0.6282284649913705"},"_hasShrinkwrap":true},"0.1.1":{"name":"@alcumus/common-tools","version":"0.1.1","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js'--fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js'","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"bitbucket":"^1.4.0","chai":"^4.2.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","mkdirp":"^0.5.1","nodemon":"^1.18.7","request-promise-native":"^1.0.5","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","stylelint":"^10.0.1","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","yargs":"^12.0.2"},"devDependencies":{"mocha":"^5.2.0","proxyquire":"^2.1.0","sinon":"^7.2.2"},"gitHead":"021b7091289105d86a1be367b14c9aba883007a4","_id":"@alcumus/common-tools@0.1.1","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"nevans","email":"nia.evans@alcumusgroup.com"},"dist":{"integrity":"sha512-gsMe7xjNeWiGw3HEsm7ZiqSctHiPs6rhhwmbBzYel/djakAjPpv1BqAWx34l1hz0gy6v6zqSmqxjAtY9+g4LZQ==","shasum":"fbbc30112c8a881b6fe2d89c7bf52f719ae95b85","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.1.1.tgz","fileCount":40,"unpackedSize":310899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcysUiCRA9TVsSAnZWagAA5CcQAI/gUBBh2fq2Wq5nwmco\n8Cs8dUS8wvzkH5vMZA/SWX6i314KtPD64hGkI4xNDa2+9vUnqHKDpKN3Gg0E\nwHFIIdMzFYf2ULjLKgOQRCdWig3FKFZSrcvP66Q6xp4UOF+MUiSr7O8AfdN5\nGvAJOaFQEnXz1nnxcAuOTQykiP6J8zvlFGHl5TcU9Am8aFOBGit6Szy5PEWM\nCNxzTkqqtmEoUkv29+7LlGtftZIvt/14f/EQxXBQbV7x2QeaVdLW45aRapaM\nVqWY5cWoXrzbcFcb0hx/clC305BxE/V8U4xGKb/m5k0i6+XCu/w1JKKw3NGq\n4iGcCumXfRXw6XhaKuedZCEb8+Yzs/WGjWXUGLFMGGgs75oVgwYdh5lCA0JZ\noOppC97tvMcw05dfoTHPHV6/n1vV//t6t/9nrug0jjA+ng/AvsWfgI+/9/B1\nqkvoKFzVGG9blaeItmqP85isTDkz2CfVIl18W4kM3dag8ccm6vA121FFsPxm\n8VYH7zoUTj7l6kTHpzGKy+OTJyc73nB6ZqeXoxViVFC8GqOQaeOb10qh+tzz\n5Y8zM91TaskemjkR8lHo9pEorAkUaFsECc/dtDGTQN2TyXOyWs8oLdAPqsV3\nBaiCY0U6HbsIKnODBU+FypjECgD8AX7AKcRCS8GKjPn7mAq70YYueNmAB1WQ\nEHmD\r\n=5iRx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKaaXvnNK3PZgl9ZTIckSsEcZbwWOssnItACCXb6YCNQIgMPVBDJYz3hf4zE7Q9e2/iWzboKIfqxHbzSYBZxpbxSk="}]},"maintainers":[{"email":"dave@davecozens.com","name":"davecozens"},{"email":"itinfrastructure@alcumusgroup.com","name":"itinfrastructure_alcumusgroup"},{"email":"lauren.mae.welsh@gmail.com","name":"lwelsh"},{"email":"nia.evans@alcumusgroup.com","name":"nevans"},{"email":"simon.fuenffinger@alcumusgroup.com","name":"sfuenffinger"},{"email":"thor84no@gmail.com","name":"thor84no"},{"email":"michael.john.talbot@gmail.com","name":"whydoidoit"},{"email":"nabeelamir2@gmail.com","name":"woozay"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.1.1_1556792610215_0.977475815037985"},"_hasShrinkwrap":true},"0.1.2-HF-701-1":{"name":"@alcumus/common-tools","version":"0.1.2-HF-701-1","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js'--fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js'","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"bitbucket":"^1.4.0","chai":"^4.2.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","mkdirp":"^0.5.1","nodemon":"^1.18.7","request-promise-native":"^1.0.5","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","stylelint":"^10.0.1","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","yargs":"^12.0.2"},"devDependencies":{"mocha":"^5.2.0","proxyquire":"^2.1.0","sinon":"^7.2.2"},"readme":"# Common Rules\n\nThis repository contains common automation tools to be shared among multiple projects, including tools for installing linting rules etc.\n\nAll changes to this project should be published under a new version number.\n\nTo use this project, first install using `npm i --save-dev alcumus-common-tools`, then use the provided binaries to install what you need. For example:\n\n```bash\nnpx common # install the most common options needed (eslint, .editorconfig, git hooks, etc.).\nnpx linting # install eslint.\nnpx linting react # install linters needed for react projects\nnpx editor-config # install just .editorconfig file.\nnpx git-hooks # NOT YET IMPLEMENTED: this will install the common git hooks to the project.\n```\n\n`npx common` forwards any parameters it receives to all of the other commands it triggers so `npx common eslint` will call `npx linting eslint`.\n\nThese commands should create very minimal files within your current project\n(a symlink where appropriate, a simple config file that just extends the ones from this project elsewhere).\nIn the case of extending config files for linters it also allows us to make project specific changes\nif appropriate; though this should be a last resort.\n\nOverall we should make our changes in just this project and use npm to upgrade to newer versions in other projects.\n\n## Using locally\n\nIn order to test locally, just clone the repo and link a test project to this as follows:\n\n```bash\nnpm link # execute in the root of this project to make npm associate this folder with the correct package.\ncd <project> # change to your test project.\nnpm link alcumus-common-tools # equivalent of npm i alcumus-common-tools, but creates symlinks in node_modules instead of installing.\n```\n\n## Publishing changes\n\nTo publish changes you've made (and tested locally), just run `npm run publish-new`. This will publish to the correct NPM registrar as\nwell as bumping the version number ready for the next change. For major version changes, first change `package.json` to have the correct\nversion number, then run `npm run publish-new`.\n\n## Publishing pre-relase\n\nTo publish a pre-release version of changes you've made (and tested locally), just run `npm run publish-pre-release`. This will publish a pre-release version to the correct npm repo using the\nversion defined in the package json and current branch number in the following format: version-branch-publishVersion (e.g. 0.1.10-HF-563-1) it will then increment\nthe publish version for each subsequent run of the pre-release job.\n\n## Using on Windows\n\nUsage on Windows should be the same as usage on Mac, except that it must be run as an administrator (run your IDE or CMD itself as admin).\n\n## Git hooks\n\nA set of git hooks will be installed in the current project when using `npx common`. They can also be specifically installed\nwith the `npx install-git-hooks` command. At present these git hooks provide the following functionality:\n\n* Warn when you check out a branch that does not follow the branch naming convention (<ticket>-<description>) or is specifically exempt (master).\n* Ensure that all commit messages are prefixed with the ticket number from the branch they were created on. I.e., if you commit with a message\n\"Fixing unit tests\" on branch \"HF-99-fixing-framework-bug\" your commit message will be automatically changed to \"HF-99: Fixing unit tests\".\n\nTo create more git hooks, simply create a new file with a file name matching any [git hook](https://githooks.com) file\nname (with .js after it) in `src/git-hooks` and run the install again. The files will be symlinked to `.git/hooks/`\nmaking sure they will be updated if the npm module is updated.\n\n## Pull-requests\n\nThis repository exposes a `npx pr` command that can be used to create pull requests in a standardised way that can be\nextended later. At present, this will ensure that the project passes linting before allowing a PR to be created. In the\nfuture this will be extended to include unit tests passing if present etc. In addition to this, a report can be\ngenerated that will be attached to the PR itself. At the moment this just compares linting pre-PR and post-PR, but can\nbe extended to show changes in code coverage, etc. In addition to this the command allows an easy way of inviting\npeople by name or by team. In order to create Bitbucket PRs, appropriate credentials must be available in `~/al-tools.credentials.json`.\nThe `~/al-tools.credentials.json` structure is as follows:\n\n> **Note:**\n> \n> In order to execute npx commands that are declared in this project from within this project, add `-p .` to the command\n> as in `npx -p . pr ...`\n\n```json\n{\n    \"bitbucket\": {\n        \"username\": \"<user>_alcumusgroup\",\n        \"password\": \"--\"\n    },\n    \"jira\": {\n        \"username\": \"<user>\",\n        \"password\": \"--\"\n    }\n}\n```\n\nThe JIRA username/password is required to get JIRA descriptions added to your PR, but is otherwise optional. JIRA\nunfortunately requires you to put your normal username and password in the config file, while Bitbucket allows you to\ncreate an app password (see [https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html]).\n\nExamples:\n\n```bash\nnpx pr -r thor # invite Thor to be a reviewer (this will be matched against both full name and username, case insensitive).\nnpx pr -r pippin mark # invite all of team Pippin and Mark Gabb to be a reviewer.\n```\n\nAny number of reviewers can be added and additional groupings can easily be added by changing the `teams.json` file in the S3 bucket `al-automation`.\n\nNOTE: Currently `npx pr` is a short form of `npx pr create`. Additional commands (such as `npx pr update` may be created\nin the future).\n\n`npx pr --help` should provide a good idea of the options available, though sensible defaults for merging to `master`\nare provided.\n\n### Future improvements\n\n* Add code coverage report to PR.\n* Add tasks based on reviewer checklist to PR.\n* Stop PR from being created if unit tests fail.\n* `npx pr update` - refresh generated content for PR based on changes, but leave other details as they were.\n\n## Making a new command available\n\n * Add a `<command>-cli.js` file that will handle CLI arguments. Bear in mind that your file may be called\n with arguments that belong to other CLI files so be careful about how you read them.\n * Separate the CLI logic from the business logic, business logic goes in `src`.\n * Add the name of your CLI file to `package.json` under the `bin` property.\n * If appropriate, add it to `common-cli.js`, which is executed for `npx common` as mentioned above.\n * Remember to publish the new version when you're done. (When the NPM repo is ready).\n","readmeFilename":"README.md","gitHead":"63c612cf0011cda6177093261e779eb1d4ffa2ab","_id":"@alcumus/common-tools@0.1.2-HF-701-1","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"nevans","email":"nia.evans@alcumusgroup.com"},"dist":{"integrity":"sha512-fhoPOofqwhRzBrnx0h6qOBPw4Mt+9WF9H1tuikNAp0lGUd3fVuH4jhbBDYGg79X0P7IBSm+eHH+N184X1r5CtA==","shasum":"75b3cba1de97b72e392c76166d95b41496cff5bc","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.1.2-HF-701-1.tgz","fileCount":40,"unpackedSize":311028,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4oEsCRA9TVsSAnZWagAA+DsQAI4khU15Pt2Rd1bdgJYK\nbJuvhwTJG74Nx3Gi8YkIzN5Y3SDczB11YDrTQ/wa6VfI5Sm0ihjhHYMQ1akM\nLY/ni73TtMxE7GM2hSuHKuI+A4gU+cuXJ/lfnNhhwzMgJO7966HtKYFWWGXd\n4dqSGsttbhpMnVqY4mFRvEjPHGMTIGzjSJn6RBMici0YDHZSv0zpufi87tfz\nLyXly/dSob24r7rolrAPweDXE9+1fJviH/a1sw/jv6scxfv9zOkNqWhDE8p3\nJT4wGmDnZnoj0v4jN+ulrTXSrwdc3WJh6fWjPgtLeuGQbyqQ7xxzNQTIBBnF\nQh7Plqt2jENuU800qgJH0tnR9KrTDEDPke5g10byLm6zGgGwqzx1svYOx9t0\nG6k/wOC+nRclCKhN48Chsssa1MhGIBniABGpyBrbW9bz3hRHvyT0L+9i4VeA\nRX6oRXRcsib7fWIF+d+YRpAE8nIAdb8a+3A1rcx1z88JTJfsZwLlXa667DGt\nt8A1r1MpEW7r1SQ2+NRtsVInDGpSgDX3g6Z7tRNg6ZROuycQPstOUnSjkScg\niIst4BdkACK0jCjn0J1eIWJtXH5Q6o3s0AuNxnb6JVYzSkP4NY5GokutqEyD\n6k7VLxfX8Ixen+7jJqgdnrjlgPSMGfNJT+XFb50SSQzNqokOICt44f9V/uV2\nYepD\r\n=5i9B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDZZGXvzhnpgvmoo4PbcPqg6rwnQ8OWvUHmBUYGQ8sQ9AiEArA0sfHvzx8z3a45ZyMqXXkCRwBRrm/1/kbik1KHc1oo="}]},"maintainers":[{"email":"dave@davecozens.com","name":"davecozens"},{"email":"itinfrastructure@alcumusgroup.com","name":"itinfrastructure_alcumusgroup"},{"email":"lauren.mae.welsh@gmail.com","name":"lwelsh"},{"email":"nia.evans@alcumusgroup.com","name":"nevans"},{"email":"simon.fuenffinger@alcumusgroup.com","name":"sfuenffinger"},{"email":"thor84no@gmail.com","name":"thor84no"},{"email":"michael.john.talbot@gmail.com","name":"whydoidoit"},{"email":"nabeelamir2@gmail.com","name":"woozay"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.1.2-HF-701-1_1558348076034_0.11189267871784758"},"_hasShrinkwrap":true},"0.1.2-HF-773-1":{"name":"@alcumus/common-tools","version":"0.1.2-HF-773-1","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js'--fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js'","pr":"./pull-request-cli.js","publish-new":"node ./publish-cli.js","publish-pre-release":"node ./publish-pre-release-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"bitbucket":"^1.4.0","chai":"^4.2.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","mkdirp":"^0.5.1","nodemon":"^1.18.7","request-promise-native":"^1.0.5","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","stylelint":"^10.0.1","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","yargs":"^12.0.2"},"devDependencies":{"mocha":"^5.2.0","proxyquire":"^2.1.0","sinon":"^7.2.2"},"readme":"# Common Rules\r\n\r\nThis repository contains common automation tools to be shared among multiple projects, including tools for installing linting rules etc.\r\n\r\nAll changes to this project should be published under a new version number.\r\n\r\nTo use this project, first install using `npm i --save-dev alcumus-common-tools`, then use the provided binaries to install what you need. For example:\r\n\r\n```bash\r\nnpx common # install the most common options needed (eslint, .editorconfig, git hooks, etc.).\r\nnpx linting # install eslint.\r\nnpx linting react # install linters needed for react projects\r\nnpx editor-config # install just .editorconfig file.\r\nnpx git-hooks # NOT YET IMPLEMENTED: this will install the common git hooks to the project.\r\n```\r\n\r\n`npx common` forwards any parameters it receives to all of the other commands it triggers so `npx common eslint` will call `npx linting eslint`.\r\n\r\nThese commands should create very minimal files within your current project\r\n(a symlink where appropriate, a simple config file that just extends the ones from this project elsewhere).\r\nIn the case of extending config files for linters it also allows us to make project specific changes\r\nif appropriate; though this should be a last resort.\r\n\r\nOverall we should make our changes in just this project and use npm to upgrade to newer versions in other projects.\r\n\r\n## Using locally\r\n\r\nIn order to test locally, just clone the repo and link a test project to this as follows:\r\n\r\n```bash\r\nnpm link # execute in the root of this project to make npm associate this folder with the correct package.\r\ncd <project> # change to your test project.\r\nnpm link alcumus-common-tools # equivalent of npm i alcumus-common-tools, but creates symlinks in node_modules instead of installing.\r\n```\r\n\r\n## Publishing changes\r\n\r\nTo publish changes you've made (and tested locally), just run `npm run publish-new`. This will publish to the correct NPM registrar as\r\nwell as bumping the version number ready for the next change. For major version changes, first change `package.json` to have the correct\r\nversion number, then run `npm run publish-new`.\r\n\r\n## Publishing pre-relase\r\n\r\nTo publish a pre-release version of changes you've made (and tested locally), just run `npm run publish-pre-release`. This will publish a pre-release version to the correct npm repo using the\r\nversion defined in the package json and current branch number in the following format: version-branch-publishVersion (e.g. 0.1.10-HF-563-1) it will then increment\r\nthe publish version for each subsequent run of the pre-release job.\r\n\r\n## Using on Windows\r\n\r\nUsage on Windows should be the same as usage on Mac, except that it must be run as an administrator (run your IDE or CMD itself as admin).\r\n\r\n## Git hooks\r\n\r\nA set of git hooks will be installed in the current project when using `npx common`. They can also be specifically installed\r\nwith the `npx install-git-hooks` command. At present these git hooks provide the following functionality:\r\n\r\n* Warn when you check out a branch that does not follow the branch naming convention (<ticket>-<description>) or is specifically exempt (master).\r\n* Ensure that all commit messages are prefixed with the ticket number from the branch they were created on. I.e., if you commit with a message\r\n\"Fixing unit tests\" on branch \"HF-99-fixing-framework-bug\" your commit message will be automatically changed to \"HF-99: Fixing unit tests\".\r\n\r\nTo create more git hooks, simply create a new file with a file name matching any [git hook](https://githooks.com) file\r\nname (with .js after it) in `src/git-hooks` and run the install again. The files will be symlinked to `.git/hooks/`\r\nmaking sure they will be updated if the npm module is updated.\r\n\r\n## Pull-requests\r\n\r\nThis repository exposes a `npx pr` command that can be used to create pull requests in a standardised way that can be\r\nextended later. At present, this will ensure that the project passes linting before allowing a PR to be created. In the\r\nfuture this will be extended to include unit tests passing if present etc. In addition to this, a report can be\r\ngenerated that will be attached to the PR itself. At the moment this just compares linting pre-PR and post-PR, but can\r\nbe extended to show changes in code coverage, etc. In addition to this the command allows an easy way of inviting\r\npeople by name or by team. In order to create Bitbucket PRs, appropriate credentials must be available in `~/al-tools.credentials.json`.\r\nThe `~/al-tools.credentials.json` structure is as follows:\r\n\r\n> **Note:**\r\n> \r\n> In order to execute npx commands that are declared in this project from within this project, add `-p .` to the command\r\n> as in `npx -p . pr ...`\r\n\r\n```json\r\n{\r\n    \"bitbucket\": {\r\n        \"username\": \"<user>_alcumusgroup\",\r\n        \"password\": \"--\"\r\n    },\r\n    \"jira\": {\r\n        \"username\": \"<user>\",\r\n        \"password\": \"--\"\r\n    }\r\n}\r\n```\r\n\r\nThe JIRA username/password is required to get JIRA descriptions added to your PR, but is otherwise optional. JIRA\r\nunfortunately requires you to put your normal username and password in the config file, while Bitbucket allows you to\r\ncreate an app password (see [https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html]).\r\n\r\nExamples:\r\n\r\n```bash\r\nnpx pr -r thor # invite Thor to be a reviewer (this will be matched against both full name and username, case insensitive).\r\nnpx pr -r pippin mark # invite all of team Pippin and Mark Gabb to be a reviewer.\r\n```\r\n\r\nAny number of reviewers can be added and additional groupings can easily be added by changing the `teams.json` file in the S3 bucket `al-automation`.\r\n\r\nNOTE: Currently `npx pr` is a short form of `npx pr create`. Additional commands (such as `npx pr update` may be created\r\nin the future).\r\n\r\n`npx pr --help` should provide a good idea of the options available, though sensible defaults for merging to `master`\r\nare provided.\r\n\r\n### Future improvements\r\n\r\n* Add code coverage report to PR.\r\n* Add tasks based on reviewer checklist to PR.\r\n* Stop PR from being created if unit tests fail.\r\n* `npx pr update` - refresh generated content for PR based on changes, but leave other details as they were.\r\n\r\n## Making a new command available\r\n\r\n * Add a `<command>-cli.js` file that will handle CLI arguments. Bear in mind that your file may be called\r\n with arguments that belong to other CLI files so be careful about how you read them.\r\n * Separate the CLI logic from the business logic, business logic goes in `src`.\r\n * Add the name of your CLI file to `package.json` under the `bin` property.\r\n * If appropriate, add it to `common-cli.js`, which is executed for `npx common` as mentioned above.\r\n * Remember to publish the new version when you're done. (When the NPM repo is ready).\r\n","readmeFilename":"README.md","gitHead":"7f8a24afdc7016e3e118c35bbba108051adb6a46","_id":"@alcumus/common-tools@0.1.2-HF-773-1","_nodeVersion":"10.10.0","_npmVersion":"6.8.0","dist":{"integrity":"sha512-r9g5mnl0hQaZHT8qDaNGWhr/SCfwxZWXW3XHcFI9YNNJzRVrS61o6PRA3lq6t0YzrqPjvvX6M2T0XSGd75rXOg==","shasum":"8fc55dd84b9f8877fb869885538c5a428974f57f","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.1.2-HF-773-1.tgz","fileCount":40,"unpackedSize":318934,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc49VdCRA9TVsSAnZWagAA0rMP/1GN9OBqMEe1eA+ys5+w\n8JdPG1JUvAPye9SoZXI0y3UfkZHed8CPQmqD4kdCKMO9YuTFz++IfCCWUkKq\nEVr/aFHTw+bLjw/peZH1JOMSiN2VVnbA5nxbWW8qRsFcpcCsBjGTOpwGbtz1\njhob9XAh2o1etuczs+A+b1PMmBidAGgf0vUwPYdjgdKF5JYliv7n1cablAmh\nszKluKZZaEWH8LEfFeOV48Fy9jjbAqh51HvA3QaJqIt8MIXox+XMTgIBwJvW\nwl5BZeIhGe2TDrpItESi63RqhFAT7lQhdR4qg5NN2neFNtaB+peCB2k3iaI/\n2XALhGPykA3iN6DL9qf5ZHjH5vDruxdpOBPgxgdnNZzSGEWMzUAs3HxhrOGW\nwFiKUNHw4cXZwAClzrsIKyDoRjBD/KNRMRhj5x7Up2P2he141oBVRwYak2tK\nCelHwLKBRVaGJFYhS38D9/BUHJNKPh+hWD0cWdkU6ksImCcXfjuw69T50DdV\nNmdjtHkYvHpDOpmqw9VjtQUzv67WNJ4A4rQvPhpG0jDMNIhB5XdLJtm5Kug/\nmX7eJ7U83fTRlD7Apy/lI52T/I9/vYb0iZQoWUji8vBwgRsC8J7WxZhWwd7Z\nnuOiwjh60KgQTjJ7YY1+EuCN1hBWFBabqXJaoe3tdmPvD5GoibBf7FVgaacr\nSrSK\r\n=mcu0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICABqRMYUlX8tFyab97m6PS/rF4wxQTeU4ROC2grOsMxAiEA4AZJaEA2WD7xi23DAIQ68yFZv5savzf+YGC50VBur7U="}]},"maintainers":[{"email":"dave@davecozens.com","name":"davecozens"},{"email":"itinfrastructure@alcumusgroup.com","name":"itinfrastructure_alcumusgroup"},{"email":"lauren.mae.welsh@gmail.com","name":"lwelsh"},{"email":"nia.evans@alcumusgroup.com","name":"nevans"},{"email":"simon.fuenffinger@alcumusgroup.com","name":"sfuenffinger"},{"email":"thor84no@gmail.com","name":"thor84no"},{"email":"michael.john.talbot@gmail.com","name":"whydoidoit"},{"email":"nabeelamir2@gmail.com","name":"woozay"}],"_npmUser":{"name":"woozay","email":"nabeelamir2@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.1.2-HF-773-1_1558435157492_0.7771713041173196"},"_hasShrinkwrap":true},"0.1.2-HF-773-2":{"name":"@alcumus/common-tools","version":"0.1.2-HF-773-2","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js'--fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js'","pr":"./pull-request-cli.js","publish-new":"node ./publish-cli.js","publish-pre-release":"node ./publish-pre-release-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"bitbucket":"^1.4.0","chai":"^4.2.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","mkdirp":"^0.5.1","nodemon":"^1.18.7","request-promise-native":"^1.0.5","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","stylelint":"^10.0.1","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","yargs":"^12.0.2"},"devDependencies":{"mocha":"^5.2.0","proxyquire":"^2.1.0","sinon":"^7.2.2"},"readme":"# Common Rules\r\n\r\nThis repository contains common automation tools to be shared among multiple projects, including tools for installing linting rules etc.\r\n\r\nAll changes to this project should be published under a new version number.\r\n\r\nTo use this project, first install using `npm i --save-dev alcumus-common-tools`, then use the provided binaries to install what you need. For example:\r\n\r\n```bash\r\nnpx common # install the most common options needed (eslint, .editorconfig, git hooks, etc.).\r\nnpx linting # install eslint.\r\nnpx linting react # install linters needed for react projects\r\nnpx editor-config # install just .editorconfig file.\r\nnpx git-hooks # NOT YET IMPLEMENTED: this will install the common git hooks to the project.\r\n```\r\n\r\n`npx common` forwards any parameters it receives to all of the other commands it triggers so `npx common eslint` will call `npx linting eslint`.\r\n\r\nThese commands should create very minimal files within your current project\r\n(a symlink where appropriate, a simple config file that just extends the ones from this project elsewhere).\r\nIn the case of extending config files for linters it also allows us to make project specific changes\r\nif appropriate; though this should be a last resort.\r\n\r\nOverall we should make our changes in just this project and use npm to upgrade to newer versions in other projects.\r\n\r\n## Using locally\r\n\r\nIn order to test locally, just clone the repo and link a test project to this as follows:\r\n\r\n```bash\r\nnpm link # execute in the root of this project to make npm associate this folder with the correct package.\r\ncd <project> # change to your test project.\r\nnpm link alcumus-common-tools # equivalent of npm i alcumus-common-tools, but creates symlinks in node_modules instead of installing.\r\n```\r\n\r\n## Publishing changes\r\n\r\nTo publish changes you've made (and tested locally), just run `npm run publish-new`. This will publish to the correct NPM registrar as\r\nwell as bumping the version number ready for the next change. For major version changes, first change `package.json` to have the correct\r\nversion number, then run `npm run publish-new`.\r\n\r\n## Publishing pre-relase\r\n\r\nTo publish a pre-release version of changes you've made (and tested locally), just run `npm run publish-pre-release`. This will publish a pre-release version to the correct npm repo using the\r\nversion defined in the package json and current branch number in the following format: version-branch-publishVersion (e.g. 0.1.10-HF-563-1) it will then increment\r\nthe publish version for each subsequent run of the pre-release job.\r\n\r\n## Using on Windows\r\n\r\nUsage on Windows should be the same as usage on Mac, except that it must be run as an administrator (run your IDE or CMD itself as admin).\r\n\r\n## Git hooks\r\n\r\nA set of git hooks will be installed in the current project when using `npx common`. They can also be specifically installed\r\nwith the `npx install-git-hooks` command. At present these git hooks provide the following functionality:\r\n\r\n* Warn when you check out a branch that does not follow the branch naming convention (<ticket>-<description>) or is specifically exempt (master).\r\n* Ensure that all commit messages are prefixed with the ticket number from the branch they were created on. I.e., if you commit with a message\r\n\"Fixing unit tests\" on branch \"HF-99-fixing-framework-bug\" your commit message will be automatically changed to \"HF-99: Fixing unit tests\".\r\n\r\nTo create more git hooks, simply create a new file with a file name matching any [git hook](https://githooks.com) file\r\nname (with .js after it) in `src/git-hooks` and run the install again. The files will be symlinked to `.git/hooks/`\r\nmaking sure they will be updated if the npm module is updated.\r\n\r\n## Pull-requests\r\n\r\nThis repository exposes a `npx pr` command that can be used to create pull requests in a standardised way that can be\r\nextended later. At present, this will ensure that the project passes linting before allowing a PR to be created. In the\r\nfuture this will be extended to include unit tests passing if present etc. In addition to this, a report can be\r\ngenerated that will be attached to the PR itself. At the moment this just compares linting pre-PR and post-PR, but can\r\nbe extended to show changes in code coverage, etc. In addition to this the command allows an easy way of inviting\r\npeople by name or by team. In order to create Bitbucket PRs, appropriate credentials must be available in `~/al-tools.credentials.json`.\r\nThe `~/al-tools.credentials.json` structure is as follows:\r\n\r\n> **Note:**\r\n> \r\n> In order to execute npx commands that are declared in this project from within this project, add `-p .` to the command\r\n> as in `npx -p . pr ...`\r\n\r\n```json\r\n{\r\n    \"bitbucket\": {\r\n        \"username\": \"<user>_alcumusgroup\",\r\n        \"password\": \"--\"\r\n    },\r\n    \"jira\": {\r\n        \"username\": \"<user>\",\r\n        \"password\": \"--\"\r\n    }\r\n}\r\n```\r\n\r\nThe JIRA username/password is required to get JIRA descriptions added to your PR, but is otherwise optional. JIRA\r\nunfortunately requires you to put your normal username and password in the config file, while Bitbucket allows you to\r\ncreate an app password (see [https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html]).\r\n\r\nExamples:\r\n\r\n```bash\r\nnpx pr -r thor # invite Thor to be a reviewer (this will be matched against both full name and username, case insensitive).\r\nnpx pr -r pippin mark # invite all of team Pippin and Mark Gabb to be a reviewer.\r\n```\r\n\r\nAny number of reviewers can be added and additional groupings can easily be added by changing the `teams.json` file in the S3 bucket `al-automation`.\r\n\r\nNOTE: Currently `npx pr` is a short form of `npx pr create`. Additional commands (such as `npx pr update` may be created\r\nin the future).\r\n\r\n`npx pr --help` should provide a good idea of the options available, though sensible defaults for merging to `master`\r\nare provided.\r\n\r\n### Future improvements\r\n\r\n* Add code coverage report to PR.\r\n* Add tasks based on reviewer checklist to PR.\r\n* Stop PR from being created if unit tests fail.\r\n* `npx pr update` - refresh generated content for PR based on changes, but leave other details as they were.\r\n\r\n## Making a new command available\r\n\r\n * Add a `<command>-cli.js` file that will handle CLI arguments. Bear in mind that your file may be called\r\n with arguments that belong to other CLI files so be careful about how you read them.\r\n * Separate the CLI logic from the business logic, business logic goes in `src`.\r\n * Add the name of your CLI file to `package.json` under the `bin` property.\r\n * If appropriate, add it to `common-cli.js`, which is executed for `npx common` as mentioned above.\r\n * Remember to publish the new version when you're done. (When the NPM repo is ready).\r\n","readmeFilename":"README.md","gitHead":"26adbd278639863343e337c0030a4dcdbf2433a8","_id":"@alcumus/common-tools@0.1.2-HF-773-2","_nodeVersion":"10.10.0","_npmVersion":"6.8.0","dist":{"integrity":"sha512-7GdcRUqrTYVLgmXKZ/EFu6zbsPIUCLyDNh+2Odg2RcCz4RxBpsqZ0wP2ECwnH0sQigWeCMWIKNdDO2MXd7F3iw==","shasum":"4dd8291f63eb46901439872cf255fb9ed123cfeb","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.1.2-HF-773-2.tgz","fileCount":40,"unpackedSize":318934,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc49WOCRA9TVsSAnZWagAA5+YP/jDkOL+3RoR3gf+qLG5P\nWTIOSj7bOCRi2ZSwxnhPTGfC6E7N96UsacNF/Eg8OP/hKo0uaCg1ZHWNP4Bk\nQQsCx9BlfxIdyy0M1UauRaahFOgVPgDpYHfjW6uw3KtgbOiXD+IPHoJbqYIC\n7BSCAIlpiwXJe7gDKg9ZMmHUpsl7hn8S/JMkR466QDx0r9BYhgG+4TXtzcYE\nUFo6w3v25d8FoA9ukXrypHI7QsfvZwke3UuNJR4WkFOm3yiKaYGzAkDbv1kr\nrW1XmF7QaBZlizNlVeRx25qh3OfGZz3tKEzHkXsWJChPXdTvOpbKs+IzZUTJ\nKWvMP/ef6jL63wp9GX2YDfPlafA8D6SS6aWm2mL8MyuvDNPAbWkmem9vis7c\nWeIzFFueC6lcsVWnY6VvD61eYRTRb9ysdKBLATxrmPo+Ydh4UmKFPEYGHRD9\nd3YIAGgiZGW8Cl+YPFx4Olkx2z8VXdnHyFwcoUWetXEqOYnAiv7QfIlwZ4fk\nLmt2RnJ2iMNt+oKxatm2WuazYU3hOkXyZA7obexk36hQzI3uA1oRfZUMF6gv\n1F2vQdZC0VqjSvqEvmdMecZ2SyI9cuKZM2h1kAQS07/Du68gYGAbL39zxswu\nLK9RIyKfKySMdZOodkcju7YUzTO0t5MbXpDqvFOeZC9Y5MLhxFIuBYJ6Gcm9\nEoQ1\r\n=4pLz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDVozj1CMYqMEpPgesHDxJx7s3g8wYUHBH/kBijHSbSpAIgcjZazk0EczYwP8LL3HU0M/zl3sDFW7NKqHdsJGQ6UYM="}]},"maintainers":[{"email":"dave@davecozens.com","name":"davecozens"},{"email":"itinfrastructure@alcumusgroup.com","name":"itinfrastructure_alcumusgroup"},{"email":"lauren.mae.welsh@gmail.com","name":"lwelsh"},{"email":"nia.evans@alcumusgroup.com","name":"nevans"},{"email":"simon.fuenffinger@alcumusgroup.com","name":"sfuenffinger"},{"email":"thor84no@gmail.com","name":"thor84no"},{"email":"michael.john.talbot@gmail.com","name":"whydoidoit"},{"email":"nabeelamir2@gmail.com","name":"woozay"}],"_npmUser":{"name":"woozay","email":"nabeelamir2@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.1.2-HF-773-2_1558435214513_0.033384694503905576"},"_hasShrinkwrap":true},"0.1.2":{"name":"@alcumus/common-tools","version":"0.1.2","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js'--fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js'","pr":"./pull-request-cli.js","publish-new":"node ./publish-cli.js","publish-pre-release":"node ./publish-pre-release-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"bitbucket":"^1.4.0","chai":"^4.2.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","mkdirp":"^0.5.1","nodemon":"^1.18.7","request-promise-native":"^1.0.5","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","stylelint":"^10.0.1","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","yargs":"^12.0.2"},"devDependencies":{"mocha":"^5.2.0","proxyquire":"^2.1.0","sinon":"^7.2.2"},"gitHead":"4bbc0506d930b3ff00704e694dc2fcb55426bc33","_id":"@alcumus/common-tools@0.1.2","_nodeVersion":"10.10.0","_npmVersion":"6.8.0","dist":{"integrity":"sha512-hbf3ushDF8hf2oZFWsFt/EYVCBbNYNjldqbZ6szk7jtgnJq4xUwu1BlHIrfKUrbujDavXWPJk5vXXoCGnI3aMQ==","shasum":"b2891c06c44236b5afeeaa2b832724b4faa30acf","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.1.2.tgz","fileCount":40,"unpackedSize":319015,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc49ZqCRA9TVsSAnZWagAA6XQP/2yy0QzX8fv7serbJ86c\ngNGdyk/zk94SAYqTyz0WQLucn/3KKIeNEMj+LKfbATvZkFGd9FhHLG30V5dD\nRccpYgHva74TIhHS7dRTE9KzTlBGa8Ygg5f5/uXxnCHYV30gMf5cmwDEVJ9e\n9JVigb0BJVkJ2/lLcrUDrRWjR/na7pH5eCL7IkvI6VDKGE8VAepSEb4iX1+m\nX6aoSFgk8B28I4VtkDpnZP71mbi3+7BzN7h2bh0tu3CGBVZYASDnedC7879T\nYdEkgK6p95N1rLo88mVCdh3EKLOW555fBYiiaeLOi2ieIcivTPqUjPdZWd/f\n1oWeweKZQGJm3Km1b+oE+WEd6aMIapuBTuMCkiPB3p65Ba5vOzI30A1pil46\n0BoveUA66/1cGbF5pCHCFpSacpVmfUQ6ZMaPQVlFkDIokRLeczRLFgBUMoMw\nsS+9jHcg2EVSBsnAQDXrWakTLfHSKJm/N4+BTe1MgFylXUO4e4a0dgWodnEZ\ncVbyPUyVv2N3A/1+B97JIqw81dTfMW55I1OUcnyTUjNqwouw5Co0+tiB+kEO\nZbp2/SjxoTvdSfRg9CSvTzyy+OqO53nYd7sW02uonvm20Sxmr7gTOfr90RKM\niffBIIZywNsCJHQ6AGBGpmYPJissNOjl4RsgNVYBuXjYf5+wovsG6Q6e5AoE\nxPqG\r\n=wcV8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAFpvAdn2AUv0wDlgGoSpItwcDfLXvxUlgeoSJXO2OlSAiBy+84p5PMNm90nOPkTH//Mopo97rzEBheq14MKML6ejQ=="}]},"maintainers":[{"email":"dave@davecozens.com","name":"davecozens"},{"email":"itinfrastructure@alcumusgroup.com","name":"itinfrastructure_alcumusgroup"},{"email":"lauren.mae.welsh@gmail.com","name":"lwelsh"},{"email":"nia.evans@alcumusgroup.com","name":"nevans"},{"email":"simon.fuenffinger@alcumusgroup.com","name":"sfuenffinger"},{"email":"thor84no@gmail.com","name":"thor84no"},{"email":"michael.john.talbot@gmail.com","name":"whydoidoit"},{"email":"nabeelamir2@gmail.com","name":"woozay"}],"_npmUser":{"name":"woozay","email":"nabeelamir2@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.1.2_1558435433455_0.8761411621749307"},"_hasShrinkwrap":true},"0.1.3-HF-888-1":{"name":"@alcumus/common-tools","version":"0.1.3-HF-888-1","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js'--fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js'","pr":"./pull-request-cli.js","publish-new":"node ./publish-cli.js","publish-pre-release":"node ./publish-pre-release-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"bitbucket":"^1.4.0","chai":"^4.2.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","mkdirp":"^0.5.1","nodemon":"^1.18.7","request-promise-native":"^1.0.5","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","stylelint":"^10.0.1","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","yargs":"^12.0.2"},"devDependencies":{"mocha":"^5.2.0","proxyquire":"^2.1.0","sinon":"^7.2.2"},"readme":"# Common Rules\n\nThis repository contains common automation tools to be shared among multiple projects, including tools for installing linting rules etc.\n\nAll changes to this project should be published under a new version number.\n\nTo use this project, first install using `npm i --save-dev alcumus-common-tools`, then use the provided binaries to install what you need. For example:\n\n```bash\nnpx common # install the most common options needed (eslint, .editorconfig, git hooks, etc.).\nnpx linting # install eslint.\nnpx linting react # install linters needed for react projects\nnpx editor-config # install just .editorconfig file.\nnpx git-hooks # NOT YET IMPLEMENTED: this will install the common git hooks to the project.\n```\n\n`npx common` forwards any parameters it receives to all of the other commands it triggers so `npx common eslint` will call `npx linting eslint`.\n\nThese commands should create very minimal files within your current project\n(a symlink where appropriate, a simple config file that just extends the ones from this project elsewhere).\nIn the case of extending config files for linters it also allows us to make project specific changes\nif appropriate; though this should be a last resort.\n\nOverall we should make our changes in just this project and use npm to upgrade to newer versions in other projects.\n\n## Using locally\n\nIn order to test locally, just clone the repo and link a test project to this as follows:\n\n```bash\nnpm link # execute in the root of this project to make npm associate this folder with the correct package.\ncd <project> # change to your test project.\nnpm link alcumus-common-tools # equivalent of npm i alcumus-common-tools, but creates symlinks in node_modules instead of installing.\n```\n\n## Publishing changes\n\nTo publish changes you've made (and tested locally), just run `npm run publish-new`. This will publish to the correct NPM registrar as\nwell as bumping the version number ready for the next change. For major version changes, first change `package.json` to have the correct\nversion number, then run `npm run publish-new`.\n\n## Publishing pre-relase\n\nTo publish a pre-release version of changes you've made (and tested locally), just run `npm run publish-pre-release`. This will publish a pre-release version to the correct npm repo using the\nversion defined in the package json and current branch number in the following format: version-branch-publishVersion (e.g. 0.1.10-HF-563-1) it will then increment\nthe publish version for each subsequent run of the pre-release job.\n\n## Using on Windows\n\nUsage on Windows should be the same as usage on Mac, except that it must be run as an administrator (run your IDE or CMD itself as admin).\n\n## Git hooks\n\nA set of git hooks will be installed in the current project when using `npx common`. They can also be specifically installed\nwith the `npx install-git-hooks` command. At present these git hooks provide the following functionality:\n\n* Warn when you check out a branch that does not follow the branch naming convention (<ticket>-<description>) or is specifically exempt (master).\n* Ensure that all commit messages are prefixed with the ticket number from the branch they were created on. I.e., if you commit with a message\n\"Fixing unit tests\" on branch \"HF-99-fixing-framework-bug\" your commit message will be automatically changed to \"HF-99: Fixing unit tests\".\n\nTo create more git hooks, simply create a new file with a file name matching any [git hook](https://githooks.com) file\nname (with .js after it) in `src/git-hooks` and run the install again. The files will be symlinked to `.git/hooks/`\nmaking sure they will be updated if the npm module is updated.\n\n## Pull-requests\n\nThis repository exposes a `npx pr` command that can be used to create pull requests in a standardised way that can be\nextended later. At present, this will ensure that the project passes linting before allowing a PR to be created. In the\nfuture this will be extended to include unit tests passing if present etc. In addition to this, a report can be\ngenerated that will be attached to the PR itself. At the moment this just compares linting pre-PR and post-PR, but can\nbe extended to show changes in code coverage, etc. In addition to this the command allows an easy way of inviting\npeople by name or by team. In order to create Bitbucket PRs, appropriate credentials must be available in `~/al-tools.credentials.json`.\nThe `~/al-tools.credentials.json` structure is as follows:\n\n> **Note:**\n> \n> In order to execute npx commands that are declared in this project from within this project, add `-p .` to the command\n> as in `npx -p . pr ...`\n\n```json\n{\n    \"bitbucket\": {\n        \"username\": \"<user>_alcumusgroup\",\n        \"password\": \"--\"\n    },\n    \"jira\": {\n        \"username\": \"<user>\",\n        \"password\": \"--\"\n    }\n}\n```\n\nThe JIRA username/password is required to get JIRA descriptions added to your PR, but is otherwise optional. JIRA\nunfortunately requires you to put your normal username and password in the config file, while Bitbucket allows you to\ncreate an app password (see [https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html]).\n\nExamples:\n\n```bash\nnpx pr -r thor # invite Thor to be a reviewer (this will be matched against both full name and username, case insensitive).\nnpx pr -r pippin mark # invite all of team Pippin and Mark Gabb to be a reviewer.\n```\n\nAny number of reviewers can be added and additional groupings can easily be added by changing the `teams.json` file in the S3 bucket `al-automation`.\n\nNOTE: Currently `npx pr` is a short form of `npx pr create`. Additional commands (such as `npx pr update` may be created\nin the future).\n\n`npx pr --help` should provide a good idea of the options available, though sensible defaults for merging to `master`\nare provided.\n\n### Future improvements\n\n* Add code coverage report to PR.\n* Add tasks based on reviewer checklist to PR.\n* Stop PR from being created if unit tests fail.\n* `npx pr update` - refresh generated content for PR based on changes, but leave other details as they were.\n\n## Making a new command available\n\n * Add a `<command>-cli.js` file that will handle CLI arguments. Bear in mind that your file may be called\n with arguments that belong to other CLI files so be careful about how you read them.\n * Separate the CLI logic from the business logic, business logic goes in `src`.\n * Add the name of your CLI file to `package.json` under the `bin` property.\n * If appropriate, add it to `common-cli.js`, which is executed for `npx common` as mentioned above.\n * Remember to publish the new version when you're done. (When the NPM repo is ready).\n","readmeFilename":"README.md","gitHead":"0942f0714368133bc2b17a3ab3c146fc4c664487","_id":"@alcumus/common-tools@0.1.3-HF-888-1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"nevans","email":"nia.evans@alcumusgroup.com"},"dist":{"integrity":"sha512-7ZI092aBhtSaPKiPn5X4w2cTWxNrbXU0xcQJQSsLRoKJZgGx6lvialjYZI7jQi8Z9ahXaQnb11eKaBLLTE1lgg==","shasum":"eb88393c3d141303e7df45ad0f261176d8202f75","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.1.3-HF-888-1.tgz","fileCount":40,"unpackedSize":310835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc/g71CRA9TVsSAnZWagAA/rQP/3GYGCWorOPW30AboNWR\neuyK0hWf92WbS/cllcfG6qPrxRxxg7FUxv5vtQf4hkZes2mbCMyz7AMgMu1H\nwijrBjnD4J/v5kJCxUiMD9v7YJ6cFPsa2aFAG9GdYYlcllRCDoWCZYDhA+TD\nxpM5SWwcnRNM4FcERkDfhIdnCuEvrokhYiHWh539IvdhjnqJT/VbrVylPcAF\na2PoAYJ8ZWz7d8eDQkIE2HDIrtkqdOnONTenKmGaygVrOspdEM26qgUdvIYf\n6Ph9Y8t8bLswzn/4WQOv9RwSLd0jDq6ZwFoDxKdrqq/F/CYTxrI3ajLaEPhw\ncjFB7REJZZQ2xOXLZmfVXL2BCwMY8P3waJax4+c3c0cUKb5zw+ylo+jP0QFl\nLNMgUd4iKR1VBiHqheuU9lYOtbRVTWeTff7sYG98Gr/6NHnEo/mhrYnfvHmt\nPEt/eyxyID/rRZPbyhHuO4qx+MQrUUykcTMEQfa8EpYZ0jOQ30AJ+wb/hZQg\nIB/uOaBduD7UnHJl6AS676prWXDZCN/OC2BNSG4f0sXuce58+3B9rIsoGAmX\n3eQnkoVjrhe1ltmxc7HCg1CMiuCH6LKgPaKM0YsHwiOJcs0tR1hxosAbCLOG\niD03Drg5Z0vtgp18baXo8DP9mSV24HegOP85RTSyZB/YQioCs0V3S9Z4sz75\niq4a\r\n=aNbX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWvHKLDBDo0dDvi0H0bh5GJ0hjc8GuRQ8v7PdxlUfc+AIgOA5cLI2I7i2HtSYN7EbwZXZAE5Zn4o8a7gzjSY1bAjo="}]},"maintainers":[{"email":"andrew.robinson@alcumusgroup.com","name":"andtrobs"},{"email":"dave@davecozens.com","name":"davecozens"},{"email":"itinfrastructure@alcumusgroup.com","name":"itinfrastructure_alcumusgroup"},{"email":"mark.gabb@alcumusgroup.com","name":"markgabb"},{"email":"nia.evans@alcumusgroup.com","name":"nevans"},{"email":"michael.john.talbot@gmail.com","name":"whydoidoit"},{"email":"nabeelamir2@gmail.com","name":"woozay"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.1.3-HF-888-1_1560153844806_0.6856266647418745"},"_hasShrinkwrap":true},"0.1.3":{"name":"@alcumus/common-tools","version":"0.1.3","description":"Common tools for automation etc. to be shared among projects.","main":"common-cli.js","bin":{"common":"./common-cli.js","editor-config":"./editorconfig-cli.js","install-git-hooks":"./install-git-hooks.js","linting":"./linting-cli.js","pr":"./pull-request-cli.js","publish-new":"./publish-cli.js","publish-pre-release":"./publish-pre-release-cli.js"},"scripts":{"fix":"eslint 'src/**/*.js' '*.js'--fix","install-git-hooks":"./install-git-hooks.js","lint":"eslint 'src/**/*.js' '*.js'","pr":"./pull-request-cli.js","publish-new":"node ./publish-cli.js","publish-pre-release":"node ./publish-pre-release-cli.js","test":"mocha 'test/**/*.test.js'","watch":"nodemon --ext html,scss,js,json --exec \"npm run lint || exit 1\""},"author":{"name":"AlcumusGroup"},"license":"ISC","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","publishConfig":{"access":"public"},"dependencies":{"bitbucket":"^1.4.0","chai":"^4.2.0","eslint":"^5.7.0","eslint-plugin-react":"^7.11.1","eslint-plugin-react-hooks":"0.0.0","jira-connector":"^2.9.0","lodash":"^4.17.11","mkdirp":"^0.5.1","nodemon":"^1.18.7","request-promise-native":"^1.0.5","rimraf":"^2.6.3","rollup":"^1.1.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-executable":"^1.4.3","rollup-plugin-node-resolve":"^4.0.0","stylelint":"^10.0.1","stylelint-config-standard":"^18.2.0","stylelint-scss":"^3.3.1","title-case":"^2.1.1","yargs":"^12.0.2"},"devDependencies":{"mocha":"^5.2.0","proxyquire":"^2.1.0","sinon":"^7.2.2"},"gitHead":"5357466177bf1534373027278b8ebd52029bc845","_id":"@alcumus/common-tools@0.1.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"nevans","email":"nia.evans@alcumusgroup.com"},"dist":{"integrity":"sha512-vklkdOElcZXC/Rbzpi3cK6mBtWfkI5X476f+y85y8ciEcKJ4aDIL/aSVvoiAnQ3ByB0kVP5ftcrtIzD4+UUHig==","shasum":"cbc6899d1f73ec3b5f2a855779a1f117f6dc86bd","tarball":"https://registry.npmjs.org/@alcumus/common-tools/-/common-tools-0.1.3.tgz","fileCount":40,"unpackedSize":310826,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc/hSeCRA9TVsSAnZWagAAQxQP/jYygWaRDNl0KHUKLzgK\n/srO7DGceFZZf9kdBYvXFEQ4WvOC2uOjg2nvnTt5msY0zRHz78aYfaEE56W2\nD9NJxOTj4qA2mofkTkidsvEew7j5qCm36xYaTtRsw2S8278EBwgaRg3ecCiL\nbGTdAgDlyNEpt7HJhC5vhFEIwggDYG++oEt1wgVcW2lz8LBmzabeZPNWAu+G\nFPGTftIyExxPbJ4Nc0Im+PSH8W2F9jT+agQs0oV5Q3w01gkjHLbMrIIaOK5L\nT6xv1Xaxq/VzkUoe7AfebaQ919WXK1H6nFuLTuBLvunt/bttqXmLEWO3+d8a\n/VlQa5O5wuEy26/UZ5rtuAIpBbwdyplJS+/8Lv0UK+3HOST29DdxabVjEEhN\n0+8KwhuibUqj5S+LUShIlMio+1hzRSBZtmerpxy6xjgGtbwx83wfp/oCtN04\nqXhEM7Pt8cup/BlWtgUqbbQR9WBX2eMSYQki0er0+VJN0jovSFl1RBhLPF+p\nQrTOfik2l082CLhV0JmT09riO18VZqP1ghLPOeyI1N0F11maixXvrDGE3VPa\nsZs5xu4fnoviSNYJ6/Ri/eFrByV/d8JkzNE0Rd1hIvIGwDLLfceOHELvg/6R\nmFRzJzapCYKS/dMn+dpkVS2KjyXmOK8g/3gKg1Pco+KOny7DSrzMU2P0IuVW\njM/y\r\n=BZAW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA91pLZaeJAHFcEezHN/aoIHrwTiSbSKty1M3QjDLgiWAiEAvrg+rzuSRbHX+rvI0KhsYGFUX6qEednIIptP3ICP3Mw="}]},"maintainers":[{"email":"andrew.robinson@alcumusgroup.com","name":"andtrobs"},{"email":"dave@davecozens.com","name":"davecozens"},{"email":"itinfrastructure@alcumusgroup.com","name":"itinfrastructure_alcumusgroup"},{"email":"mark.gabb@alcumusgroup.com","name":"markgabb"},{"email":"nia.evans@alcumusgroup.com","name":"nevans"},{"email":"michael.john.talbot@gmail.com","name":"whydoidoit"},{"email":"nabeelamir2@gmail.com","name":"woozay"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/common-tools_0.1.3_1560155293422_0.5383929131335634"},"_hasShrinkwrap":true}},"time":{"created":"2019-04-09T11:49:46.572Z","0.0.16":"2019-04-09T11:49:46.969Z","modified":"2022-05-20T11:04:49.217Z","0.0.17":"2019-04-10T10:36:25.538Z","0.0.18-alpha.1":"2019-04-12T08:31:35.085Z","0.0.18":"2019-04-12T09:14:43.261Z","0.0.19":"2019-04-17T11:25:17.728Z","0.0.21-HF-563-1":"2019-04-29T13:49:06.942Z","0.0.21-HF-563-2":"2019-04-29T14:10:15.792Z","0.0.21-HF-563-3":"2019-04-29T14:12:32.330Z","0.0.21-HF-563-4":"2019-04-29T14:14:58.342Z","0.0.21-HF-563-5":"2019-05-01T09:17:01.657Z","0.0.21-HF-563-6":"2019-05-01T09:17:34.692Z","0.0.21-HF-563-26":"2019-05-01T09:18:05.677Z","0.1.0":"2019-05-01T09:48:45.308Z","0.1.1-HF-639-1":"2019-05-02T09:35:04.127Z","0.1.1":"2019-05-02T10:23:30.320Z","0.1.2-HF-701-1":"2019-05-20T10:27:56.154Z","0.1.2-HF-773-1":"2019-05-21T10:39:17.608Z","0.1.2-HF-773-2":"2019-05-21T10:40:14.619Z","0.1.2":"2019-05-21T10:43:53.570Z","0.1.3-HF-888-1":"2019-06-10T08:04:04.971Z","0.1.3":"2019-06-10T08:28:13.582Z"},"maintainers":[{"email":"itinfrastructure@alcumusgroup.com","name":"itinfrastructure_alcumusgroup"},{"email":"andrew.robinson@alcumusgroup.com","name":"andtrobs"},{"email":"matthew.mogford@alcumusgroup.com","name":"mattmogford-alcumus"}],"description":"Common tools for automation etc. to be shared among projects.","homepage":"https://github.com/Alcumus/al-common-tools/blob/master/README.md","author":{"name":"AlcumusGroup"},"license":"ISC","readme":"# Common Rules\n\nThis repository contains common automation tools to be shared among multiple projects, including tools for installing linting rules etc.\n\nAll changes to this project should be published under a new version number.\n\nTo use this project, first install using `npm i --save-dev alcumus-common-tools`, then use the provided binaries to install what you need. For example:\n\n```bash\nnpx common # install the most common options needed (eslint, .editorconfig, git hooks, etc.).\nnpx linting # install eslint.\nnpx linting react # install linters needed for react projects\nnpx editor-config # install just .editorconfig file.\nnpx git-hooks # NOT YET IMPLEMENTED: this will install the common git hooks to the project.\n```\n\n`npx common` forwards any parameters it receives to all of the other commands it triggers so `npx common eslint` will call `npx linting eslint`.\n\nThese commands should create very minimal files within your current project\n(a symlink where appropriate, a simple config file that just extends the ones from this project elsewhere).\nIn the case of extending config files for linters it also allows us to make project specific changes\nif appropriate; though this should be a last resort.\n\nOverall we should make our changes in just this project and use npm to upgrade to newer versions in other projects.\n\n## Using locally\n\nIn order to test locally, just clone the repo and link a test project to this as follows:\n\n```bash\nnpm link # execute in the root of this project to make npm associate this folder with the correct package.\ncd <project> # change to your test project.\nnpm link alcumus-common-tools # equivalent of npm i alcumus-common-tools, but creates symlinks in node_modules instead of installing.\n```\n\n## Publishing changes\n\nTo publish changes you've made (and tested locally), just run `npm run publish-new`. This will publish to the correct NPM registrar as\nwell as bumping the version number ready for the next change. For major version changes, first change `package.json` to have the correct\nversion number, then run `npm run publish-new`.\n\n## Publishing pre-relase\n\nTo publish a pre-release version of changes you've made (and tested locally), just run `npm run publish-pre-release`. This will publish a pre-release version to the correct npm repo using the\nversion defined in the package json and current branch number in the following format: version-branch-publishVersion (e.g. 0.1.10-HF-563-1) it will then increment\nthe publish version for each subsequent run of the pre-release job.\n\n## Using on Windows\n\nUsage on Windows should be the same as usage on Mac, except that it must be run as an administrator (run your IDE or CMD itself as admin).\n\n## Git hooks\n\nA set of git hooks will be installed in the current project when using `npx common`. They can also be specifically installed\nwith the `npx install-git-hooks` command. At present these git hooks provide the following functionality:\n\n* Warn when you check out a branch that does not follow the branch naming convention (<ticket>-<description>) or is specifically exempt (master).\n* Ensure that all commit messages are prefixed with the ticket number from the branch they were created on. I.e., if you commit with a message\n\"Fixing unit tests\" on branch \"HF-99-fixing-framework-bug\" your commit message will be automatically changed to \"HF-99: Fixing unit tests\".\n\nTo create more git hooks, simply create a new file with a file name matching any [git hook](https://githooks.com) file\nname (with .js after it) in `src/git-hooks` and run the install again. The files will be symlinked to `.git/hooks/`\nmaking sure they will be updated if the npm module is updated.\n\n## Pull-requests\n\nThis repository exposes a `npx pr` command that can be used to create pull requests in a standardised way that can be\nextended later. At present, this will ensure that the project passes linting before allowing a PR to be created. In the\nfuture this will be extended to include unit tests passing if present etc. In addition to this, a report can be\ngenerated that will be attached to the PR itself. At the moment this just compares linting pre-PR and post-PR, but can\nbe extended to show changes in code coverage, etc. In addition to this the command allows an easy way of inviting\npeople by name or by team. In order to create Bitbucket PRs, appropriate credentials must be available in `~/al-tools.credentials.json`.\nThe `~/al-tools.credentials.json` structure is as follows:\n\n> **Note:**\n> \n> In order to execute npx commands that are declared in this project from within this project, add `-p .` to the command\n> as in `npx -p . pr ...`\n\n```json\n{\n    \"bitbucket\": {\n        \"username\": \"<user>_alcumusgroup\",\n        \"password\": \"--\"\n    },\n    \"jira\": {\n        \"username\": \"<user>\",\n        \"password\": \"--\"\n    }\n}\n```\n\nThe JIRA username/password is required to get JIRA descriptions added to your PR, but is otherwise optional. JIRA\nunfortunately requires you to put your normal username and password in the config file, while Bitbucket allows you to\ncreate an app password (see [https://confluence.atlassian.com/bitbucket/app-passwords-828781300.html]).\n\nExamples:\n\n```bash\nnpx pr -r thor # invite Thor to be a reviewer (this will be matched against both full name and username, case insensitive).\nnpx pr -r pippin mark # invite all of team Pippin and Mark Gabb to be a reviewer.\n```\n\nAny number of reviewers can be added and additional groupings can easily be added by changing the `teams.json` file in the S3 bucket `al-automation`.\n\nNOTE: Currently `npx pr` is a short form of `npx pr create`. Additional commands (such as `npx pr update` may be created\nin the future).\n\n`npx pr --help` should provide a good idea of the options available, though sensible defaults for merging to `master`\nare provided.\n\n### Future improvements\n\n* Add code coverage report to PR.\n* Add tasks based on reviewer checklist to PR.\n* Stop PR from being created if unit tests fail.\n* `npx pr update` - refresh generated content for PR based on changes, but leave other details as they were.\n\n## Making a new command available\n\n * Add a `<command>-cli.js` file that will handle CLI arguments. Bear in mind that your file may be called\n with arguments that belong to other CLI files so be careful about how you read them.\n * Separate the CLI logic from the business logic, business logic goes in `src`.\n * Add the name of your CLI file to `package.json` under the `bin` property.\n * If appropriate, add it to `common-cli.js`, which is executed for `npx common` as mentioned above.\n * Remember to publish the new version when you're done. (When the NPM repo is ready).\n","readmeFilename":"README.md"}