{"_id":"hi_score","_rev":"175-23c83c27d33e659fde1ba48d4a9b1eea","name":"hi_score","description":"A full-life-cycle un-framework for SPA development using native JS, CSS, and HTML.","dist-tags":{"latest":"1.7.12"},"versions":{"0.0.1":{"name":"hi_score","version":"0.0.1","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? hi_score is here to help architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"echo \"Not applicable\" && exit 0;"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"maintainers":[{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"}],"gitHead":"fe539f692e800b3384d92cbfbff69db5b18af7e1","_id":"hi_score@0.0.1","_shasum":"d13b93f4de579b1d0fbfa3f819371900cbbd5a42","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"d13b93f4de579b1d0fbfa3f819371900cbbd5a42","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.0.1.tgz","integrity":"sha512-z1NEe3ezLXnMUTEAMANlZuUUZL+qOvWXKdkjgjeAlxQbNsDLjsvJMU4l4iJt3SSEwPfIz1etcQUVBgBQ343FNQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGeSuxEPGM5kAmJNrFB9GGZ2dOkmJo/F6cXmujQYKoSvAiBiRzZZNz4qh6LncatUY4PxLLqB0zQgePMIjY3d+2bPKw=="}]},"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/hi_score-0.0.1.tgz_1455759997223_0.109697001054883"},"directories":{}},"0.0.2":{"name":"hi_score","version":"0.0.2","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? hi_score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"echo \"Not applicable\" && exit 0;"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"91008174b080e3aef9e0e56b7a2c6623c5f3bb65","_id":"hi_score@0.0.2","_shasum":"11915b7506ce1dc32535d6f09e26e4c491c847b5","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"11915b7506ce1dc32535d6f09e26e4c491c847b5","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.0.2.tgz","integrity":"sha512-ErBOxScGuP6dRGyeq7XLhQNDJcX8pq2du+Rif2jaefDkHiLkUHNlHyxayycTexCCaVvTmwajp0j294eb7U6ZOQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLub0eM4S7HP6o4GUhXzfDRt7SkHhX8nja6Fely0D1oQIgDS56kpYb8X7ZEZ1VWwoAcCnjcGn7Ww37BDvKexNMWGo="}]},"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/hi_score-0.0.2.tgz_1455761231268_0.7594403496477753"},"directories":{}},"0.0.4":{"name":"hi_score","version":"0.0.4","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? hi_score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"echo \"Not applicable\" && exit 0;"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"d91c6f43feba41e33016b9080d988ad16726105a","_id":"hi_score@0.0.4","_shasum":"7c061923e82858d87e51a128b04d3b5d794a4c3e","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.7.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"7c061923e82858d87e51a128b04d3b5d794a4c3e","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.0.4.tgz","integrity":"sha512-cAaXXyIHoYQUD8Gt81ZGckz1ONUbMEiziHat6TneImAh1Zxp95JENjgiPU4g3FWLVtqaWcTrQFRBEwxlctq/mg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMrPO7TeHtyCApnc+jKQyo9n3X3l5t8LDPF8T04UqgRgIgGXEENlOmY+7BlItbNku68vMD7GJFeXSFjaM0F9EpnuE="}]},"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/hi_score-0.0.4.tgz_1456724494211_0.9162018636707217"},"directories":{}},"0.0.5":{"name":"hi_score","version":"0.0.5","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? hi_score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"echo \"Not applicable\" && exit 0;"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"8d6438b19b860a39be7f00f6cc4e3d0fa7519fc5","_id":"hi_score@0.0.5","_shasum":"71485230c00f131acb9cce57b6e500d986889eab","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.3","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"71485230c00f131acb9cce57b6e500d986889eab","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.0.5.tgz","integrity":"sha512-LSsBjH20Y4GNKE4duzAwwPnaT0mrMVzRG8Z9qyudLlVkHkHeU2rOt0BOyOwiDAzTBUmgDV8RNZ4t2oYpH4jJvw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICxdNMwAZspZBcVkI9HM5UjvK25P7Yh0wcgQa4nGpMJWAiEA0FM8tc6g/us033hbLjID4/ebbvpRYiKWSHziB6jRB/s="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/hi_score-0.0.5.tgz_1462672569911_0.02393152774311602"},"directories":{}},"0.0.6":{"name":"hi_score","version":"0.0.6","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? hi_score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"echo \"Not applicable\" && exit 0;"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"7e9d200f7178cd5f78a44a8d693eb2b3a828b1db","_id":"hi_score@0.0.6","_shasum":"3901de071a62bd272b8a03e92b5a4f08e0799366","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.3","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"3901de071a62bd272b8a03e92b5a4f08e0799366","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.0.6.tgz","integrity":"sha512-nIbLVNnBkD9pf3IstO88RTAV5SSsioaiLIlabanXH7miFVSuRmdB3/FnfOa4yz5X6gig7nooLCc/soeFNNNEXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDeQzRoSkSyHmhRfEe2f525ZFQudw+4p87RDEXcmpoIfgIgEq0VmVGs74GEeCq6Guyj7YTfIBR5bM4Y/dle+4wYbjw="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/hi_score-0.0.6.tgz_1462673447594_0.3104284545406699"},"directories":{}},"0.0.9":{"name":"hi_score","version":"0.0.9","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? hi_score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"echo \"Not yet applicable\" && exit 0;"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"cdc2a0198011f58c63dc779c4a3e943991dee236","_id":"hi_score@0.0.9","_shasum":"4d2971126e8bc6493348e11e64cae743fecea686","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.11.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"4d2971126e8bc6493348e11e64cae743fecea686","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.0.9.tgz","integrity":"sha512-18FkCETQl4IdpkMhprHQWzCUsboFWRXKcEoRpXiU5TvvMVeVpBXMwqqiU+7cDsYm1EqQjDtmD2v9YV4G4wZWLA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHuw9XMSLx5Kp6cpK1KqvytKj+IMW1+ecVkyc50qVcpbAiEArQ8y3UgzvGO5u/DOU3DBRl4Kky6+TWo99LWLGixho08="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.0.9.tgz_1465711582411_0.6664204939734191"},"directories":{}},"0.2.0":{"name":"hi_score","version":"0.2.0","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"jslint":"^0.9.6","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0","node-inspector":"^0.12.5"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"bb273ac84c14691bf9ae94782d22e75b44501963","_id":"hi_score@0.2.0","_shasum":"b2accd94104d090f964abb2709ce63fce9927d5d","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"b2accd94104d090f964abb2709ce63fce9927d5d","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.2.0.tgz","integrity":"sha512-ojGjh/7pAII+e8tVdr7V75NVkmDdOwOu5Mk3uLzeEiHFeFvP4yt8oPLmTIAcx4pWshAPl3Tszgd//c/xH/lg/w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9N7L6+/H2celLLwYqz8Ysk34RlljrttsOFMPNs5YOmAIhANl0m0YxMSSP2kr0TJIDYfH1z88h93Ypr2dcsbVNsbwu"}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/hi_score-0.2.0.tgz_1474089980119_0.7460628747940063"},"directories":{}},"0.2.1":{"name":"hi_score","version":"0.2.1","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"jslint":"^0.9.6","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0","node-inspector":"^0.12.5"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"976ee4d8166ccb89211e9e7587fd26559bb11cc9","_id":"hi_score@0.2.1","_shasum":"676231cd4a2d3b4eaea5c96fdd98cbeb378165b5","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"676231cd4a2d3b4eaea5c96fdd98cbeb378165b5","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.2.1.tgz","integrity":"sha512-BlZB/wR77gymC5gzfw1IU9zFmM+Ts20ZQlSSinQOfFoQ/SoMuQ6qA87Zx3hbtLnfO022gMQFhRXoUI5hepZlDg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE6Pc1BIGx+V7PylLGEtdaCOBEpzbzDLKVCf4FXl2q+EAiB8knU6co7K9sZ7BMnw59Rikl0pObIqkiRwWZxvlRISmg=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.2.1.tgz_1474134719997_0.9988449087832123"},"directories":{}},"0.2.3":{"name":"hi_score","version":"0.2.3","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"jslint":"^0.9.6","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0","node-inspector":"^0.12.5"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"f2b3706cbbfefefac1fc6a9d6cfdc0bb17d984ee","_id":"hi_score@0.2.3","_shasum":"408373dac3a3f05a076a04c28f09be9857fd839a","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.7.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"408373dac3a3f05a076a04c28f09be9857fd839a","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.2.3.tgz","integrity":"sha512-gKq31i2BgVoTHPBobbHEE+gkPkx9hybNzQP2RaUZLYbWK/xqmsTZ+Nd5wHl+36Fr5Ie2fMFmbekBhkmTGC/YGw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFmxaI8VVKTK8EnsaUw4DFDTjeLCoiPI1nIrrGFQChebAiAGRQPJ9it1JMGqredhDOjUXGMAGVAD28azoPZrMxB3aw=="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/hi_score-0.2.3.tgz_1476068514616_0.727576864650473"},"directories":{}},"0.2.4":{"name":"hi_score","version":"0.2.4","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"jslint":"^0.9.6","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0","node-inspector":"^0.12.5"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"bd0c3267e908e88424648d73984f99b4c793336f","_id":"hi_score@0.2.4","_shasum":"aadf5c9c513aa9bff9a3e8a129e5ad04f2c12bd2","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"aadf5c9c513aa9bff9a3e8a129e5ad04f2c12bd2","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.2.4.tgz","integrity":"sha512-mTi417jB2+lhj2HJUu/u08UWZWfCJs8P8Iln89oOODiCDoNg/lpYMe7AOyjj+nKr0aEczHWfHoEAZ3bh/h6cfQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGVKmpMrVxMTT/4Yyaz6TxfC2UyCBOviCuHi9H2utZq4AiEAnfBupHB5/MOiBcvdOCIWIF2O5BPfu5Um88p2bwplP8I="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/hi_score-0.2.4.tgz_1476127190423_0.5707095668185502"},"directories":{}},"0.2.6":{"name":"hi_score","version":"0.2.6","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"jscoverage":"^0.6.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"93391395bf5bcb053fd764a08fa91c2e5e587395","_id":"hi_score@0.2.6","_shasum":"f18cccd95cbac51196246afcc6bae67d8b7082a2","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"f18cccd95cbac51196246afcc6bae67d8b7082a2","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.2.6.tgz","integrity":"sha512-WtLtCM1cGkjlCZcL+pOfvr2wzOzhr3lNgFjKEob+R3vfX4jY6DMbJczNfgdlIOGC5PpQdX8uoPpJBfMc2eEmtA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICUI5oOTg3wRVL/zPj4J4yjZu1LDNDC7gS/JUW9P+XSSAiBERnhgo0ZDc/MZGtrDQoHsclZ628QhAjmpOcIvz7bAoA=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.2.6.tgz_1476165023459_0.028294143732637167"},"directories":{}},"0.3.0":{"name":"hi_score","version":"0.3.0","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js","coveralls":"jscoverage js && DO_COV=1 node_modules/.bin/nodeunit --reporter=lcov test/nu_xhi.util.js | node_modules/.bin/coveralls","coverage":"jscoverage js && DO_COV=1 node_modules/.bin/nodeunit --reporter=lcov test/nu_xhi.util.js > coverage/out.da; genhtml coverage/out.da -o coverage"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","jscoverage":"^0.6.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"dede2c7f22b81d9f9d6d2ac4801ec9ef5963e8c2","_id":"hi_score@0.3.0","_shasum":"3b9c82d37ef0d53aeda0802bf350d8530c0834f2","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"3b9c82d37ef0d53aeda0802bf350d8530c0834f2","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.3.0.tgz","integrity":"sha512-F7p++7dDFDBgG4RtK6SgMAUNb/375cwrAbZkGsAFCt1xElmbwpPU0E2x1ezh/ArT0jfiEwVeLTzgrvYQebq8Gw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBiRnZGaC0MvpYhQVkwYEal143ZJxBTAfbGkKGuG14M7AiEAxAm/tmpmONCZFTb8WK4QXLswnXaEX93TMjjo63zr668="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.3.0.tgz_1476218418539_0.2846280939411372"},"directories":{}},"0.3.2":{"name":"hi_score","version":"0.3.2","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js","coveralls":"jscoverage js && DO_COV=1 node_modules/.bin/nodeunit --reporter=lcov test/nu_xhi.util.js | node_modules/.bin/coveralls","coverage":"jscoverage js && DO_COV=1 node_modules/.bin/nodeunit --reporter=lcov test/nu_xhi.util.js > coverage/out.da; genhtml coverage/out.da -o coverage"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","jscoverage":"^0.6.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"fe569a48d8a16b2869fb759bc35d3c8905f3da9e","_id":"hi_score@0.3.2","_shasum":"7c1bb10938eddad3c01eab0e4f64d7ef672743a1","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"7c1bb10938eddad3c01eab0e4f64d7ef672743a1","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.3.2.tgz","integrity":"sha512-SOyg87OSWQZozhcPNN3vfwk9sOSuQx8WtRf7uv1hbeBHeAGB10AWsUHUK7QMP/pqcrHPko7A9wJ3NTsAqoa//w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtwLyUJIsYDKZsbNjaVOgijQxHbUeriRIVfyHnOhFkPQIgIxyaryKx1RTU0P7NTAdPOfBs7wZ70lGfDGVSBVpXP2A="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.3.2.tgz_1476302964372_0.03105090861208737"},"directories":{}},"0.3.3":{"name":"hi_score","version":"0.3.3","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js","coveralls":"jscoverage js && DO_COV=1 node_modules/.bin/nodeunit --reporter=lcov test/nu_xhi.util.js | node_modules/.bin/coveralls","coverage":"jscoverage js && DO_COV=1 node_modules/.bin/nodeunit --reporter=lcov test/nu_xhi.util.js > coverage/out.da; genhtml coverage/out.da -o coverage"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","jscoverage":"^0.6.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"4f676bf1b53a418361380f9b8c9ac0c24ef6f8b5","_id":"hi_score@0.3.3","_shasum":"d0bc616a65c477652e245a3836c6d90c91f63efb","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"d0bc616a65c477652e245a3836c6d90c91f63efb","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.3.3.tgz","integrity":"sha512-WWdr+UPpC2FFJjb4ZaYseFYWQEJuiim9NJRYu2AEWFfoVcPnWkmo7xPdxXZ3q+dF89xHWXTUq+eMelPVFiG4WQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCktmYVnSL2ADfKd7FNa01zV5Hr/QaCjxSkjgYElZSkFgIgC4NZVHjuCl1o+k1kTBlQeRxw/j6SSYHIRnkdJuv+4Kg="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.3.3.tgz_1476305532599_0.6545984735712409"},"directories":{}},"0.3.4":{"name":"hi_score","version":"0.3.4","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js","coveralls":"jscoverage js && DO_COV=1 node_modules/.bin/nodeunit --reporter=lcov test/nu_xhi.util.js | node_modules/.bin/coveralls","coverage":"jscoverage js && DO_COV=1 node_modules/.bin/nodeunit --reporter=lcov test/nu_xhi.util.js > coverage/out.da; genhtml coverage/out.da -o coverage"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","jscoverage":"^0.6.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"f662bf9603d9c661a606e1ab3d3e672086f478b5","_id":"hi_score@0.3.4","_shasum":"376e898da149dcbf8b68e9f36e6642780cdba02e","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"376e898da149dcbf8b68e9f36e6642780cdba02e","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.3.4.tgz","integrity":"sha512-ajtiSio0RVM+kFj3A+GCYurEGrViSMo6AR8T90IjzUpHFmmL+VukZu8dfPEf+VcGw2vDgR6nxkaRKE0c2uF64g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAlY38MIw9yGwc49qXx7jAE1QfXXHyxk5zgKtxott3VkAiEAz8ONv+3Yj4bueaE6VxmqwmBu4tb7LZpBjori49T/12M="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.3.4.tgz_1476310281349_0.12463529291562736"},"directories":{}},"0.3.5":{"name":"hi_score","version":"0.3.5","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js","coveralls":"jscoverage js && DO_COV=1 node_modules/.bin/nodeunit --reporter=lcov test/nu_xhi.util.js | node_modules/.bin/coveralls","coverage":"jscoverage js && DO_COV=1 node_modules/.bin/nodeunit --reporter=lcov test/nu_xhi.util.js > coverage/out.da; genhtml coverage/out.da -o coverage"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","jscoverage":"^0.6.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"71b0ec4bef2ebdd205bd2c06dee44be1b6853895","_id":"hi_score@0.3.5","_shasum":"32b2876524ca15c0ed1603ee1b1de4e6ef71f769","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"32b2876524ca15c0ed1603ee1b1de4e6ef71f769","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.3.5.tgz","integrity":"sha512-TAGWLPXlNBew9OPQIlFPIy+9HoJJ5N0Ba1K6T5Ivr9xIq2BpjhOCakslIPqfPRj5yvknFoJfBfr9UitvhCtZ6w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWmPLYJHqdwS6HFRcvnEnaigGSfh4lNNYSrM8SezbiEwIgQSVmIGFLpuEUv1xpQ9haP3+IyBDGLOG8n16oeADprVQ="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.3.5.tgz_1476311053659_0.32370217284187675"},"directories":{}},"0.3.6":{"name":"hi_score","version":"0.3.6","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js","coveralls":"jscoverage js && DO_COV=1 node_modules/.bin/nodeunit --reporter=lcov test/nu_xhi.util.js | node_modules/.bin/coveralls","coverage":"jscoverage js && DO_COV=1 node_modules/.bin/nodeunit --reporter=lcov test/nu_xhi.util.js > coverage/out.da; genhtml coverage/out.da -o coverage"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","jscoverage":"^0.6.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"a3257fef7d4c20377055b4d863f4e5441ef87d35","_id":"hi_score@0.3.6","_shasum":"54975e79a2649d07d4d0fd2e1cf5e18dd2b42f50","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"54975e79a2649d07d4d0fd2e1cf5e18dd2b42f50","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.3.6.tgz","integrity":"sha512-XSGr2WZA8z5OHZ9Vsel6tiKaidBFVhGL+m0NxFth73lWCdiytuR0VA4H0SlZ5qosd1SIMRVZ/FW4SWnz91FpHA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDftRHo9JARWmOp3Rp06vqzSTcEcbc+FuLWDGesArPucAiAgV6oLWWjx33Hjz1WUEN4fupKE93McliW6LP+IXKEAaA=="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/hi_score-0.3.6.tgz_1476312181098_0.31988751399330795"},"directories":{}},"0.4.0":{"name":"hi_score","version":"0.4.0","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js","coverage":"istanbul cover node_modules/.bin/nodeunit test/nu_xhi.util.js","coveralls":"istanbul cover node_modules/.bin/nodeunit test/nu_xhi.util.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jscoverage":"^0.6.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"9ea7f06d12207e5502877e28edcb18cf93d61f91","_id":"hi_score@0.4.0","_shasum":"f6b2c60b2d47b8fb3391d693439bd5442bcc856f","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"f6b2c60b2d47b8fb3391d693439bd5442bcc856f","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.4.0.tgz","integrity":"sha512-egPVWsrXyDjZgggyn9hITunDP/qWX1C0+XTeXunj7EBuer9MaQqdljVqMndWUQ/MhpuiXWa7a2bPbXkAYyRjNw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDqRhAR+hzhf6kJdQACDTYkwbdma0HSP2ryMoZzWF5dbQIgMj7e1EF1OvyE9+lrvF5ONfUwedY3bZsZFSBMGsVIOlI="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.4.0.tgz_1476399151393_0.6003981288522482"},"directories":{}},"0.4.2":{"name":"hi_score","version":"0.4.2","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js","coverage":"istanbul cover node_modules/.bin/nodeunit test/nu_xhi.util.js","coveralls":"istanbul cover node_modules/.bin/nodeunit test/nu_xhi.util.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"7a8b33a54e838c34ffef4fda4ce8a0b544543336","_id":"hi_score@0.4.2","_shasum":"e791ec5d8744bec919b700dad81b4c8b6526c804","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"e791ec5d8744bec919b700dad81b4c8b6526c804","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.4.2.tgz","integrity":"sha512-L58Zq2AFvLZpYCknN7obH7L7LHCE5fRwIEeFVKWkPm8bDjo0MnBsfmPCHHtOGnSDhcE5Vs9bDXN82JJ8Y/0Avg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF7RmSDe3IUbdG/EJ5OSDLFNKlSu1HYtOQRvTbLMVYyUAiB0qippA9D3Ndp5O3DT/7VU3Ng4N/GKEWgA9uVTSa7I1Q=="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/hi_score-0.4.2.tgz_1476401142947_0.6647514237556607"},"directories":{}},"0.4.3":{"name":"hi_score","version":"0.4.3","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js","cover":"istanbul cover node_modules/.bin/nodeunit test/nu_xhi.util.js","covera":"istanbul cover node_modules/.bin/nodeunit test/nu_xhi.util.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"2c1ae2d3489117db756fecf824df71aeb42a3f79","_id":"hi_score@0.4.3","_shasum":"86c307cfd3d6f1b35de4305687fbfc7f3ba03ede","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"86c307cfd3d6f1b35de4305687fbfc7f3ba03ede","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.4.3.tgz","integrity":"sha512-7BK7jfLECv3264awzGWgHuudOvqLzKQAnVxuNXyus/8K/FXq3VFgS3jKR2aZJ0YXSpAFs9SVQYRgIt8ygibiUQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGUe6ml6l7uULQNlcjFzTIJn13yF2+eQCPJQOUesytM3AiAtoKLWVgh8mWwX0LaRNtWaT0qx+59HK3ZiBZtSZyAN8Q=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.4.3.tgz_1476421257260_0.027323013870045543"},"directories":{}},"0.4.4":{"name":"hi_score","version":"0.4.4","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js","cover":"istanbul cover node_modules/.bin/nodeunit test/nu_xhi.util.js","covera":"istanbul cover node_modules/.bin/nodeunit test/nu_xhi.util.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"154048d9c479e8e1818aaa5d70f169ba1af02c7c","_id":"hi_score@0.4.4","_shasum":"a055de0f18b93188d81ec495b39c5a92c6508a53","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"a055de0f18b93188d81ec495b39c5a92c6508a53","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.4.4.tgz","integrity":"sha512-HHH4lNCA3shVxlDHYRioatPSOWVloj0L3j9gPdVdBcNtWgWmcUgFkujjzwGO9M8JikCnG0Htcdn8ldlPRC11Jg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzyTKIUo+grQn4P1epxbzVsbTXot0ON9JqAP/3ER7rCgIhAOVChdcbZLbwZ9Sw5RP3Rpg9oejfLb1dMPbgByYL0/gp"}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/hi_score-0.4.4.tgz_1476478996107_0.23020876664668322"},"directories":{}},"0.4.5":{"name":"hi_score","version":"0.4.5","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js","cover":"istanbul cover node_modules/.bin/nodeunit test/nu_xhi.util.js","covera":"istanbul cover node_modules/.bin/nodeunit test/nu_xhi.util.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"91e9b04257a7f6d02370534b2b1158ae156703ab","_id":"hi_score@0.4.5","_shasum":"7bafb25a0d09a26482c545c5c32741fa5f31e612","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"7bafb25a0d09a26482c545c5c32741fa5f31e612","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.4.5.tgz","integrity":"sha512-HgfgwRMy36Tb/ArWslKMKTiR7zvaNDyXkY6+J1jbvct0k5W2yVyXJlXR69CFMeUl9kisxK1Xva3C9mUNfCLLug==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaD+h8PiZefi68GLbaWEv/Fyl5jj61BQrhPW2mMqZr5QIhAMO87VBHM2fpVR7GSsq7XPMw8XMFgnXBX8bl2EbLDj0Q"}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/hi_score-0.4.5.tgz_1476745045942_0.0697685475461185"},"directories":{}},"0.5.0":{"name":"hi_score","version":"0.5.0","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js","cover":"istanbul cover node_modules/.bin/nodeunit test/nu_xhi.util.js","covera":"istanbul cover node_modules/.bin/nodeunit test/nu_xhi.util.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"7a0280c26549be0c6ff0bfc36fc500e101d954d6","_id":"hi_score@0.5.0","_shasum":"8f918e3fe9563323ce18778ddf9d8a7d7b111b15","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"8f918e3fe9563323ce18778ddf9d8a7d7b111b15","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.5.0.tgz","integrity":"sha512-NGnteVWaRXfpRlklA5iAFNqyzNql5Gp42yq4rmDvmbra74cGDBmzgFEmsNCnuV5AXzyWp6HFzdf9Zh8OrM8mjA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkiv5Xf1mmpQ3vv9/xYRcvL5dH5/pRlsTgz3B+W8KlQwIhAJkCA5G79W7W/q8iaUFpuHJsfAdciHFq0x/TD7aC7+8J"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.5.0.tgz_1476985953158_0.9476016918197274"},"directories":{}},"0.5.1":{"name":"hi_score","version":"0.5.1","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/nu_xhi.util.js","cover":"istanbul cover node_modules/.bin/nodeunit test/nu_xhi.util.js","covera":"istanbul cover node_modules/.bin/nodeunit test/nu_xhi.util.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"bcc7d62ac22f8b1083907df1b5969461ccef83b5","_id":"hi_score@0.5.1","_shasum":"f79d2dc11c1a7a2b6ebf67b881a4968b69c2faf2","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"f79d2dc11c1a7a2b6ebf67b881a4968b69c2faf2","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.5.1.tgz","integrity":"sha512-IP4GCY83RZI5ki1Zlm8i4ElhUwG8zpdeW/BU4ciAO++Cj7CE5B9Y1TBVFa7D0Z1a0lE2eLrhHTzJKNSsq2EgUw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDiaSZ9Z9axqnUHoRLbI/xVeFyQBNzD8H0RCh+hazrcQwIgL2a06y2j8oEQta/mE/hkh1GnQVSoMliVWkuCcjcug4w="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.5.1.tgz_1477008249186_0.36376496055163443"},"directories":{}},"0.5.3":{"name":"hi_score","version":"0.5.3","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jsdom":"^9.8.0","jslint":"^0.9.6","jquery":"3.1.1","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"eb7ba1084f729e65486716f6bc6d269e44017df9","_id":"hi_score@0.5.3","_shasum":"7dd8a923a1b76be4a347a38340c6fe3e333a0f29","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"7dd8a923a1b76be4a347a38340c6fe3e333a0f29","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.5.3.tgz","integrity":"sha512-+JM/x6GWgrhCIrndXeXVF+astJiFOQkjddVK4hNNDniLVSIu0KUwYo0dn2rpjK/rPM0Vf9s1VeMOZv+FfvC1rQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSprMt9wEkY9MxFP+QC7evx7gKe5cc7ITSmzf6o7BxPgIgc0KNNP0kP+BjVRSUuhFyuzoBaakX7MH7F6qvdvIjYHc="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.5.3.tgz_1477421301065_0.807661741739139"},"directories":{}},"0.5.4":{"name":"hi_score","version":"0.5.4","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jsdom":"^9.8.0","jslint":"^0.9.6","jquery":"3.1.1","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"c1090c5a5b6fecf34938b2499dd506fc658d525a","_id":"hi_score@0.5.4","_shasum":"65d909fdc30c9ff93acb119b5becf20f063e5e00","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"65d909fdc30c9ff93acb119b5becf20f063e5e00","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.5.4.tgz","integrity":"sha512-R3VJj6se/dXCK1PkPFemSdJPf74/hxwk8WT2Rf/nXFt7MlsDFMloKwSxbumWMMLr8bPYMqhBqkO12KQrqv8j3w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBV2YVqajFAchEz7GKFqjMIOnpwME5JW9ZG6m/BT0dqgAiAjeGEF3rGhpe6KM/VBeax4ZMRyRwsMTqfco9TEA4Yzvg=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.5.4.tgz_1477521638753_0.5662707558367401"},"directories":{}},"0.5.5":{"name":"hi_score","version":"0.5.5","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jsdom":"^9.8.0","jslint":"^0.9.6","jquery":"3.1.1","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"0238ed22e83a4732bb7231ca170242ad123edee8","_id":"hi_score@0.5.5","_shasum":"f2b061d07c951e5b7a35e5567d6e02755eb0d24c","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"f2b061d07c951e5b7a35e5567d6e02755eb0d24c","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.5.5.tgz","integrity":"sha512-YcIhZv4U1Ynmlf7NxBQWtdzZhsKmptPhqVvVmspYpHpypAzqxSGbgMdbYf5ohH8bHDwfFxQ6qvShEMxAAuhvXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9I4dheLJWw6qz2g+J+rdOIU9kBUYS9tCzkhoP+/DJ8QIhAPGIz4ZNQc2ck4JUO1s789aCFuDqkA7cJHMJn1SDbxvd"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.5.5.tgz_1477522222874_0.459643573500216"},"directories":{}},"0.5.6":{"name":"hi_score","version":"0.5.6","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jsdom":"^9.8.0","jslint":"^0.9.6","jquery":"3.1.1","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"7a65d44f457801b88b7894178da717e155a9f5f5","_id":"hi_score@0.5.6","_shasum":"d0618b24a7417df8186b73e547295d659a3d1453","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"d0618b24a7417df8186b73e547295d659a3d1453","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.5.6.tgz","integrity":"sha512-kEuiLceTmi3PA1/c5ino2lzPjLFXcGYIID0eiAUwEGmJ0LFjkZk60ZeJF84jm26mAY8eGqIC3TWxZtUeqile/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2xmo5UN78iYFKnNKDnYATgb+c8Phi5NkfNiTU6FEXagIgfJEJTINWDaKtXdaBTuYjDZTf0/81/Utr1zuQro2YMJE="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.5.6.tgz_1477591742068_0.10961964842863381"},"directories":{}},"0.5.7":{"name":"hi_score","version":"0.5.7","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jsdom":"^9.8.0","jslint":"^0.9.6","jquery":"3.1.1","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"6229b92f6593686766ef5fcba3323c09333d1bda","_id":"hi_score@0.5.7","_shasum":"9ee21fb2af27123ce5a2f01dac35f7ce1cedde60","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"9ee21fb2af27123ce5a2f01dac35f7ce1cedde60","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.5.7.tgz","integrity":"sha512-DvpEA/oZZ9SwLuIhGMIz9NbwUk1vrnlzvh7GShoSCkthKo1rv9EG3/BpGlaFP6MDoV0A5Dd18YwM9GVNcBmokQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUi6YPBuSWgVUuEQm0aTzl9b5l6rZmeWFGh3OI2jyr4QIgUzg3+iPmyyBk1Ua5PZcV5LtzUSw3psTp74NV8+CKCqM="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.5.7.tgz_1477614467076_0.6676255518104881"},"directories":{}},"0.5.8":{"name":"hi_score","version":"0.5.8","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jsdom":"^9.8.0","jslint":"^0.9.6","jquery":"3.1.1","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"c4d306fd2ed4ff9504eeef4c702ae52714adbbb2","_id":"hi_score@0.5.8","_shasum":"e74f5fd78806ef86c106052a57f603c662fe7817","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"e74f5fd78806ef86c106052a57f603c662fe7817","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.5.8.tgz","integrity":"sha512-qa5F3ETSIsv7ylD1wqhtQ1bl9L069RsHdya2q5NFVXJ3v4tjoUEJ9q0g63WwzYB5VnJvlWM3KS2+yaIvQ0Bsgg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICXHrj1o8tRDy8N1Ao9yuzGPHOlbl2vHvbbUFINzQngAAiA47DZlA/RjCkeMaRYSHK1FcFNO/tg1lo0ALbipksQ/Bg=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.5.8.tgz_1477688687685_0.1390478287357837"},"directories":{}},"0.5.9":{"name":"hi_score","version":"0.5.9","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"4c098d0a468af19caffb2ef390d6854231650724","_id":"hi_score@0.5.9","_shasum":"92e4a5827576395da7ec88afb977de5d7bc6d157","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"92e4a5827576395da7ec88afb977de5d7bc6d157","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.5.9.tgz","integrity":"sha512-ZvlwNkRN3nALWDi2sBL/huDjhCnAvCayEnLjdg8CvgSHIQ/ujZPl5wLXffO4CvfzwqSio4vYG/MYfhIVx5SaRw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFO6hWsHlsKZ9vwHM93bJOmUAPndnzp2t4ij86LjE/NhAiB4KAybqH7ujjdoNdLcOrAiEb8xLItDJp17/tj5WG/4zQ=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.5.9.tgz_1477718884470_0.567972220480442"},"directories":{}},"0.5.10":{"name":"hi_score","version":"0.5.10","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"c7db05de547db219d65c847cad05eb503ac6ae09","_id":"hi_score@0.5.10","_shasum":"3bbaf4742bf5d11d73be470879f1f6baacf5bd84","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"3bbaf4742bf5d11d73be470879f1f6baacf5bd84","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.5.10.tgz","integrity":"sha512-D0lEkMtUgH5sD8MEimdOu6vTaDVKNDo61i+GmfGg7HK4ifyJPISfAX+Xg5yVOhNzv9llNa563ngroYPtZwBvtQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGIlSIEB+lkgRKWCKKmmkTr8pwvariEJPE42NHW0fxtNAiBx4GRoV/OYJgFNjckc8dNEG0SoGBvxeavkooSMZMvApA=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.5.10.tgz_1477785227405_0.604724052362144"},"directories":{}},"0.6.0":{"name":"hi_score","version":"0.6.0","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"install":"bin/install.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"34a77f46addc8318569f61fbe5f07ef6bc36d33f","_id":"hi_score@0.6.0","_shasum":"c9961cc3bbc5618f20dc126bf3b87848aa97af7b","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"c9961cc3bbc5618f20dc126bf3b87848aa97af7b","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.0.tgz","integrity":"sha512-/moFzqgDEq82PCJ9bPy+whA5EI4NvNsp+LkX53fz2fOH3f9Fz8s7H9FVbwMmssXE/OhUgBCfDnvNMG1TD9yTZg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFYGI7tJ54A0+IasEWGgAV/BSemKQamYo+CimqCYfJ0HAiA29SvzC4aVst0iImA/VO0aHmXV4w7DTB08YfPHUp2lWw=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.6.0.tgz_1477988771920_0.29379873163998127"},"directories":{}},"0.6.1":{"name":"hi_score","version":"0.6.1","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"install":"bin/install.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"f85ce372c4aabf857b1b0461b4e6b7cbad7b3b43","_id":"hi_score@0.6.1","_shasum":"2be706a26a2fd15c57db247b52dceb245961b2ee","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"2be706a26a2fd15c57db247b52dceb245961b2ee","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.1.tgz","integrity":"sha512-BNQbS3iRuJBNALBdmGkFHqhDQAzN/m1sBrwQu3VZj+/o78vg6OMFvZuSDeYzls2p+OhJMT3FeyWxJLZB4j0J1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKLOxXdy5gfLGXoEb+OT3f4d+qDf4UayBpEPwjqFt9QAIhAOP3bqsnAo2uwRAVn1dto2CYJMq6Oog7J7gIOnV+PcUL"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.6.1.tgz_1478023351213_0.8126826924271882"},"directories":{}},"0.6.2":{"name":"hi_score","version":"0.6.2","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"install":"bin/install.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"2d84f4e75ead889531e6e19e1797062e3b503327","_id":"hi_score@0.6.2","_shasum":"73b59bfeb7dbfa938a0822267f97e2e7ff9144e3","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"73b59bfeb7dbfa938a0822267f97e2e7ff9144e3","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.2.tgz","integrity":"sha512-J4ymsObXuBJw2o+2QULEhnJFILXSThFam7UmwO4sb1lAv9TWab24iT6QHPbh/Oqv34aNDcP8Nhirv977LS1z+A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDEG2mU2SERpp40z3zZeM5shHWTJN+oyTbgsqod6Dp0YAiBc7Pm7M7dHueM19b5Te8hohE9at8XvOtl4+E3MUXJb6g=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.6.2.tgz_1478024312933_0.6180868675000966"},"directories":{}},"0.6.3":{"name":"hi_score","version":"0.6.3","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"install":"bin/install.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"86beb353278978ab064cee87d9cc9b020c04ad55","_id":"hi_score@0.6.3","_shasum":"ed1511281fa1b286468f84df363fb40b8550a3b3","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"ed1511281fa1b286468f84df363fb40b8550a3b3","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.3.tgz","integrity":"sha512-2NCFx++RhYVKVaLGXNuTmjrHb9AkY/KSap9cOKyHCMPA5j1rt4GykksQYtQRcMqaWYCaW34TAIL7ugj9qX2rVA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvHT07SGpa+ceHVcXDTeq4WT6XpyVX4rSzdpZDwQYObAIhAJdBz02Y0Oo/KjfnCf6Q2I39ECgNELqJTPaMUqeY+pnY"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.6.3.tgz_1478024698328_0.5432831754442304"},"directories":{}},"0.6.4":{"name":"hi_score","version":"0.6.4","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"install":"bin/install.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls","prepublish":"npm run covera"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"fb81843456ed25942fe822ddcfced3e6d5a5c2e7","_id":"hi_score@0.6.4","_shasum":"e2702b0a7d31ee06ab2c17f0215eb75cf07b3837","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"e2702b0a7d31ee06ab2c17f0215eb75cf07b3837","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.4.tgz","integrity":"sha512-NXxhVaenZfmTlLDDvSaXHMFKdDua8hRm5edBajiAAGD+r3HfL/pqkCT3iU6+BniP45M7toa6y/fOBo+OEBEaXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPN9YYWWn2FenKkAayWnF8pEJw112znoa4KotMQcp6IgIgUDC6XqOICYtyuzvs1mv4oD7sgEienuj0iSkQJQFt8sw="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.6.4.tgz_1478115437696_0.06674024392850697"},"directories":{}},"0.6.6":{"name":"hi_score","version":"0.6.6","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"install":"bin/install.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"39ab68b560ae880765bb1c527a7a494f820887d2","_id":"hi_score@0.6.6","_shasum":"3b1384971cadbee965035ff2abedd7b375ea9f8c","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"3b1384971cadbee965035ff2abedd7b375ea9f8c","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.6.tgz","integrity":"sha512-KeETw5Ni0No/JYEvs3RndsFMJzLAgisVEBqlpXScXUFa/pG2shEkNmvdnynDvLkmX8dHhKD3ac3vw+kPTlpmpQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFBtpQ2TEvv5aF5zdyRE2YsbJIRx8mMtsYQwD+7NEX3nAiEApBLf0fBGtVtPLaCMhNXJKRqFyO6dlWgLPNYh5vHlCf4="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.6.6.tgz_1478118581392_0.6572290717158467"},"directories":{}},"0.6.7":{"name":"hi_score","version":"0.6.7","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"install":"bin/install.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"a46cc2bc4599fd85a65ed12ae51d259ad470623f","_id":"hi_score@0.6.7","_shasum":"b7c97d2c976d5d45d212bc29d11be38e10b058f6","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"b7c97d2c976d5d45d212bc29d11be38e10b058f6","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.7.tgz","integrity":"sha512-teDpcnUB767PZyQEyjeiB091yIiDQ6G2vuqdtO55wjQNfzoQvEEQ0/JUS5xbaCDL0qA33CxzqWbQcHdYGAyh2w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBkqef2/VmTfOA1rs+uKhugPx/X2qY6Pkj+YC0qT1JoiAiBAOPIuQ4oYGKR0qlQ0X4LDUXrPC/Ed/b3V7DzW2tfRxA=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.6.7.tgz_1478122024838_0.2066323768813163"},"directories":{}},"0.6.8":{"name":"hi_score","version":"0.6.8","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"install":"bin/install.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"62ad535a758a2255b34c4368f6d5fa8de4f6ed85","_id":"hi_score@0.6.8","_shasum":"abd4e780a3bc8e56886afd9c3c4c9b17f88cf9e3","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"abd4e780a3bc8e56886afd9c3c4c9b17f88cf9e3","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.8.tgz","integrity":"sha512-qVt3R2WSzDIxACqgg1/ymfhDxI0/BX+U4duGMFycUF0kbjb7R5HTY1UaVY9ML/XEN6sT6WAfbJRoOKp/9kR//Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFZQK7d8imzggvfN2gIMQXmmUdwPTltBojQKMG3XBZCgIgbhhPi9OOshGUOp8hfjwGVii7T4amzK3Eq8o7sTGLsRQ="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.6.8.tgz_1478227202077_0.44063086272217333"},"directories":{}},"0.6.9":{"name":"hi_score","version":"0.6.9","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"install":"bin/install.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","nodeunit-b":"^4.0.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"b723422d4ef17b9f5f9c88ab99601ce6100a179c","_id":"hi_score@0.6.9","_shasum":"5d74e2dcf7b20f97a021b97bc797020c58f48cdb","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"5d74e2dcf7b20f97a021b97bc797020c58f48cdb","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.9.tgz","integrity":"sha512-U64AvlrxqYH+dIPcYpG2ZwInKfyzxDVeNSP2z5ZnPY5NP468hV6A22xlLiugmI0u3Vn3K/bYues4XKU+mA47Sw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDacx/Ppk5Cu5CNv2nk6krpOEg16KlH87rikx4N9k3OOgIhAKNqfeunCHVi7NoUPTb7ySYroxcMo95mwJ8fU0W9x3bA"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.6.9.tgz_1479416829268_0.9296443539205939"},"directories":{}},"0.6.10":{"name":"hi_score","version":"0.6.10","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"install":"bin/install.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"devDependencies":{},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"22c186534b104e0186651ba31ff386e1f33c2803","_id":"hi_score@0.6.10","_shasum":"ed49e0dbf1cf0402b76b7fe047a20c621462be52","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"ed49e0dbf1cf0402b76b7fe047a20c621462be52","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.10.tgz","integrity":"sha512-pr/GFDU4C6gjjxQcL+8xsW21+A/sK5fzPvBwAsUV3LAfQcuWLSrG0AOcqh7xruea376v90OVdIU2XfJg2kdKIw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHSSCbgW4oYl3yqN1zRnNlHl8mMpRlOqnwYs96ZxzSwgIgKdgaE/XRySZfWRU7GsNGZS4M9w9bnzEA0JG05ih66DI="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.6.10.tgz_1479418199745_0.45289480267092586"},"directories":{}},"0.6.11":{"name":"hi_score","version":"0.6.11","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"install":"bin/install.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"devDependencies":{},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"8dcebe8f7220268961591e15edc42fab047ef303","_id":"hi_score@0.6.11","_shasum":"fb2808444efda398b63dd868660e4ce811fbcb9b","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"fb2808444efda398b63dd868660e4ce811fbcb9b","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.11.tgz","integrity":"sha512-GuVX/OPayy2+0HZFXwRgabMXBw2V0Ff/VolgcTK4+QC2Yvs1rsIY4y4A+dJ9dDJ2lAF9IFLsOvhtwkT27cFGfA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPgAfBHBfc8GN41B0yR0oK79Fk/lK/ISVi8MebUW77PwIhAL2s4Ng+FDN7zJ6pJIKtnXNGqoX3eyCGeESdcAF4WUhx"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.6.11.tgz_1479418976315_0.2924203500151634"},"directories":{}},"0.6.12":{"name":"hi_score","version":"0.6.12","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"install":"bin/install.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"devDependencies":{},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"d3abb5cba901e5c992d62dfb7eabc10fa9832908","_id":"hi_score@0.6.12","_shasum":"fbf30f62a223efcfeeed48bdc45fad3ffa225654","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"fbf30f62a223efcfeeed48bdc45fad3ffa225654","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.12.tgz","integrity":"sha512-hEvNI7hg2FBzb3GrxZZO0RT7bexuYEikze+S5zSuRx2mA/J5uIJ5pKehB2DoAZN+7tmih4t+JsJ2A5TaEcElsw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC59o5W8ugGrctdapfPZuoxnZqqFgJ6UGxG54uYUO+1XQIgFEkDCn+LMRSQTfizt0eJ85f5SN1xTbDo/1c2b2iEY08="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.6.12.tgz_1479419349351_0.941338867880404"},"directories":{}},"0.6.15":{"name":"hi_score","version":"0.6.15","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"install":"bin/install.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"devDependencies":{},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"5447e4eddc1cf345bd7ec0be6b7b5ea70418d961","_id":"hi_score@0.6.15","_shasum":"bdaa045b3833813e769438ded0bf205a6e9df152","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"bdaa045b3833813e769438ded0bf205a6e9df152","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.15.tgz","integrity":"sha512-JjsavULMSRzIgyrx1DOTiNVnSFVhKVcbswn9RA3EdAk7tS/nb3JExjpadEZO+uA5RB0Fz99qGnZ/+BrQrR2MZg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYX9mCTx9E59lQ4WEn5R186TIgb8mNWRZe6Rj9PcYNBQIgVOB5GBQHRGyQ3Sl3Kd4oDmYCd7GQThdbk0QEcmf7iiI="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.6.15.tgz_1479423188329_0.08537695044651628"},"directories":{}},"0.6.17":{"name":"hi_score","version":"0.6.17","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"d642a8380c929323b65886aeaed7ec5f2c400620","_id":"hi_score@0.6.17","_shasum":"a26895185fb09f0ee11f58e431044bd2b6e23c6a","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"a26895185fb09f0ee11f58e431044bd2b6e23c6a","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.17.tgz","integrity":"sha512-wTfkTHiI52lfT3xlONx+TvwnJ6YJdL74bwQuFctmNm2Uc6TelDCCdDL0n2I4LqGP7+2decD48AHywDIPmZjZTQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3awnovPTinBh+JkctT5/kEsMoHVTSkxiHKQbm9gFcxwIgFeaPXWQVUpDNrBx6aE82VMeJlXb64r2dUdb3sOkv5jE="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.6.17.tgz_1479424621911_0.6441560932435095"},"directories":{}},"0.6.18":{"name":"hi_score","version":"0.6.18","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"2da6e0f58e777cf1327b0fa07c5d6cec905228cb","_id":"hi_score@0.6.18","_shasum":"c3e7f1fa9ede29affa0b9d99f92c62f1fab891e3","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"c3e7f1fa9ede29affa0b9d99f92c62f1fab891e3","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.18.tgz","integrity":"sha512-QMSHXewqt+0S2YrcoLZ5qhnfBIAIFwt8og3xPvr0DjGb7oxB6yVaNfu+yf5jx4dPdN3pInNL2yxj2b5e2MsNKg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAsbWMdQr+w8VeCYHd5upxPTgsUxZxfleM0o1bQmbvJ3AiEAnh73HEpwBCB/PLsGtdwkXIZqLTinV8tlwxU4+Ijx5UQ="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.6.18.tgz_1479424867818_0.3552590562030673"},"directories":{}},"0.6.19":{"name":"hi_score","version":"0.6.19","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"c15db8422c9a702b20ede7516fab3369cb800555","_id":"hi_score@0.6.19","_shasum":"8b8a7f4fe6a2f08532335d1345342e789ae94cc1","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"8b8a7f4fe6a2f08532335d1345342e789ae94cc1","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.19.tgz","integrity":"sha512-DBfzTkCm4/bBv++AQRGlqNZVtScNrw1JBntOgylKN3d4c6PPQq72/drJ2UcHtE0U5ubgFz1VYDmxjZbiyqIgrQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSULvUkc9TbX5bPVY5zw3sWmgZI2Sv071MUTnxjieiqgIhAOLDF/WFW8b9e1UgHmmzf7B3ZUbyRjD97X5btX1EuboN"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.6.19.tgz_1479425651464_0.5139416456222534"},"directories":{}},"0.6.20":{"name":"hi_score","version":"0.6.20","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","font-awesome":"^4.7.0","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","open-sans-fontface":"^1.4.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"2f4c02d0ccdac07188674b39d12785d9167c9e81","_id":"hi_score@0.6.20","_shasum":"f6967c70ed0097e20ee6ab1c669bf9d8ba26fce6","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"f6967c70ed0097e20ee6ab1c669bf9d8ba26fce6","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.20.tgz","integrity":"sha512-+CXClQ6dFXCu02HPsNPEWPs+VAsnxdoADAtGQbjZz4bvMvKTIB2FB2eZOFFvFqzneOJRr0afBirAO42Ogr1TKA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDiO06xEk8ctlyBN+gw/bUkEHHNP4xGwoQdaALz0m6FrwIgKmTOQlTSkMeZ4cErvBg5nhnPIaHOwO7mRKyq5oGAYS4="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.6.20.tgz_1479506091578_0.3690399636980146"},"directories":{}},"0.6.21":{"name":"hi_score","version":"0.6.21","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","font-awesome":"^4.7.0","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","open-sans-fontface":"^1.4.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"47e3a74b590dda39646629f22832951f7ebd51e9","_id":"hi_score@0.6.21","_shasum":"82481be98367b351d5cf49147bf7ced6ab4b0ade","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"82481be98367b351d5cf49147bf7ced6ab4b0ade","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.21.tgz","integrity":"sha512-75O3yOQSPSV7R6cUtSbc/XlQfgHpii3zwsct4FgDn2FwnxKCIx6/ZDSV9w/w25U0CehORsNU5iu6k8BkBU/xSA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG0b6H0hjTUdoYoRXBUD1VIeY7sqe4OwIm0cKLriA6TPAiEAti0b5TMS9umcpo9N9X+lnO6Cu/sk/cOqgDG3thLrMrI="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.6.21.tgz_1479595917811_0.8220307361334562"},"directories":{}},"0.6.22":{"name":"hi_score","version":"0.6.22","description":"Are you ready to get off the framework-of-the-month treadmill and take control of your SPA? Hi_Score is here to help with an architecture guide, starter files, and best-in-class libraries.","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","font-awesome":"^4.7.0","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.1","open-sans-fontface":"^1.4.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"e1acd6cc62df56375dd19b7a2092a644d0249a9a","_id":"hi_score@0.6.22","_shasum":"91b462b854f34625bbd88dec3378df7c770642be","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"91b462b854f34625bbd88dec3378df7c770642be","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.22.tgz","integrity":"sha512-8UD5ptpNu6uynC2P9Q1y0T98KZ1tLZ8Aq+1/JI3odEvHPUcqiYqwLPVz2c5ioc5Uf6GOKRdamq0Xr1yWxKkWkQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDC7UI2fb+31bh3RttYLlzPTUGlAZi4RzT6U3l2MPiPdAIhAKLNzKqG2JLtUg1osQYnq6a5MYF1TlBdRjy69OXpjeOd"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.6.22.tgz_1479673143850_0.49959039385430515"},"directories":{}},"0.6.24":{"name":"hi_score","version":"0.6.24","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","font-awesome":"^4.7.0","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.5","open-sans-fontface":"^1.4.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"4df00fb93a0447dfe6ca87b912a23f8716bb2160","_id":"hi_score@0.6.24","_shasum":"97b276ea031d9df00865e18cc27593a399703026","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"97b276ea031d9df00865e18cc27593a399703026","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.24.tgz","integrity":"sha512-24XYRpkukLDm51hHeLgP9SyWIT2upddSp5caQfEnMFB3O2Ay7h4Aswli0S/VtU+X+xkxxZQo3XSAXeYiTbCo7Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCl56Vk/6dk1FZ+u0W6HanrzwPXEr6murSOSiDsQfpHxAIgYjp8eM9ZheOO25viJvbhNPhDxf0b0mBVfVOcHgLzg3U="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.6.24.tgz_1479939859333_0.9382125453557819"},"directories":{}},"0.6.25":{"name":"hi_score","version":"0.6.25","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","font-awesome":"^4.7.0","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.5","open-sans-fontface":"^1.4.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"090b9735644f1c6483e6ff1d7d04f31b9d665146","_id":"hi_score@0.6.25","_shasum":"12df76cd8d1c10268ef0eda62ed5c0d6626e9678","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"12df76cd8d1c10268ef0eda62ed5c0d6626e9678","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.25.tgz","integrity":"sha512-gK/B/W/tje6zEUAP5TxAKpgKN0Ee3jWZz22tbGFuBBd0bMDbz16UmC8/oYEpksxnLXPevccSgI407DndGq0uZw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAgPnGbaMsx+t2zm1moBXtatwvEREWN1a8YEaZien5ZQAiEA8SvaZZz8s/Ep1Ov9eTUTbdxJH+Xw76DXKxyIeRCRvDY="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.6.25.tgz_1480024684054_0.0216755336150527"},"directories":{}},"0.6.26":{"name":"hi_score","version":"0.6.26","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","font-awesome":"^4.7.0","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.5","open-sans-fontface":"^1.4.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"3a5a44eb91fcd130374568a45b250546f73f5976","_id":"hi_score@0.6.26","_shasum":"218b4e9050b33998abca5fbec9b0cb346ef1d462","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"218b4e9050b33998abca5fbec9b0cb346ef1d462","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.26.tgz","integrity":"sha512-5EndVeBrSkaABSXA+P1kkohYYbBa8WV5fKfeQpMetw67bbZyr+ifKYeILEPNoww/ZKYoxpMaYHMyD7Fv3WFQZw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHcRB15E5Vb91uAf2lx3WNE/CKMaRnMufxSkszyYwMUOAiEAoAePNMBdTfeHnYOMIqrzZufKDaYiaUIj+TRwbkT1KvM="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.6.26.tgz_1480218234271_0.30331814708188176"},"directories":{}},"0.6.27":{"name":"hi_score","version":"0.6.27","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","font-awesome":"^4.7.0","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.0","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.5","open-sans-fontface":"^1.4.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"168d2354c27f27406ed5980f58b5bf9a3c2cbcf6","_id":"hi_score@0.6.27","_shasum":"8c0d0ac3f364ccc814a5df43412274fa0231e53d","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"8c0d0ac3f364ccc814a5df43412274fa0231e53d","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.27.tgz","integrity":"sha512-lq2TwQfZqwGtLF/I+o/ecNW9REwGWJ6ZzrDt4VnmwV64lTHo65TCvgY6xCrKpjvaFh8bZVx/s9FuoplWQx9s3g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFM4TXEwmB6qC2ROOOIRgvR8jhKUPBAzYnNgkHvGY4rBAiEAhbZR/qxy1pZo+9mcCeSABB9cXDQ2Y2GfUUKZMuvQHZs="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.6.27.tgz_1480274646046_0.7451917112339288"},"directories":{}},"0.6.28":{"name":"hi_score","version":"0.6.28","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","font-awesome":"^4.7.0","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.1","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.5","open-sans-fontface":"^1.4.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"ad3d90b75c350686e910f05026f2282c713e3cbe","_id":"hi_score@0.6.28","_shasum":"87d76c9eddc2701a83612d3ee43363495de5ac5a","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"87d76c9eddc2701a83612d3ee43363495de5ac5a","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.6.28.tgz","integrity":"sha512-n6czsM8sOrcpAUErTTtir+sTjdW0xvqFTCye6t4lNIMn66y8QOBxzPvixlhpMxYmx0Ddwh0TPImXSgijRKQ6ZA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDh51aIyNCcVIZZDVYr8L1+8d9JPzLLFkpnYf2VoRfCfwIgI/Gu51cvKuyFPD2uO1F04XaLAgct52jX0el2zm9Aw3k="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.6.28.tgz_1480362252175_0.5863620373420417"},"directories":{}},"0.7.0":{"name":"hi_score","version":"0.7.0","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","font-awesome":"^4.7.0","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.1","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.5","open-sans-fontface":"^1.4.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"20c9e54b463a726f2bd505ec5415879bace19134","_id":"hi_score@0.7.0","_shasum":"78df943b3db21f5de19cbd9203b12fe731e0c258","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"78df943b3db21f5de19cbd9203b12fe731e0c258","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.7.0.tgz","integrity":"sha512-UbHqKGrmMj/ZZG9GX4wDxPWXzL+rP2vRvksQRl4gRCT+UK5gl4F5jueOxycGpl4fpw6O0H4hhsAlfC8EoG0o5A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICxY030qEbmrFUiHpsTtNQlsgjmz5f0hXBtCTkQO35glAiAE2D7bYPVxOjGjzSIJZTSAuyRX7CIoQrT/s5legbHHsA=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.7.0.tgz_1480372778917_0.6010023020207882"},"directories":{}},"0.7.1":{"name":"hi_score","version":"0.7.1","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","font-awesome":"^4.7.0","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.1","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.5","open-sans-fontface":"^1.4.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"e38da54a6190d5978a1d31a2a7dfb7c50af12593","_id":"hi_score@0.7.1","_shasum":"5ba60b5cbbcb9f76518b072fe8c3734a9406f7ac","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"5ba60b5cbbcb9f76518b072fe8c3734a9406f7ac","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.7.1.tgz","integrity":"sha512-TlHtz44d0/xGZ3T015X7uuviQa/gx3ri/saTswIhd/NbhsJL6/jhZSjidSRYxa9DjBQ4YXDNXQ1H66vEMuEcTg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIALWQw/2pEZ+LPVP17NrzWfj5x/u4WFLFnEoLuwRAo4oAiEA7M15CG9Yfoq38uMGYIOsQ4/rrm9uyb1nf5EEdwz03aQ="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.7.1.tgz_1480373028554_0.3233551033772528"},"directories":{}},"0.7.3":{"name":"hi_score","version":"0.7.3","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","font-awesome":"^4.7.0","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.1","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.5","open-sans-fontface":"^1.4.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"50dcbbed6d59ae66bb34377051854db1ae5e2b0c","_id":"hi_score@0.7.3","_shasum":"edca223d33531fb1ab0f832d7961eb5c61e5fcab","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"edca223d33531fb1ab0f832d7961eb5c61e5fcab","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.7.3.tgz","integrity":"sha512-5w19Z+f+Gpx2y5uGtCLajXNY9vfN21qHB3dZeld41zBwtMn15HaT+/YRWp73iZ/+WdKuU0XFhgc4PFL2E4WDmw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwCZNbT0nMH9sL1M9AoN4NqzvBdyF/mxgSU1irpDyXoQIhAI/hV/v+wn/3O8a0USX82pTfW+djAvSRYkQd3XLHZWcu"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.7.3.tgz_1480378028237_0.9646736215800047"},"directories":{}},"0.7.4":{"name":"hi_score","version":"0.7.4","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","font-awesome":"^4.7.0","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.1","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.5","open-sans-fontface":"^1.4.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"e94866697bc24bf1e0f0ff85ef46cdfb2f181d0d","_id":"hi_score@0.7.4","_shasum":"523d134cd742756b9f54883657893d549d9613ac","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"523d134cd742756b9f54883657893d549d9613ac","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.7.4.tgz","integrity":"sha512-sCoeSq/Er2ZFxb9csIkniGnJ6en78jmTRfK1UVfyqhUCkhj5c2+UAZK/FnbuWGxEEtp8zCunxmQz1NTFqbtFog==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBzSa9QCxjzmlEoOEYWHg8GIHQFVWKW6sfqSIW4Fl7GqAiEAlYUtUfVSa2E0k6ve5GWUQUSGyY9piFmHUsa5Q5+hUHo="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.7.4.tgz_1480448057894_0.7410754000302404"},"directories":{}},"0.7.5":{"name":"hi_score","version":"0.7.5","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","font-awesome":"^4.7.0","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.1","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.5","open-sans-fontface":"^1.4.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"680323c3dbc1e0ccbfbb6ba35fa4cdb1239355b0","_id":"hi_score@0.7.5","_shasum":"82d16260a8c86110cc17d766714f9726017b80f8","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"82d16260a8c86110cc17d766714f9726017b80f8","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.7.5.tgz","integrity":"sha512-wqfqAwYXzouRoqVwQNnQP8DGecBotKGp6XvpL0ZqucjHyYJG4NutwWMv7GGllK/lIS9t3mH1VTUG/vyWB/ZIbA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICYSfg9luJxoCSrU68IufjTQljAsZDECQtS+/hSejbwLAiBI/UHoPonSCAaWKGlkv2s+PkJKcMaBW9xEsjKvQEslCw=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.7.5.tgz_1480480891446_0.45904893637634814"},"directories":{}},"0.7.6":{"name":"hi_score","version":"0.7.6","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"^2.11.14","font-awesome":"^4.7.0","istanbul":"^0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"^0.9.3","jquery.event.gevent":"^1.1.6","jquery.event.ue":"^1.3.2","jquery.scrolli":"^1.0.1","jquery.urianchor":"^1.3.5","jsdom":"^9.8.0","jslint":"^0.9.6","node-inspector":"^0.12.5","nodeunit":"^0.9.5","open-sans-fontface":"^1.4.0","powercss":"^1.3.5","taffydb":"^2.7.3","uglifycss":"0.0.25","uglifyjs":"^2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"0c13a9411273927f43745cab628eff248d156ea2","_id":"hi_score@0.7.6","_shasum":"e49fb1379ba886a1bd5243653d86a973aa371998","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"e49fb1379ba886a1bd5243653d86a973aa371998","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.7.6.tgz","integrity":"sha512-n31LeBtqUcTHmz420MDo4v1FuIql+SpkDWM2giHZzqqkQVyGa0jdQBkNhI07h3vgx5FkEY44BAWqUHMSQC0rrw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJO2xsIxCY67PEE9Yh7ymWPF+UiL3yivsjmoB7GCLaaQIhALsuwN2vrmwZiniRKNiKR7e3VGmBmDsNhH2nkYuqPwj5"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.7.6.tgz_1480655778147_0.6899393871426582"},"directories":{}},"0.7.7":{"name":"hi_score","version":"0.7.7","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"e68d841cff7adbbabea05980a2844c913f96cfd9","_id":"hi_score@0.7.7","_shasum":"914ac88d53317e253e747e2cda6285eaafb9fd4e","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"914ac88d53317e253e747e2cda6285eaafb9fd4e","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.7.7.tgz","integrity":"sha512-K5g9bfXPDHOZkecPy+AiDR9gSprg/BYwEFwsYhNkH/7x4WxoQOOSCQwvyI09ygU9VCfVhxQkDvoMjv+4jy2ZcQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH64j+ak0qNSQdPHPWo6Y43qMjNAdwd0XLyvHnAS2YwAAiAs7nBqL2WR2uobQfxktxwJwMFHX5DBlHLuTQ228x8zgA=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.7.7.tgz_1480657301884_0.35384216136299074"},"directories":{}},"0.7.8":{"name":"hi_score","version":"0.7.8","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"8196cc94a6cc6f6e464a321170fa3dd445974b2f","_id":"hi_score@0.7.8","_shasum":"2031805201ac942fe00805551f190172da0f5421","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"2031805201ac942fe00805551f190172da0f5421","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.7.8.tgz","integrity":"sha512-NJsTJ+z7+5+vnsjBMIOEt5CUnRwsfrdJnZ72Qd0QxhOerwZMpkj1uPLoI0Nojuu7lNE5h8eKTnuw30flMy2hFw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBblVoEug6OeEZh6Gpc6ArdNVtCquCZ6WXa1cnh2rUHsAiBV4uyXl5MZVByw65aRj810UKNd3MB3xUQA4iVr6NhHkQ=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.7.8.tgz_1480666392595_0.7060519508086145"},"directories":{}},"0.7.9":{"name":"hi_score","version":"0.7.9","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"4f157e232faddcbc4de634683f9389a4b3df1878","_id":"hi_score@0.7.9","_shasum":"79e4ced0d8532758c1132e1dc4e165d27414d866","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"79e4ced0d8532758c1132e1dc4e165d27414d866","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.7.9.tgz","integrity":"sha512-DXWPTFWhxLhUPQITUdqoCtro+e2lxq73+I4oEY/rCGQcpxaAzziYfILe9UhRqhu/TPCkwv6oQEzY+Bg9rMAWGw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBZKbZfUyQHyN0QQY1hDQNzqihke/wBsnFvN3KfrZuAnAiABf+1A67pqSqCdkJpjW7sG8YNwv8/7Lp//3KYCgndKBA=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.7.9.tgz_1480982225611_0.7280020287726074"},"directories":{}},"0.8.0":{"name":"hi_score","version":"0.8.0","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify","prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"14e057b1fa2305f1d69725f3276ac6a4d727a1de","_id":"hi_score@0.8.0","_shasum":"3ee7616b161d1cd7e64c0da4e71f844593955456","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"3ee7616b161d1cd7e64c0da4e71f844593955456","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.8.0.tgz","integrity":"sha512-aI/DcXjsz1icMbQfYOLKLw2y4Gc+GqRaT4rUDpVoQ+JR1rAqc7/DQDUJMJ9a+PIn5C44t8zU/6e7bIyZbKC9qg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYz8/jrSQr1bKsI+08Q8cBaA2zpp/36vFDBVz8JnkjLAIhAIZswI9aPVvtoLEqAKiY8pRmxCX6Jvj8Zyo17FQSsas0"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.8.0.tgz_1481318226940_0.8197890946175903"},"directories":{}},"0.8.1":{"name":"hi_score","version":"0.8.1","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify","prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"a8efd5536d5338fdddf9268b1edcea37d1d7dccc","_id":"hi_score@0.8.1","_shasum":"3288c4d99b8955a01461fbce3dc703b6cd870945","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"3288c4d99b8955a01461fbce3dc703b6cd870945","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.8.1.tgz","integrity":"sha512-ONcUfOqJJD7QCSS3MXjQZ3qSnnXVVoddqUMXFIXh1lujpSgsb4eXJuqKFH+KIZ5fidm8rmRbb4P3QzPNntqiTQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFGkYdDoxio0osBcxjfSZfV6E+qn+Az5QoztTdmBmkbKAiEAyipNOUsAfTrXbvw8rUJNq8N3ja+APHgWIWcN8IX1W/U="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.8.1.tgz_1481327596622_0.23828868614509702"},"directories":{}},"0.8.2":{"name":"hi_score","version":"0.8.2","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify","prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"49836aaa3e384f15e639709bccefc24d5ecb80df","_id":"hi_score@0.8.2","_shasum":"76db037ee0f192d179fcbe7595d56c3cc93ad44b","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"76db037ee0f192d179fcbe7595d56c3cc93ad44b","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.8.2.tgz","integrity":"sha512-1E/oyrkGU182kz/7csxfLGrTT/3nfoHeW9vL4P4Ydbkd/fblmq3JN3ewzOaQ5zTFMB+CWB6YRZ+Q9KYgXaVsZA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFwNZnxiBDD4yFqqIQtjnmUvoDiAUp8KJXxFeujtUF2LAiAd+ffHgWT67Dt+XyPVO8gwpXBlRpeSAfMKwZ6ydImsKw=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.8.2.tgz_1481439820649_0.6809243215247989"},"directories":{}},"0.8.3":{"name":"hi_score","version":"0.8.3","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify","prep-libs":"bin/prep-libs.sh","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"208e1e119415bc35b6ce0248cd6624e9964a4425","_id":"hi_score@0.8.3","_shasum":"5953d837ff6cd6f3cd43633151e14a15a56ab40a","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"5953d837ff6cd6f3cd43633151e14a15a56ab40a","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.8.3.tgz","integrity":"sha512-16EuFmCY9rGT7gby20CWhyB/XZURkAZRBtI4qpvEB85XZrpkpC7BLRNEUlfmuQVqNbFmo5bf3EXsBNlBG/2jMA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQChsyjdzrtbPde70mPHzDhDpYOZbMcimNZDhLoCgK5WwQIhAPxa2wwzbjes31grCxM/86HF5NqVLXfQ27h5RsJAYP76"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.8.3.tgz_1481513614783_0.7768129918258637"},"directories":{}},"0.8.5":{"name":"hi_score","version":"0.8.5","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"50922e467cfb18c08ca380451b5af4b9d2cb4770","_id":"hi_score@0.8.5","_shasum":"8c2a83c8d56bddc79944a4e92071728521929b21","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"8c2a83c8d56bddc79944a4e92071728521929b21","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.8.5.tgz","integrity":"sha512-n9D7deQbcxL0zA4a9aHIgcBf//REY2z/Rk//OtkvGEett01v4tPLBcD+1lVHGjb48BKcmk1+UMVUMinV2MRSGw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHoL7MUOovSlRFXuqiJy4hKfEKvMkCUOjuKy5FfZAO2eAiEAvSAFMCf9hNyOlbOptz59HIzFAmFY9im7BTNINX0Zgkk="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.8.5.tgz_1481575727497_0.2095375598873943"},"directories":{}},"0.8.6":{"name":"hi_score","version":"0.8.6","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"541832e5c5cdb46fab77c7065a4f6c3dca8ccbb7","_id":"hi_score@0.8.6","_shasum":"4228d3b38750ab2c1e5147ae15868d6fc4bc980c","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"4228d3b38750ab2c1e5147ae15868d6fc4bc980c","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.8.6.tgz","integrity":"sha512-OWFLB3vSkQi62vmolB83bAHcp1CBTwV8iH3cn332I2jWphzeYV21xgi150Odp0HhVPXVUR5MNozYHBGiYlDD5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCzJmbDEC5Po/yoGDteTFTnt1r5lPzyVLAeTO5sdawiHQIgDiE3nNWCBRmwHFS83YuKSyMlFRDbCcq9oTEKruyHwkA="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.8.6.tgz_1481749269510_0.14853728585876524"},"directories":{}},"0.8.7":{"name":"hi_score","version":"0.8.7","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"1bf0ff8408f91b54f03b1073fa7fe542ad608138","_id":"hi_score@0.8.7","_shasum":"28ecae8713d41f1618f7a62bd264cf3fe3840883","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"28ecae8713d41f1618f7a62bd264cf3fe3840883","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.8.7.tgz","integrity":"sha512-dcjS0/S0MRhMdrv/lP6YySidGPNhinQeDU4k2IPe/NzvQZJ+ivQtbAp8dIovyoKKm2eRgNVGZheqUmtx6mcsDQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDqbRpGeSUq5G9Kt1/Ws9hdfqqGy4+G88UpXp99jnzOPwIgI5D52Mp4j7PV4PObcZRrTHGukFOYxSyoW6E/4wgi9WY="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.8.7.tgz_1481759739725_0.5479342858307064"},"directories":{}},"0.8.8":{"name":"hi_score","version":"0.8.8","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"1afcff399abfcb0177b946022f19c18e1275a9d0","_id":"hi_score@0.8.8","_shasum":"33112c98a36a146f85a39f840f9e48b3766f79da","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"33112c98a36a146f85a39f840f9e48b3766f79da","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.8.8.tgz","integrity":"sha512-8mMGp4fZ8z9WG9dkFFHpsFz6hSrEjSA3I8oq9mGb0IdLOUxvVtmlpeKd8OHHn6kh/MQWXBUVHGNbwP7jDsSm3A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCxgP/ulKNGWU0jdBPnaCw11u70YpDCb8FdloFjdQSUqgIhAMm3t3b9/sdKAsuiYECl+5aFNQZwvkZjjxy67nNIklbT"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.8.8.tgz_1481912505977_0.584014190826565"},"directories":{}},"0.9.0":{"name":"hi_score","version":"0.9.0","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify cfg/*.buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"a9486e313c0ecc7a01fcf51f88fbaa76a546a730","_id":"hi_score@0.9.0","_shasum":"87193a2ebd4f12b2d0e9bed39b9187e691c08136","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.4","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"87193a2ebd4f12b2d0e9bed39b9187e691c08136","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.9.0.tgz","integrity":"sha512-TFcajgqZ16ygvplkCPhNdByhgZPX1IN1fZIAxFvdTzRbSm5/rf2I/LiCr8yFGiAMCu7nXsu2wXWz9tghrUOGVQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdeKCsd/Wjufur7k5cHE2LsVDgshc7WAD38B5RqeJKFQIgN8y22jnPLUuP4kSUkZhJ5KRcCklv30E2Tn2pgHj1YY0="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.9.0.tgz_1485212328476_0.6335679010953754"},"directories":{}},"0.9.1":{"name":"hi_score","version":"0.9.1","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify cfg/*.buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"80b32794b161582430f613ffc229c7adbdc063f9","_id":"hi_score@0.9.1","_shasum":"20e46dc07a9c59f674d091ea8e63e8611c6c2d60","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"20e46dc07a9c59f674d091ea8e63e8611c6c2d60","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.9.1.tgz","integrity":"sha512-j6ohRdZw7Fn8OSKEOZxiWkyp3U2Zc8Wpczk81oCf0aBKJEEF6Gw9zpng1nHOL41b0FdXf2BrBdmWI+P7BvqibA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6EhNzdu5Vciiegf9jExxZrMNOKQpK0jbrcsPwnjM2vwIhAIF/VoMlJ6lzkVdHCTP93ji5GUTpjw+DdkFt0Q/so8kF"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.9.1.tgz_1486155537800_0.7571280878037214"},"directories":{}},"0.9.2":{"name":"hi_score","version":"0.9.2","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify cfg/*.buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"4114bf8eadbfcdba51248f0b86e7d34b3926a475","_id":"hi_score@0.9.2","_shasum":"34e39d79b55dfbfab8f169c7d34ec5c8ced03f04","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"34e39d79b55dfbfab8f169c7d34ec5c8ced03f04","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.9.2.tgz","integrity":"sha512-4ASn/VIFNS0emSAbXBKybjoBln4V3EFyivzNxkhbBnHKk8ygkwPR1SCzC5wIorDeZNBq55hP/kkkwQO76e6MYQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGo6gvBRSjgRdwiBtVTF36MBaZDggsQY5Il7pb+Xtj3wIhANXfpinauJEMIrxBf8vf2OAXexNByRKC90bK646cOmrI"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.9.2.tgz_1486166024675_0.9378117432352155"},"directories":{}},"0.9.3":{"name":"hi_score","version":"0.9.3","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify cfg/*.buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"c93464e48ef31248fecbfc6edb16ef99e99858b5","_id":"hi_score@0.9.3","_shasum":"28042c97f41319373a0bf85217dea208338740a2","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"28042c97f41319373a0bf85217dea208338740a2","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.9.3.tgz","integrity":"sha512-nWZzDPOfc76gOLG1xMewBDor2boidYIq+5N12xLqzQ2tnO31d5GYjJIc/oNrDg21vgwl5OmJeJ+TGSwBaLEcjA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFukCbkBMeWZCItnfrFCwQzgwClGcNlZH6XMv0G/8YxQIhAIRkxwl83T7p/WkeIa66pQaAU3UEIDYZRlJy0Y8svvZR"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.9.3.tgz_1486285537366_0.18568588560447097"},"directories":{}},"0.9.4":{"name":"hi_score","version":"0.9.4","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify cfg/*.buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"b4327539c4b6c4c0e3a9d632c4c5922427ecdd37","_id":"hi_score@0.9.4","_shasum":"abfcd6c1fa165ac20b2c534f0f86b2ec1935c35f","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"abfcd6c1fa165ac20b2c534f0f86b2ec1935c35f","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.9.4.tgz","integrity":"sha512-rwCh/lVc0Qmh6tz+KloSTEodTqEPN+BwPqga6visvZ975w4XSzcSbezjDHFk4TgcH88aM//BNXCk1YB+esvytQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGa0G53a3GqmMQ85j3UrXf2/wzu+EQ87M+haJtMKX46/AiBKUALAmMyhK3sviOdKDmzYn5PuT61p35kZ509GfvtPiw=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.9.4.tgz_1486445061061_0.49177221371792257"},"directories":{}},"0.9.5":{"name":"hi_score","version":"0.9.5","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify cfg/*.buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"1c8b7b8dbd1941111f20ff65f58b068fa03c3eb4","_id":"hi_score@0.9.5","_shasum":"45862f675155671d9662df65efb6cda6605ac31e","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"45862f675155671d9662df65efb6cda6605ac31e","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.9.5.tgz","integrity":"sha512-TSe7HeHZKgDHvb+Flo7JIsnJCCxxoGavEal/loOre7/+RsDThAaaWgfZDrKL0uz+qVzgR+AW984KA4E0WoLIOA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB5320GssffQjO6UJv+4gV3QL9ogZXZV/7RC9rOmxk9KAiEAoCQA/vJmkaf2ZEJkX5Q5p3470iOkSyQwuvtqPjnPSQw="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.9.5.tgz_1486621398592_0.11267663771286607"},"directories":{}},"0.9.6":{"name":"hi_score","version":"0.9.6","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify cfg/*.buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"52c7bf920b8c5d3d190694427729cb2660a34264","_id":"hi_score@0.9.6","_shasum":"bb7dcc524feda25ac1065ac8ce3561793bc9e97c","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"bb7dcc524feda25ac1065ac8ce3561793bc9e97c","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.9.6.tgz","integrity":"sha512-BzcjL24fNxlKXyLptJ5bxwyOewTwU3AtWekJoeIHUNuD9c8Rb8AinXzV9218TrcWDUG7dRT0HYBoWK8YewOiOw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHPJlNPrjpX713PYCHpppDhVQYOgtfWcLav1sbvRfx9gAiBZSzGWFHrwYZvzfFugQ+XjzlIhea6nSKpuEwN42UovrA=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.9.6.tgz_1486762153226_0.19567574211396277"},"directories":{}},"0.9.7":{"name":"hi_score","version":"0.9.7","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify cfg/*.buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"1d932db7027f5c940b700b81997b50f3e15fb1ec","_id":"hi_score@0.9.7","_shasum":"504312f062ab1a8c4e9b28be99bc18a646e0c9a9","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"504312f062ab1a8c4e9b28be99bc18a646e0c9a9","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.9.7.tgz","integrity":"sha512-q/nO7Di+939hd6buXX41krH9/3Kec8CMGqy3YaFUcFz2XJ20PGb1PuoMbGaTbGOvBt2j1jc8MMkxozEp9d5Q1w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8BHDpVfUaoT1l/P12pEJnHyNR1aV3NY+2ZmdxRI/jDAIhAJQ+f1ttiYqw3j4e86Dw/dHCMBbhjMt7Et0FY/wCBTYD"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.9.7.tgz_1486762773810_0.3085567688103765"},"directories":{}},"0.9.8":{"name":"hi_score","version":"0.9.8","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify cfg/*.buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"4c20401835d9aae81c118874ed0158b41ab73aed","_id":"hi_score@0.9.8","_shasum":"92df5c8c2b0663f2eae77c01f22936a8f146fc4c","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"92df5c8c2b0663f2eae77c01f22936a8f146fc4c","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.9.8.tgz","integrity":"sha512-q69/dmLn1bewwh0t2Ht88ee25Yg62q933akBKq3F97odJd8XoQk1tXG7wm/52N9lChYcmDcmRF6ovMcw/SU/3w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAs7l2rcWZl6SthNp9aKJbmLXcEKenL2X/SzpYJqMFEeAiAxaWeZNUt52k4BB7lk1uJGBujJeAlOxeNW/SJDu+2T1A=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-0.9.8.tgz_1487822355112_0.7493590053636581"},"directories":{}},"0.9.9":{"name":"hi_score","version":"0.9.9","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify cfg/*.buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"dc1e59a4d07f903a9aab4082ab0d218fbc1ba0c0","_id":"hi_score@0.9.9","_shasum":"9650c45aaa7ecace97e4ead54f56a114de5146f8","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"9650c45aaa7ecace97e4ead54f56a114de5146f8","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-0.9.9.tgz","integrity":"sha512-V662t7wJLb3gGpUs7+4Ym3SwKoSF0V2tJIJl6j5iufClPhewQEggjjQwZ86kpLQDf9r0XrzI2/+mGs3igq6gBw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFPHz7mjVVHGGqbM7yQEsb50fEDN9ehiKa3Fggyh7PG7AiAocmCa8HdyDYvzMJJajuMBCLi6Eki0LTItUhUMO3TK0g=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-0.9.9.tgz_1487873678239_0.45582192693836987"},"directories":{}},"1.0.0":{"name":"hi_score","version":"1.0.0","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify cfg/*.buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"259d73a4d17b9ed2fed80fd5c275c5538f266c59","_id":"hi_score@1.0.0","_shasum":"c3e512edbe95be20085e234befee63a2f18c4e9a","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"c3e512edbe95be20085e234befee63a2f18c4e9a","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.0.0.tgz","integrity":"sha512-A2EX7F2ptFNKP414+Eeq1kGnz5xZZ8n9AUA2evNuEXIr/5u457sxYQMViSQsSQ6nHIBhYkR8aR0C1ORI7XKFYQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPuNRyWweRoucnG/nNDJIo1s+QOudnzw/aqikyqFhVjAIhAJJWQwC9ML9S4ElhTGcOFb/JN8ineFLQrNQBEn22Qmow"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-1.0.0.tgz_1488311536899_0.6563262587878853"},"directories":{}},"1.0.1":{"name":"hi_score","version":"1.0.1","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify cfg/*.buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.15","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"44e1a717422fc7cb4d50f5bc54accd3470796e80","_id":"hi_score@1.0.1","_shasum":"859d63be45e427c4e9aee49ab39c8fc9a92ac363","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"859d63be45e427c4e9aee49ab39c8fc9a92ac363","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.0.1.tgz","integrity":"sha512-kXUbvQnir4/m/TrBdznWSBLc129PUGBIbn/8ladB0xa96hp2HcK9pkt2H5ir9dwpAzNxvR3zrBJU3a6+5VVoTA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyjTUrLvPhTsn7Zhm0fmAmg9IID9Y7fJ80ihCl7ewHbAIgD4tWPO/HRLuhjJ9c0MwGJJWYqvJZrAIltmZqHCRgNt8="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-1.0.1.tgz_1488958619086_0.7706340774893761"},"directories":{}},"1.0.2":{"name":"hi_score","version":"1.0.2","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"buildify":"bin/buildify cfg/*.buildify","prep-libs":"bin/prep-libs","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.11.16","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.1.1","jquery.event.dragscroll":"0.9.3","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.8.3","jslint":"0.9.8","node-inspector":"0.12.8","nodeunit":"0.9.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"d52ecc27f65b414ee1351c47405e899e428b3e6c","_id":"hi_score@1.0.2","_shasum":"f0e1e37f209913fce8aec2e8b52bf08916f6639c","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"f0e1e37f209913fce8aec2e8b52bf08916f6639c","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.0.2.tgz","integrity":"sha512-4z/6IQ6avAC17ZllMDi7t+RaP9KL6Uva+2ug51m5DXSeD7aVUSshcih6M+BAXt9Qucl+aX8eI76YmOO5pxxJSw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCEPoe8TXucGFJg5eGAu3cYnzZGFxWYmwJUC2461VWQLgIhAKh0Ka9S5oFUHUZfz24f+d7xmdutlJZw2pl1E7p0Gxl+"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-1.0.2.tgz_1489686223437_0.5051743539515883"},"directories":{}},"1.1.0":{"name":"hi_score","version":"1.1.0","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"build":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.12.0","express":"4.15.2","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.2.0","jquery.event.dragscroll":"^1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.12.0","jslint":"0.10.3","node-inspector":"0.12.10","nodeunit":"0.11.0","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"42c5896e074239dc2123fac0455ed3eee86f4814","_id":"hi_score@1.1.0","_shasum":"c5712e0ed45bbe6cb69449b8b6c115f5c526950a","_from":".","_npmVersion":"4.4.1","_nodeVersion":"6.10.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"c5712e0ed45bbe6cb69449b8b6c115f5c526950a","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.1.0.tgz","integrity":"sha512-ofjBP4gKYNvVsEWAX3By/OTP1K6Vn/+x2Qg9awctNl+WP8svWJcyMYMHJWbIoRvvN7ruldnnWHJTFhlKhb08IA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHQrGCrPCHvUBiDqzTuCBTmZ0SZ8t9lUJsSXcNgu0CJQAiBA+1G3MZYAVXwbT4rsN7X+PN5tuziGiPgGp3BDEODS+w=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-1.1.0.tgz_1489972287385_0.017078048083931208"},"directories":{}},"1.1.1":{"name":"hi_score","version":"1.1.1","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"build":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"coveralls":"2.12.0","express":"4.15.2","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.2.0","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"9.12.0","jslint":"0.10.3","node-inspector":"0.12.10","nodeunit":"0.11.0","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"025f3af3aa006827d39cb3c4a2b53a12be359a7a","_id":"hi_score@1.1.1","_shasum":"d557b3e9e0f6f4224e18ea18bb0b571d9b026739","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"d557b3e9e0f6f4224e18ea18bb0b571d9b026739","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.1.1.tgz","integrity":"sha512-faxfSqEs4NyfibDoO6kvpYeHWGaYPKzi6NWHG+2qWDNGNIBuAoQa/eWlDnGbV9AtrXQBzANNwleuxYAXvvVi5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBeqYP0Q2bJgaBVh1Vct2KtX1s6XYM+bC4YsaCHIN+9jAiATkKOxI/YXs7K+nU5EzD991JuCIHAwuQpubJWJz+BQeg=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-1.1.1.tgz_1490069931280_0.43772590858861804"},"directories":{}},"1.1.2":{"name":"hi_score","version":"1.1.2","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"build":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"font-awesome":"4.7.0","jquery":"3.2.0","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","clusterjs":"0.7.1","express":"4.15.2","websocket":"1.0.22","jsdom":"9.12.0","mongodb":"2.2.25","mysql2":"1.2.0","coveralls":"2.12.0","jslint":"0.10.3","istanbul":"0.4.5","node-inspector":"0.12.10","nodeunit":"0.11.0","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"aa6e6c5e889b515b60425c6a16f4c4176c2b7d75","_id":"hi_score@1.1.2","_shasum":"d322235a212b7030c301b94ffd3014153b3d02a5","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"d322235a212b7030c301b94ffd3014153b3d02a5","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.1.2.tgz","integrity":"sha512-ui2+nzkWhvCkw3kiL1TA9x3nVITX66bczifzvqrk5xLwqlWJJ5LHYLDGj/qgr0boUnET2PRtWkwKQG+NC+7DDg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCa+XxG42RQQJsNjnX8QiagGRs57ytPurCoqIoLpqijKgIgFPRp/tm8as8XRGP0wnLOR5tDWJ7DliDdCVxaoMZbvpI="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-1.1.2.tgz_1491281382556_0.3060646206140518"},"directories":{}},"1.1.3":{"name":"hi_score","version":"1.1.3","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"build":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"font-awesome":"4.7.0","jquery":"3.2.0","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","clusterjs":"0.7.1","express":"4.15.2","websocket":"1.0.22","jsdom":"9.12.0","mongodb":"2.2.25","mysql2":"1.2.0","coveralls":"2.12.0","jslint":"0.10.3","istanbul":"0.4.5","node-inspector":"0.12.10","nodeunit":"0.11.0","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"a628a710c4d42e1d8e59cc80b325b11f35615331","_id":"hi_score@1.1.3","_shasum":"da5db32a5506cb52dfbd5f32db74f7cc56aba28d","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.2","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"da5db32a5506cb52dfbd5f32db74f7cc56aba28d","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.1.3.tgz","integrity":"sha512-Rwi+SHQj9233gRlNLdWyADnwR+Dc068qZ4MdpFXEhL9cB5zf8P1nCm3cprOaqPuRvrXsfuFIvtDeNjVLkQrkNg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5T3sD6hMc3mjuQuymWc3+6zl4Doy7txCK6f6tM/2tbAIhAMzRMVTgkiaPUjd+RqmshPopaSTodWcOihkRnNZT9w9r"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-1.1.3.tgz_1492230720993_0.4255856405943632"},"directories":{}},"1.1.4":{"name":"hi_score","version":"1.1.4","description":"Get off the framework-of-the-month treadmill and take control of your SPA. Hi_Score assembles best-in-class libraries in a feature-module architecture as detailed in 'Single Page Web Applicaitons, JavaScript end-to-end'","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"build":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"font-awesome":"4.7.0","jquery":"3.2.0","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","clusterjs":"0.7.1","express":"4.15.2","websocket":"1.0.22","jsdom":"9.12.0","mongodb":"2.2.25","mysql2":"1.2.0","coveralls":"2.12.0","jslint":"0.10.3","istanbul":"0.4.5","node-inspector":"0.12.10","nodeunit":"0.11.0","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"4a7f4d9e98cff79f896b4470bfeeea66741dcac7","_id":"hi_score@1.1.4","_shasum":"90017cc5ca7be389cab4036554e9fccf880c222f","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.2","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"90017cc5ca7be389cab4036554e9fccf880c222f","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.1.4.tgz","integrity":"sha512-VvFsUE2xtJuOT5C80MjQKD7D1FDdLq3YgM9EDv4rjj23I/jQu0U5xO7Xbm1Pxrbpv/Xkpb6MSjV9rao7nz0CeQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPwJtst53JszBL/hY8txHE8EDa03qeiKh2wnk7d7gaeQIgDyqDbDgatl3FdmHjDeBHwxch9IuPTOG0ZECAKWRcy2Q="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-1.1.4.tgz_1492571745158_0.9009776106104255"},"directories":{}},"1.1.5":{"name":"hi_score","version":"1.1.5","description":"A modern full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"build":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"font-awesome":"4.7.0","jquery":"3.2.0","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","clusterjs":"0.7.1","express":"4.15.2","websocket":"1.0.22","jsdom":"9.12.0","mongodb":"2.2.25","mysql2":"1.2.0","coveralls":"2.12.0","jslint":"0.10.3","istanbul":"0.4.5","node-inspector":"0.12.10","nodeunit":"0.11.0","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"8c0357224463282b970e5d36e88ea92949827cb7","_id":"hi_score@1.1.5","_shasum":"26bc76a6f50b002a2bef4369af6b80f6027ac88b","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.2","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"26bc76a6f50b002a2bef4369af6b80f6027ac88b","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.1.5.tgz","integrity":"sha512-Sy5wcKhU4BtQ4M4QQucK3holxhmhjzIShDRD5cXQzcUkzEMAI9RYELRRAEotfaUSHSO5W+CVKzPczb7Ge0SJ/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGSTtbTdpPZ2uAVSUogJSbwS+p0TUJ40ZYYBMN3mK8j7AiBGbfsBzWzqQWj8oLubKZvhdg5vXfhSBFCudSzS1sAxnQ=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-1.1.5.tgz_1493424444226_0.23071764735504985"},"directories":{}},"1.1.6":{"name":"hi_score","version":"1.1.6","description":"A modern full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"build":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"font-awesome":"4.7.0","jquery":"3.2.0","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","clusterjs":"0.7.1","express":"4.15.2","websocket":"1.0.22","jsdom":"9.12.0","mongodb":"2.2.25","mysql2":"1.2.0","coveralls":"2.12.0","jslint":"0.10.3","istanbul":"0.4.5","node-inspector":"0.12.10","nodeunit":"0.11.0","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"8a77733a779807e76957d720aa353914b34cdaa1","_id":"hi_score@1.1.6","_shasum":"a261ba20063691c49655f5cc68098687e795c2f3","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.2","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"a261ba20063691c49655f5cc68098687e795c2f3","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.1.6.tgz","integrity":"sha512-7jK6A3Fb3q9dreWscFAblPDhViU2Ghgw+vrRxW7vla6W77ocIayHdg9t5JPKY+q1rrXZACCqkBkpxI7TLF0/lw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfZAoH7BYpJMwxsyHie1y8ntcHd43DY6abpWzVoAKHlQIhAOEMWQlk+2ti3Z42L3OQfHY52fYBIvLfsnwGymElhixL"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-1.1.6.tgz_1493676089096_0.5548026820179075"},"directories":{}},"1.1.7":{"name":"hi_score","version":"1.1.7","description":"A modern full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"build":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"font-awesome":"4.7.0","jquery":"3.2.0","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","clusterjs":"0.7.1","express":"4.15.2","websocket":"1.0.22","jsdom":"9.12.0","mongodb":"2.2.25","mysql2":"1.2.0","coveralls":"2.12.0","jslint":"0.10.3","istanbul":"0.4.5","node-inspector":"0.12.10","nodeunit":"0.11.0","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"87b334a7cb5300f509f489320fc92967766baef4","_id":"hi_score@1.1.7","_shasum":"33a520b1fb653ca4de07cd1d77db463280898401","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.2","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"33a520b1fb653ca4de07cd1d77db463280898401","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.1.7.tgz","integrity":"sha512-L1k8CA8jusTyOZJdy8pGFMaqudqrl3sS/8VVbaTqu2ag7CVv0+oZ/6y0w0JUkTRM5rVUR8wh20g5S3/dIXSlaw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAwjgGxQ+5V1ReOVUh+DWjvxC9+JTpcAZgmDic4f62BeAiBHnQqdyZXs1sWCjL2MYYbiOe2JLFHkRxjjnRXARjzq1A=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/hi_score-1.1.7.tgz_1493678148644_0.2355418805964291"},"directories":{}},"1.1.8":{"name":"hi_score","version":"1.1.8","description":"A modern full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"build":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"font-awesome":"4.7.0","jquery":"3.2.0","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","clusterjs":"0.7.1","express":"4.15.2","websocket":"1.0.22","jsdom":"9.12.0","mongodb":"2.2.25","mysql2":"1.2.0","coveralls":"2.12.0","jslint":"0.10.3","istanbul":"0.4.5","node-inspector":"0.12.10","nodeunit":"0.11.0","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"1df02b31622d1c06d488b7434bc4a8aa76ed3355","_id":"hi_score@1.1.8","_shasum":"cb93c35e81f541729c652662df0d0cdd4bfb3a33","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"cb93c35e81f541729c652662df0d0cdd4bfb3a33","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.1.8.tgz","integrity":"sha512-rNxrfN9lbLolRyEWRZU8y+Uo1nVFq4KlVi0Njp44W3PQRMcVNBUIOG4S3JeE1+76bAg9OOJOBw6BXWDKnFlgrQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA7joIvMznSb/iyj7XOU/PeXtGzz8ZTWjZxWAxBhi+CKAiBgJujpPy9ttwXobSDEsaYnLRxXym0KscKC433flnFtNg=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hi_score-1.1.8.tgz_1495009315258_0.015514978673309088"},"directories":{}},"1.1.9":{"name":"hi_score","version":"1.1.9","description":"A modern full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"build":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","cover":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","covera":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"font-awesome":"4.7.0","jquery":"3.2.0","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","clusterjs":"0.7.1","express":"4.15.2","websocket":"1.0.22","jsdom":"9.12.0","mongodb":"2.2.25","mysql2":"1.2.0","coveralls":"2.12.0","jslint":"0.10.3","istanbul":"0.4.5","node-inspector":"0.12.10","nodeunit":"0.11.0","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"b72641a179cb12b0bf0f3c630c63ec47dade3034","_id":"hi_score@1.1.9","_shasum":"48daef578e206439c0968a2a44f89b2968baa024","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"48daef578e206439c0968a2a44f89b2968baa024","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.1.9.tgz","integrity":"sha512-aI60H8AfQPl+B5WDOwpE89vkJKwi5Q2DGs6Y8ZGTXISHNayfmsHFWCWG4fbm6j+s2LWCdReOUQGg4zsI2Rt9uw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG1nejkzVE+Rdt1Drki4cYcPMRm4cNApjUnyD04zyqpVAiB2AVh1d+7b8TWAzPY6AZBouvd2li09lGhLaauOGokOww=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.1.9.tgz_1496876074169_0.30647984985262156"},"directories":{}},"1.1.10":{"name":"hi_score","version":"1.1.10","description":"A 2017 full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"build":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","publish-coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"font-awesome":"4.7.0","jquery":"3.2.0","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","clusterjs":"0.7.1","express":"4.15.2","websocket":"1.0.22","jsdom":"9.12.0","mongodb":"2.2.25","mysql2":"1.2.0","coveralls":"2.12.0","jslint":"0.10.3","istanbul":"0.4.5","node-inspector":"0.12.10","nodeunit":"0.11.0","uglifycss":"0.0.25","uglifyjs":"2.4.10"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"gitHead":"6e6a9f12cd7483f210cedf89d2694eee35101250","_id":"hi_score@1.1.10","_shasum":"3847537ef40a797cdc2603ed17221cb95fc589be","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"shasum":"3847537ef40a797cdc2603ed17221cb95fc589be","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.1.10.tgz","integrity":"sha512-9xFo8KZmNanLSslULxgOCg0C3tJY+s3+HUgYz3zV2RFSoxShaJKWx1kbAxuwS6Q/KHwLgvxVZokK2QBvIwiJag==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGv3m+jKcGdpxjiifNj1OmGhtCjMyyIbtnbo7Upx938OAiB6IbLZLDytJ9p2VsoC9b9cR4WgkLPblyAcI4w7mTLe+g=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.1.10.tgz_1498259877688_0.09656909061595798"},"directories":{}},"1.1.12":{"name":"hi_score","version":"1.1.12","description":"A 2017 full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"make":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","publish-coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"font-awesome":"4.7.0","jquery":"3.2.0","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","clusterjs":"0.7.1","express":"4.15.2","websocket":"1.0.22","jsdom":"9.12.0","mongodb":"2.2.25","mysql2":"1.2.0","coveralls":"2.12.0","jslint":"0.10.3","istanbul":"0.4.5","node-inspector":"0.12.10","nodeunit":"0.11.0","uglifycss":"0.0.25","uglifyjs":"2.4.10","which":"latest"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"vendor_file_list":[{"tgt_dir":"js/vendor","tgt_ext":"js","copy_list":[{"src_pkg":"powercss","src_file":"dist/pcss.js","dest_name":"pcss"},{"src_pkg":"powercss","src_file":"dist/pcss.cfg.js","dest_name":"pcss.cfg"},{"src_pkg":"taffydb","src_file":"taffydb/taffy.js","dest_name":"taffy"},{"src_pkg":"jquery","src_file":"dist/jquery.js"},{"src_pkg":"jquery.event.dragscroll","src_file":"dist/jquery.event.dragscroll.js"},{"src_pkg":"jquery.event.gevent","src_file":"jquery.event.gevent.js"},{"src_pkg":"jquery.event.ue","src_file":"jquery.event.ue.js"},{"src_pkg":"jquery.scrolli","src_file":"dist/jquery.scrolli.js"},{"src_pkg":"jquery.urianchor","src_file":"jquery.uriAnchor.js"}]},{"tgt_dir":"css/vendor","tgt_ext":"css","copy_list":[{"src_pkg":"font-awesome","src_file":"/font-awesome/css/font-awesome.css"}]},{"tgt_dir":"css/vendor","tgt_ext":"css","copy_list":[{"src_pkg":"font-awesome","src_file":"css/font-awesome.css"}]},{"tgt_dir":"font/vendor","do_dir_mode":true,"copy_list":[{"src_pkg":"font-awesome","src_dir":"fonts"},{"src_pkg":"open-sans-fontface","src_dir":"fonts"}]}],"gitHead":"f28339422c94b4f21080bc1bb866c3db9fc78bc9","_id":"hi_score@1.1.12","_npmVersion":"5.0.3","_nodeVersion":"8.1.2","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-GHfnOmyB5J/JNuEs7ZwSy0f5S4aPzOJAGV/BDloF6zTWPiwvu6BvwBhjz1QKVQkGNx7tttEUoo5/oYggJ3kHbw==","shasum":"81cce634584ab2dc128710a50ca5d43a3167bc17","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.1.12.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGBzBC9Wjzzu0sA1Mg3RYsvdN0oWUQL1PRGwDwB3NbsiAiEAr0woOa28Sr9q6CD7OcvHCAU5fpDBxzRhdc0DJ1kxEtg="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.1.12.tgz_1498527792799_0.8526935700792819"},"directories":{}},"1.1.14":{"name":"hi_score","version":"1.1.14","description":"A 2017 full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"make":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","publish-coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"font-awesome":"4.7.0","jquery":"3.2.0","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","open-sans-fontface":"1.4.0","powercss":"1.3.5","taffydb":"2.7.3","clusterjs":"0.7.1","express":"4.15.2","websocket":"1.0.22","jsdom":"9.12.0","mongodb":"2.2.25","mysql2":"1.2.0","coveralls":"2.12.0","jslint":"0.10.3","istanbul":"0.4.5","node-inspector":"0.12.10","nodeunit":"0.11.0","uglifycss":"0.0.25","uglifyjs":"2.4.10","which":"latest"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"xhiVendorAssetList":[{"tgt_dir":"js/vendor","tgt_ext":"js","copy_list":[{"src_pkg":"powercss","src_file":"dist/pcss.js","dest_name":"pcss"},{"src_pkg":"powercss","src_file":"dist/pcss.cfg.js","dest_name":"pcss.cfg"},{"src_pkg":"taffydb","src_file":"taffydb/taffy.js","dest_name":"taffy"},{"src_pkg":"jquery","src_file":"dist/jquery.js"},{"src_pkg":"jquery.event.dragscroll","src_file":"dist/jquery.event.dragscroll.js"},{"src_pkg":"jquery.event.gevent","src_file":"jquery.event.gevent.js"},{"src_pkg":"jquery.event.ue","src_file":"jquery.event.ue.js"},{"src_pkg":"jquery.scrolli","src_file":"dist/jquery.scrolli.js"},{"src_pkg":"jquery.urianchor","src_file":"jquery.uriAnchor.js"}]},{"tgt_dir":"css/vendor","tgt_ext":"css","copy_list":[{"src_pkg":"font-awesome","src_file":"/font-awesome/css/font-awesome.css"}]},{"tgt_dir":"css/vendor","tgt_ext":"css","copy_list":[{"src_pkg":"font-awesome","src_file":"css/font-awesome.css"}]},{"tgt_dir":"font/vendor","do_dir_mode":true,"copy_list":[{"src_pkg":"font-awesome","src_dir":"fonts"},{"src_pkg":"open-sans-fontface","src_dir":"fonts"}]}],"gitHead":"5c97c7ef19923b38eeab89140b5e8b7b171a29a6","_id":"hi_score@1.1.14","_npmVersion":"5.0.3","_nodeVersion":"8.1.2","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-5ZDJAZzsNi2ikewJ5y59EWwY+hDlEg16zJA955WTCB6Wh0gFovJzF7aYMffuQfIsMO0nq2jtC/dvdfxX6LullA==","shasum":"fe640e1b17bcd948ddfa6c5bc7aea046ddde1642","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.1.14.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBEGyg5g1s4dsfrYzWgGcg+ZQtA4h7RpSPpaxrqHisTwAiEA+gUZD93M5oQ3rvb9hFw39YEfpuB6DLYBjRjYHcHXlQw="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.1.14.tgz_1498678886894_0.07121172291226685"},"directories":{}},"1.2.0":{"name":"hi_score","version":"1.2.0","description":"A 2017 full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"requirements-check":"bin/check-node-version","make":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","publish-coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"apply-patch":"^0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.2.0","express":"4.15.3","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.1.0","jslint":"0.10.3","line-by-line":"0.1.5","mkdirp":"0.5.1","mongodb":"2.2.29","mysql2":"1.3.5","ncp":"2.0.0","nodeunit":"0.11.1","npm-check-updates":"^2.12.1","open-sans-fontface":"1.4.0","powercss":"1.3.5","rmdir":"^1.2.0","taffydb":"2.7.3","uglify-js":"^3.0.23","uglifycss":"0.0.27","websocket":"1.0.24","which":"1.2.14"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"xhiPatchMatrix":{"patch_dir_str":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","match_str":"// BEGIN hi_score patch line 324"}]},"xhiVendorAssetGroupTable":[{"dest_dir_str":"js/vendor","dest_ext_str":"js","asset_list":[{"dest_name":"pcss","src_asset_name":"pcss.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"src_asset_name":"jquery.js","src_dir_str":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dir_str":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dir_str":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}]},{"dest_dir_str":"css/vendor","dest_ext_str":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dir_str":"css","src_pkg_name":"font-awesome"}]},{"dest_dir_str":"font/vendor","do_dir_copy":true,"asset_list":[{"src_pkg_name":"font-awesome","src_dir_str":"fonts"},{"src_pkg_name":"open-sans-fontface","src_dir_str":"fonts"}]}],"gitHead":"81c55596b9ea1b8662dc8930f899d80a74e16908","_id":"hi_score@1.2.0","_npmVersion":"5.0.4","_nodeVersion":"8.1.3","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-uFV1UxbUi3HeCHOpn/K4muDmwg8QEyCplqKAUK8Ft3CjcaILtRR35ICSEEZvjfI2ju/OgX3KRuqwgPRtXxBhVQ==","shasum":"0964073b41caeb36df9bd9dabe56e8e07e7c8a9c","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.2.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICAYQwrqI8/qsdyW7cokEYX7kJx2uOK6xAJdM66H+oHoAiEArG8p8fYyLMwIWRCxaintd/tYSGJVE1VCK9j9ZB+wls4="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.2.0.tgz_1499305472938_0.9938366361893713"},"directories":{}},"1.2.1":{"name":"hi_score","version":"1.2.1","description":"A 2017 full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"requirements-check":"bin/check-node-version","make":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","publish-coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"apply-patch":"^0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.2.0","express":"4.15.3","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.1.0","jslint":"0.10.3","line-by-line":"0.1.5","mkdirp":"0.5.1","mongodb":"2.2.29","mysql2":"1.3.5","ncp":"2.0.0","nodeunit":"0.11.1","npm-check-updates":"^2.12.1","open-sans-fontface":"1.4.0","powercss":"1.3.5","rmdir":"^1.2.0","taffydb":"2.7.3","uglify-js":"^3.0.23","uglifycss":"0.0.27","websocket":"1.0.24","which":"1.2.14"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"xhiPatchMatrix":{"patch_dir_str":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","match_str":"// BEGIN hi_score patch line 324"}]},"xhiVendorAssetGroupTable":[{"dest_dir_str":"js/vendor","dest_ext_str":"js","asset_list":[{"dest_name":"pcss","src_asset_name":"pcss.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"src_asset_name":"jquery.js","src_dir_str":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dir_str":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dir_str":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}]},{"dest_dir_str":"css/vendor","dest_ext_str":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dir_str":"css","src_pkg_name":"font-awesome"}]},{"dest_dir_str":"font/vendor","do_dir_copy":true,"asset_list":[{"src_pkg_name":"font-awesome","src_dir_str":"fonts"},{"src_pkg_name":"open-sans-fontface","src_dir_str":"fonts"}]}],"gitHead":"a937988e9cb7b809a73c9cadf495e79b7a9f1cec","_id":"hi_score@1.2.1","_npmVersion":"5.0.4","_nodeVersion":"8.1.3","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-O659QvwGxg781gdKsXmJulx0dtzNu+4ffZcC4XyMiXrIUrJFfn5rQPaLTNVJiiUMGgWrXscsrOIf4OHfsjJ4oQ==","shasum":"c08d14c3f629aeea451e25566c5d31230268b271","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.2.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGdUcLfQYkMlAppear4GJUffxs+5MKTQvQQRhyjPfqkSAiBqEVZL6c05PcRzjLhD+0o/KzpqFwQQX/wPDEr52D4P0g=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.2.1.tgz_1499305753369_0.5285791382193565"},"directories":{}},"1.2.2":{"name":"hi_score","version":"1.2.2","description":"A 2017 full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"requirements-check":"bin/check-node-version","make":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","publish-coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"apply-patch":"^0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.2.0","express":"4.15.3","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.1.0","jslint":"0.10.3","line-by-line":"0.1.5","mkdirp":"0.5.1","mongodb":"2.2.29","mysql2":"1.3.5","ncp":"2.0.0","nodeunit":"0.11.1","npm-check-updates":"^2.12.1","open-sans-fontface":"1.4.0","powercss":"1.3.5","rmdir":"^1.2.0","taffydb":"2.7.3","uglify-js":"^3.0.23","uglifycss":"0.0.27","websocket":"1.0.24","which":"1.2.14"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"xhiPatchMatrix":{"patch_dir_str":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","match_str":"// BEGIN hi_score patch line 324"}]},"xhiVendorAssetGroupTable":[{"dest_dir_str":"js/vendor","dest_ext_str":"js","asset_list":[{"dest_name":"pcss","src_asset_name":"pcss.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"src_asset_name":"jquery.js","src_dir_str":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dir_str":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dir_str":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}]},{"dest_dir_str":"css/vendor","dest_ext_str":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dir_str":"css","src_pkg_name":"font-awesome"}]},{"dest_dir_str":"font/vendor","do_dir_copy":true,"asset_list":[{"src_pkg_name":"font-awesome","src_dir_str":"fonts"},{"src_pkg_name":"open-sans-fontface","src_dir_str":"fonts"}]}],"gitHead":"4725ed7ff567f6cac0d32a181d138556ae70942b","_id":"hi_score@1.2.2","_npmVersion":"5.1.0","_nodeVersion":"8.1.3","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-rIvOzEI5NZHX2hr4WsdpSI/iv4teGMDtlEq89e1E0HjD4zPpGZ8xIQafs2J9ivDSj2lOouHWC+cVLHFD/2rv/Q==","shasum":"876bcbd05d775431f7e6e8c7cd1d4b9072bc8155","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.2.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCymlgrp8KIucG5+1gQLN69/5Xz9swNz++RrpijCQmpDAIgSQ09Kax2bX93TjF7EA+BkgLTuuXLiWLOdTVKxVVIs1w="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.2.2.tgz_1499493944288_0.9667580870445818"},"directories":{}},"1.2.3":{"name":"hi_score","version":"1.2.3","description":"A 2017 full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"requirements-check":"bin/check-node-version","make":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","publish-coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"apply-patch":"^0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.2.0","express":"4.15.3","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.1.0","jslint":"0.10.3","line-by-line":"0.1.5","mkdirp":"0.5.1","mongodb":"2.2.29","mysql2":"1.3.5","ncp":"2.0.0","nodeunit":"0.11.1","npm-check-updates":"^2.12.1","open-sans-fontface":"1.4.0","powercss":"1.3.5","rmdir":"^1.2.0","taffydb":"2.7.3","uglify-js":"^3.0.23","uglifycss":"0.0.27","websocket":"1.0.24","which":"1.2.14"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"xhiPatchMatrix":{"patch_dir_str":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","match_str":"// BEGIN hi_score patch line 324"}]},"xhiVendorAssetGroupTable":[{"dest_dir_str":"js/vendor","dest_ext_str":"js","asset_list":[{"dest_name":"pcss","src_asset_name":"pcss.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"src_asset_name":"jquery.js","src_dir_str":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dir_str":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dir_str":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}]},{"dest_dir_str":"css/vendor","dest_ext_str":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dir_str":"css","src_pkg_name":"font-awesome"}]},{"dest_dir_str":"font/vendor","do_dir_copy":true,"asset_list":[{"src_pkg_name":"font-awesome","src_dir_str":"fonts"},{"src_pkg_name":"open-sans-fontface","src_dir_str":"fonts"}]}],"gitHead":"374cc5a52f1a3f72a0109ddc70d0ba944dc2f044","_id":"hi_score@1.2.3","_npmVersion":"5.1.0","_nodeVersion":"8.1.3","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-EYkWqllGr5tRVJ7nSZJDhLQChccKbF9D8XZlSe5+bthIxx6AGq3UtORNYrYp3Wd/Cl4Xuv8jqPs8uZ5o9T6dRQ==","shasum":"10a48c0df37ad058c0254c9885cc059c9c05d7e8","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.2.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDOQnr1M2PF9GsvHWaeugC5hKBQaxI42OOLpxPM0fdVPAiBVkm2MUylwrudxzhr01WNMVNzQ7HPn8UEPN3yWOF3yxw=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.2.3.tgz_1499495390249_0.1296920459717512"},"directories":{}},"1.2.4":{"name":"hi_score","version":"1.2.4","description":"A 2017 full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"requirements-check":"bin/check-node-version","make":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","publish-coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"apply-patch":"^0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.2.0","express":"4.15.3","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.1.0","jslint":"0.10.3","line-by-line":"0.1.5","mkdirp":"0.5.1","mongodb":"2.2.29","mysql2":"1.3.5","ncp":"2.0.0","nodeunit":"0.11.1","npm-check-updates":"^2.12.1","open-sans-fontface":"1.4.0","powercss":"1.3.5","rmdir":"^1.2.0","taffydb":"2.7.3","uglify-js":"^3.0.23","uglifycss":"0.0.27","websocket":"1.0.24","which":"1.2.14"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"xhiPatchMatrix":{"patch_dir_str":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","match_str":"// BEGIN hi_score patch line 324"}]},"xhiVendorAssetGroupTable":[{"dest_dir_str":"js/vendor","dest_ext_str":"js","asset_list":[{"dest_name":"pcss","src_asset_name":"pcss.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"src_asset_name":"jquery.js","src_dir_str":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dir_str":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dir_str":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}]},{"dest_dir_str":"css/vendor","dest_ext_str":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dir_str":"css","src_pkg_name":"font-awesome"}]},{"dest_dir_str":"font/vendor","do_dir_copy":true,"asset_list":[{"src_pkg_name":"font-awesome","src_dir_str":"fonts"},{"src_pkg_name":"open-sans-fontface","src_dir_str":"fonts"}]}],"gitHead":"d29bc0521e525753d8a88ad2cf9710d4e658210d","_id":"hi_score@1.2.4","_npmVersion":"5.1.0","_nodeVersion":"8.1.3","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-JcPM4yVizflSPRPSajL+us0jxGWYdzV4Z1I8YEbXW8U3KspnprBJjyMbhy8dYkEG5P+baN7I51Q47kn1HczsOw==","shasum":"5aefa88c8f0aed8e0bd55d7e6591dd1dbda0bea6","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.2.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHb/C48yWeubihwIu+8g1luQ/SD2vhH58HZo7I3972ORAiAO0ByUJn5n9aQiCoq4SsbaCTISC3J2wJywV/TuVlGdBA=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.2.4.tgz_1499725656788_0.9107001747470349"},"directories":{}},"1.2.6":{"name":"hi_score","version":"1.2.6","description":"A 2017 full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"main":"hi_score","scripts":{"requirements-check":"bin/check-node-version","make":"bin/buildify cfg/*.buildify","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js","coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","publish-coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls"},"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"homepage":"https://github.com/mmikowski/hi_score","dependencies":{},"devDependencies":{"apply-patch":"^0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.2.0","express":"4.15.3","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.1.0","jslint":"0.10.3","line-by-line":"0.1.5","mkdirp":"0.5.1","mongodb":"2.2.29","mysql2":"1.3.5","ncp":"2.0.0","nodeunit":"0.11.1","npm-check-updates":"^2.12.1","open-sans-fontface":"1.4.0","powercss":"1.3.5","rmdir":"^1.2.0","taffydb":"2.7.3","uglify-js":"^3.0.23","uglifycss":"0.0.27","websocket":"1.0.24","which":"1.2.14"},"maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"xhiPatchMatrix":{"patch_dir_str":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","match_str":"// BEGIN hi_score patch line 324"}]},"xhiVendorAssetGroupTable":[{"dest_dir_str":"js/vendor","dest_ext_str":"js","asset_list":[{"dest_name":"pcss","src_asset_name":"pcss.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"src_asset_name":"jquery.js","src_dir_str":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dir_str":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dir_str":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}]},{"dest_dir_str":"css/vendor","dest_ext_str":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dir_str":"css","src_pkg_name":"font-awesome"}]},{"dest_dir_str":"font/vendor","do_dir_copy":true,"asset_list":[{"src_pkg_name":"font-awesome","src_dir_str":"fonts"},{"src_pkg_name":"open-sans-fontface","src_dir_str":"fonts"}]}],"gitHead":"8d61a7bc2b57088519c4e28ec698aecfdb7b69f1","_id":"hi_score@1.2.6","_npmVersion":"5.3.0","_nodeVersion":"8.1.4","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-GOcRNO1w2K+4eh0ZP8QSf1NFx7xlEhLcJ+Pp5mA4V0r0u5b0flto1aydRD3ti/y8kP/RfUW4h19uUtpoIU+Mpg==","shasum":"0f5fd5cf1343de1fb11afcbf155ee2dfb19f4166","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.2.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBzPj70J7s6k6Tmzoa5FelS+g9WhXIKyKiJ+0wVplOqmAiBkDVfhl8YHVpmTrjB61RG+H4UaXMCTH5gM19R9htKv6w=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.2.6.tgz_1500056379155_0.28170363744720817"},"directories":{}},"1.2.7":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"bundleDependencies":false,"dependencies":{},"deprecated":false,"description":"A 2017 full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","devDependencies":{"apply-patch":"^0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.3.0","express":"4.15.3","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.1.0","jslint":"0.10.3","line-by-line":"0.1.5","mkdirp":"0.5.1","mongodb":"2.2.30","mysql2":"1.3.6","ncp":"2.0.0","nodeunit":"0.11.1","npm-check-updates":"^2.12.1","open-sans-fontface":"1.4.0","powercss":"1.3.5","rmdir":"^1.2.0","taffydb":"2.7.3","uglify-js":"^3.0.23","uglifycss":"0.0.27","websocket":"1.0.24","which":"1.2.14"},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","make":"bin/buildify cfg/*.buildify","publish-coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls","requirements-check":"bin/check-node-version","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js"},"version":"1.2.7","xhiPatchMatrix":{"patch_dir_str":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","match_str":"// BEGIN hi_score patch line 324"}]},"xhiVendorAssetGroupTable":[{"dest_dir_str":"js/vendor","dest_ext_str":"js","asset_list":[{"dest_name":"pcss","src_asset_name":"pcss.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"src_asset_name":"jquery.js","src_dir_str":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dir_str":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dir_str":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}]},{"dest_dir_str":"css/vendor","dest_ext_str":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dir_str":"css","src_pkg_name":"font-awesome"}]},{"dest_dir_str":"font/vendor","do_dir_copy":true,"asset_list":[{"src_pkg_name":"font-awesome","src_dir_str":"fonts"},{"src_pkg_name":"open-sans-fontface","src_dir_str":"fonts"}]}],"gitHead":"984a0fd69b855ffd70527607d2f06c09b72a0583","_id":"hi_score@1.2.7","_npmVersion":"5.3.0","_nodeVersion":"8.1.4","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-22pG38rmsq0pTgLVVgFKW8upondH/hYeHjU43CLeYBagmWyJjIoed6JYqbvQoz8bgSdxOGWQ6NKFb3vhI0LUwQ==","shasum":"bfaf2bfdbe099ec27e8cf1c1fab65bc3e877fbe8","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.2.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlOr4+Zp9htB9k9LTkES3QPGLhaLftegzKlcjOY+r0eAIhAKvu5ihtkzRWWDUwTgNXFd4J83o1YQonyoXlKqwE2u/x"}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.2.7.tgz_1500321326665_0.8065339592285454"},"directories":{}},"1.2.8":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"bundleDependencies":false,"dependencies":{},"deprecated":false,"description":"A 2017 full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","devDependencies":{"apply-patch":"^0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.3.0","express":"4.15.3","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.1.0","jslint":"0.10.3","line-by-line":"0.1.5","mkdirp":"0.5.1","mongodb":"2.2.30","mysql2":"1.3.6","ncp":"2.0.0","nodeunit":"0.11.1","npm-check-updates":"^2.12.1","open-sans-fontface":"1.4.0","powercss":"1.3.5","rmdir":"^1.2.0","taffydb":"2.7.3","uglify-js":"^3.0.25","uglifycss":"0.0.27","websocket":"1.0.24","which":"1.2.14"},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","make":"bin/buildify cfg/*.buildify","publish-coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls","requirements-check":"bin/check-node-version","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js"},"version":"1.2.8","xhiPatchMatrix":{"patch_dir_str":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","match_str":"// BEGIN hi_score patch line 324"}]},"xhiVendorAssetGroupTable":[{"dest_dir_str":"js/vendor","dest_ext_str":"js","asset_list":[{"dest_name":"pcss","src_asset_name":"pcss.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"src_asset_name":"jquery.js","src_dir_str":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dir_str":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dir_str":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}]},{"dest_dir_str":"css/vendor","dest_ext_str":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dir_str":"css","src_pkg_name":"font-awesome"}]},{"dest_dir_str":"font/vendor","do_dir_copy":true,"asset_list":[{"src_pkg_name":"font-awesome","src_dir_str":"fonts"},{"src_pkg_name":"open-sans-fontface","src_dir_str":"fonts"}]}],"gitHead":"ebcffd871c4e6ee5a0a78016fa24d9173ae66aec","_id":"hi_score@1.2.8","_npmVersion":"5.3.0","_nodeVersion":"8.1.4","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-wmZHBTRH/97qkA2J9F9z70mIo4M2aegSx3glKaLGFOsfdA8ABaXOqUrWvZsxbmbJyzo9VQ2EalS4kVeVLPD49A==","shasum":"d83b581ecbda7d2b2929b9315f5581e0bcd19844","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.2.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0sQXYgdjXVP+PXkm24PHsOBeIGPr3+k3WFoSDjYH+0AIhAJsk5JPfWvFAHtL6ApvfrxQfSJGJipNCQBz3S73qdC5E"}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.2.8.tgz_1500483770089_0.9605709312018007"},"directories":{}},"1.2.10":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"bundleDependencies":false,"dependencies":{},"deprecated":false,"description":"A 2017 full-life-cycle starter project for SPAs. Hi_Score assembles best-in-class libraries in a feature-module architecture","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.3.0","express":"4.15.3","font-awesome":"4.7.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.1.0","jslint":"0.11.0","line-by-line":"0.1.5","mkdirp":"0.5.1","mongodb":"2.2.30","mysql2":"1.3.6","ncp":"2.0.0","nodeunit":"0.11.1","npm-check-updates":"2.12.1","open-sans-fontface":"1.4.0","powercss":"1.4.1","rmdir":"1.2.0","taffydb":"2.7.3","uglify-js":"3.0.25","uglifycss":"0.0.27","websocket":"1.0.24","which":"1.2.14"},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js","make":"bin/buildify cfg/*.buildify","publish-coverage":"istanbul cover -x '**/vendor/**' node_modules/.bin/nodeunit test/xhi_level_0.js; cat coverage/lcov.info | node_modules/.bin/coveralls","requirements-check":"bin/check-node-version","setup":"bin/setup","test":"nodeunit test/xhi_level_0.js"},"version":"1.2.10","xhiPatchMatrix":{"patch_dir_str":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","match_str":"// BEGIN hi_score patch line 324"}]},"xhiVendorAssetGroupTable":[{"dest_dir_str":"js/vendor","dest_ext_str":"js","asset_list":[{"dest_name":"pcss","src_asset_name":"pcss.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dir_str":"dist","src_pkg_name":"powercss"},{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"src_asset_name":"jquery.js","src_dir_str":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dir_str":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dir_str":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}]},{"dest_dir_str":"css/vendor","dest_ext_str":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dir_str":"css","src_pkg_name":"font-awesome"}]},{"dest_dir_str":"font/vendor","do_dir_copy":true,"asset_list":[{"src_pkg_name":"font-awesome","src_dir_str":"fonts"},{"src_pkg_name":"open-sans-fontface","src_dir_str":"fonts"}]}],"gitHead":"9bd71f604ef512aeb7e88d025f3e7c1def626ea5","_id":"hi_score@1.2.10","_npmVersion":"5.3.0","_nodeVersion":"8.1.4","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-qceAt/z4oPBpyi/roxYKsfLXRDXhuLFzT/ZFeRRF4ylazeaDHIo2Elm9BJIYSIlkRHOMC1shq3TF5A3g1Wmcjg==","shasum":"8dd2da1b1ff27f64723e6099cf21b302c785b662","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.2.10.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHM/LopKEWUR4WtFYRnYuY4kDRPflmYM9fnUmYHz347lAiEA3P95C28xdmdelbrHRMGywop9aORAd8309Ji7G/5bVic="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.2.10.tgz_1500590804412_0.5979677326977253"},"directories":{}},"1.3.0":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPAs using a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.3.1","express":"4.15.4","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","jslint":"0.11.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.1","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.0.28","uglifycss":"0.0.27","websocket":"1.0.24"},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","build":"bin/xhi build","setup":"bin/xhi setup","test":"bin/xhi dev_test","xhi":"bin/xhi"},"version":"1.3.0","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor' directors are ignored.","Four tests are performed on each file:","  1. Fail if tabs characters or trailing space.","  2. Fail if 'use strict'; is not found.","  3. Fail if 'jslint --config config/jslint.conf <file>'","     does not pass.","  4. List TODO items for developer review.","     Fail if developer does not approve.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],["dev_cover","dev_commit"],["build"],null],[["prod_start"],"Start production server",["Start production server(s)"],null,["deploy"]],[["prod_restart"],"Cycle production server",["Cycle production server"],null,["deploy"]],[["prod_stop"],"Stop production server",["Stop production server"],null,["deploy"]],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,["deploy"]],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00.js","js/xhi/01.util.js","js/xhi/02.data.js","js/xhi/02.fake.js","js/xhi/03.model.js","js/xhi/04.utilb.js","js/xhi/05.css_base.js","js/xhi/05.css_lb.js","js/xhi/05.css_shell.js","js/xhi/06.css.js","js/xhi/06.lb.js","js/xhi/07.shell.js","js/xhi/08.app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["tmplt/ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["tmplt/ex02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"218a2a5aef88c8ab761d8f239da25125dca0419a","_id":"hi_score@1.3.0","_npmVersion":"5.4.1","_nodeVersion":"8.4.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-bo9oT8CugGEPaidXZQ5415mLMZ76TcWILIYF59xk98KHa7KNWLBwGCK0rTHCZK+xNQbmdnM/jWlTWFdJlTZLuQ==","shasum":"c01cb3623a9185f9e3516ebce5de40b61df7f816","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.3.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHS2La3Dleun9v0VfyyhiUFqBC+0+EuOPZCgBW1lAAASAiEAmotnhcUTny0/Zxc9/m2KXvn3n3nN/LkgDCevjZidLOo="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.3.0.tgz_1505071766271_0.18503931001760066"},"directories":{}},"1.3.1":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPAs using a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.3.1","express":"4.15.4","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","jslint":"0.11.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.1","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.0.28","uglifycss":"0.0.27","websocket":"1.0.24"},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","build":"bin/xhi build","setup":"bin/xhi setup","test":"bin/xhi dev_test","xhi":"bin/xhi"},"version":"1.3.1","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor' directors are ignored.","Four tests are performed on each file:","  1. Fail if tabs characters or trailing space.","  2. Fail if 'use strict'; is not found.","  3. Fail if 'jslint --config config/jslint.conf <file>'","     does not pass.","  4. List TODO items for developer review.","     Fail if developer does not approve.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],["dev_cover","dev_commit"],["build"],null],[["prod_start"],"Start production server",["Start production server(s)"],null,["deploy"]],[["prod_restart"],"Cycle production server",["Cycle production server"],null,["deploy"]],[["prod_stop"],"Stop production server",["Stop production server"],null,["deploy"]],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,["deploy"]],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00.js","js/xhi/01.util.js","js/xhi/02.data.js","js/xhi/02.fake.js","js/xhi/03.model.js","js/xhi/04.utilb.js","js/xhi/05.css_base.js","js/xhi/05.css_lb.js","js/xhi/05.css_shell.js","js/xhi/06.css.js","js/xhi/06.lb.js","js/xhi/07.shell.js","js/xhi/08.app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["tmplt/ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["tmplt/ex02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"b4d3ada417bed390c5f85829b355eb3bab567dcd","_id":"hi_score@1.3.1","_npmVersion":"5.4.1","_nodeVersion":"8.4.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-KP/XXzZZuFtc08pnsaIH5Ta0NxbmdZxstRS8kyw7OGVRcirFEyDVygKdhSRuMQ3x24+i6a6Z3PiX3zNT0DcMzQ==","shasum":"d69ecddcdd1faf0af78f2d3476944e84654592d4","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.3.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+LMYTmc1zm4mYylOKImfqcdGafzJbaZM+nogcYawHIAIgQrNgzSQP5e3D0NdVCoNw3WEHbMN75+L5PVN2AMrhtf8="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.3.1.tgz_1505072825399_0.33908097678795457"},"directories":{}},"1.3.2":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPAs using a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.3.1","express":"4.15.4","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","jslint":"0.11.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.1","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.0.28","uglifycss":"0.0.27","websocket":"1.0.24"},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","build":"bin/xhi build","coverage":"cat build/latest/coverage/lcov.info | node_modules/.bin/coveralls","setup":"bin/xhi setup","test":"bin/xhi dev_test","xhi":"bin/xhi"},"version":"1.3.2","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor' directors are ignored.","Four tests are performed on each file:","  1. Fail if tabs characters or trailing space.","  2. Fail if 'use strict'; is not found.","  3. Fail if 'jslint --config config/jslint.conf <file>'","     does not pass.","  4. List TODO items for developer review.","     Fail if developer does not approve.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],["dev_cover","dev_commit"],["build"],null],[["prod_start"],"Start production server",["Start production server(s)"],null,["deploy"]],[["prod_restart"],"Cycle production server",["Cycle production server"],null,["deploy"]],[["prod_stop"],"Stop production server",["Stop production server"],null,["deploy"]],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,["deploy"]],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00.js","js/xhi/01.util.js","js/xhi/02.data.js","js/xhi/02.fake.js","js/xhi/03.model.js","js/xhi/04.utilb.js","js/xhi/05.css_base.js","js/xhi/05.css_lb.js","js/xhi/05.css_shell.js","js/xhi/06.css.js","js/xhi/06.lb.js","js/xhi/07.shell.js","js/xhi/08.app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["tmplt/ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["tmplt/ex02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"93d4f09d562d2d1dcf68618287a031b63f6dc1cf","_id":"hi_score@1.3.2","_npmVersion":"5.4.1","_nodeVersion":"8.4.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-rBz+S0uBQCWNkcMAMu847PxIaeHzAa6QFBg3BDZfOn1QPTOiClEGiqL7qA/Aualy/BdnFWryjkrxAMWaF2piKg==","shasum":"a2d334033c1df09da83939de84adb12d75c7b786","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.3.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsBaRHC2PGxHmV7x/psonj7CQySXsCEh/Fw2VK1zB9XwIhAI5I+U4r9Zf6E3EowAhRNWVG5j9htCgeoZPJFov3Gxie"}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.3.2.tgz_1505081059201_0.41481503332033753"},"directories":{}},"1.3.4":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPAs using a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.3.1","express":"4.15.4","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","jslint":"0.11.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.1","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.0.28","uglifycss":"0.0.27","websocket":"1.0.24"},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","build":"bin/xhi build","coverage":"cat build/latest/coverage/lcov.info | node_modules/.bin/coveralls","setup":"bin/xhi setup","test":"bin/xhi dev_test","xhi":"bin/xhi"},"version":"1.3.4","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor' directors are ignored.","Four tests are performed on each file:","  1. Fail if tabs characters or trailing space.","  2. Fail if 'use strict'; is not found.","  3. Fail if 'jslint --config config/jslint.conf <file>'","     does not pass.","  4. List TODO items for developer review.","     Fail if developer does not approve.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],["dev_cover","dev_commit"],["build"],null],[["prod_start"],"Start production server",["Start production server(s)"],null,["deploy"]],[["prod_restart"],"Cycle production server",["Cycle production server"],null,["deploy"]],[["prod_stop"],"Stop production server",["Stop production server"],null,["deploy"]],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,["deploy"]],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00.js","js/xhi/01.util.js","js/xhi/02.data.js","js/xhi/02.fake.js","js/xhi/03.model.js","js/xhi/04.utilb.js","js/xhi/05.css_base.js","js/xhi/05.css_lb.js","js/xhi/05.css_shell.js","js/xhi/06.css.js","js/xhi/06.lb.js","js/xhi/07.shell.js","js/xhi/08.app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["tmplt/ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["tmplt/ex02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"0dd9bcd0ff798122cbb8f5d35e46a71687e552e7","_id":"hi_score@1.3.4","_npmVersion":"5.4.1","_nodeVersion":"8.4.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-0tWo+JQruJKlRMklanMtW8NpsxzJFtKT+ZoxCJrdICJYdwe4u1cUvGa0KGfjcIuuQ+THK9/7C5BbyLQu3t9Kbw==","shasum":"a8dbdbf0a29bde5c7fa64c86cb7d6fa1eb0ff3d4","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.3.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCBeezT20NTCjpfK0w9e2kikPh8Bzee6aQ4PKhbdQF0MgIhAMX9jocKiukJHWHR1VRO/l2mlowawSeCoapbm86aTmS8"}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.3.4.tgz_1505181919308_0.3327077701687813"},"directories":{}},"1.3.6":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPAs using a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.3.1","express":"4.15.4","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","jslint":"0.11.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.1","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.0","uglifycss":"0.0.27","websocket":"1.0.24"},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","build":"bin/xhi build","coverage":"cat build/latest/coverage/lcov.info | node_modules/.bin/coveralls","setup":"bin/xhi setup","test":"bin/xhi dev_test","xhi":"bin/xhi"},"version":"1.3.6","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor' directors are ignored.","Four tests are performed on each file:","  1. Fail if tabs characters or trailing space.","  2. Fail if 'use strict'; is not found.","  3. Fail if 'jslint --config config/jslint.conf <file>'","     does not pass.","  4. List TODO items for developer review.","     Fail if developer does not approve.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],["dev_cover","dev_commit"],["build"],null],[["prod_start"],"Start production server",["Start production server(s)"],null,["deploy"]],[["prod_restart"],"Cycle production server",["Cycle production server"],null,["deploy"]],[["prod_stop"],"Stop production server",["Stop production server"],null,["deploy"]],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,["deploy"]],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00.js","js/xhi/01.util.js","js/xhi/02.data.js","js/xhi/02.fake.js","js/xhi/03.model.js","js/xhi/04.utilb.js","js/xhi/05.css_base.js","js/xhi/05.css_lb.js","js/xhi/05.css_shell.js","js/xhi/06.css.js","js/xhi/06.lb.js","js/xhi/07.shell.js","js/xhi/08.app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["tmplt/ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["tmplt/ex02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"59d3c73b0e8c577be75c37d21df586553fe4d9e1","_id":"hi_score@1.3.6","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-WVNgSge142sWHAfXARBMsGLE5e6nbfHaYhUojGebzCqbUJvHdDEByJowUz51F272wKshBtdOamYGMLh9zSs87g==","shasum":"2a22343cd484d0132baa00ca30888656eca9f8cf","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.3.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFhF+ZPWoQxmA60GBpAqe3+uk0Z185ujdoLUBPl4VSUxAiEAwa5Vx7dPje0icT7DEO2QqLYmxF0mqgy+1MWKNY042+8="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.3.6.tgz_1505268228574_0.4896442024037242"},"directories":{}},"1.3.7":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPAs using a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.3.1","express":"4.15.4","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","jslint":"0.11.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.1","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.0","uglifycss":"0.0.27","websocket":"1.0.24"},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","build":"bin/xhi build","coverage":"cat build/latest/coverage/lcov.info | node_modules/.bin/coveralls","setup":"bin/xhi setup","test":"bin/xhi dev_test","xhi":"bin/xhi"},"version":"1.3.7","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor' directors are ignored.","Four tests are performed on each file:","  1. Fail if tabs characters or trailing space.","  2. Fail if 'use strict'; is not found.","  3. Fail if 'jslint --config config/jslint.conf <file>'","     does not pass.","  4. List TODO items for developer review.","     Fail if developer does not approve.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],["dev_cover","dev_commit"],["build"],null],[["prod_start"],"Start production server",["Start production server(s)"],null,["deploy"]],[["prod_stop"],"Stop production server",["Stop production server"],null,["deploy"]],[["prod_restart"],"Cycle production server",["Cycle production server"],null,["deploy"]],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,["deploy"]],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00.js","js/xhi/01.util.js","js/xhi/02.data.js","js/xhi/02.fake.js","js/xhi/03.model.js","js/xhi/04.utilb.js","js/xhi/05.css_base.js","js/xhi/05.css_lb.js","js/xhi/05.css_shell.js","js/xhi/06.css.js","js/xhi/06.lb.js","js/xhi/07.shell.js","js/xhi/08.app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["tmplt/ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["tmplt/ex02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"16f70850a207a75ddb79e8f18a3e576fa23d358d","_id":"hi_score@1.3.7","_npmVersion":"5.4.1","_nodeVersion":"8.5.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-0VOwUHKWLSPTTyulYBASNlFT7w7A65poi8nNfwe+M0N+/0rR/JAlBl+DfN7Pp2o9K1ErxO082Rt8S6cOXsc+fw==","shasum":"9c174736e9d0b34d71bbf90864efdfc744cc363c","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.3.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDRwa/JZEYWIVzCFsUx102nCCUDcB844AdXnEZWjG91GAiEA40cbOouAHCRoa1zguZVQYDHS+yJeXtUniOK4btfzgZs="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.3.7.tgz_1505417370029_0.18400757084600627"},"directories":{}},"1.3.8":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPAs using a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.3.1","express":"4.15.4","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","jslint":"0.11.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.1","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.0","uglifycss":"0.0.27","websocket":"1.0.24"},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","build":"bin/xhi build","coverage":"cat build/latest/coverage/lcov.info | node_modules/.bin/coveralls","setup":"bin/xhi setup","test":"bin/xhi dev_test","xhi":"bin/xhi"},"version":"1.3.8","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor' directors are ignored.","Four tests are performed on each file:","  1. Fail if tabs characters or trailing space.","  2. Fail if 'use strict'; is not found.","  3. Fail if 'jslint --config config/jslint.conf <file>'","     does not pass.","  4. List TODO items for developer review.","     Fail if developer does not approve.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00.js","js/xhi/01.util.js","js/xhi/02.data.js","js/xhi/02.fake.js","js/xhi/03.model.js","js/xhi/04.utilb.js","js/xhi/05.css_base.js","js/xhi/05.css_lb.js","js/xhi/05.css_shell.js","js/xhi/06.css.js","js/xhi/06.lb.js","js/xhi/07.shell.js","js/xhi/08.app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["tmplt/ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["tmplt/ex02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"6d15226fff21db6eb5f70c675eac17b4b38be0f2","_id":"hi_score@1.3.8","_npmVersion":"5.4.1","_nodeVersion":"8.5.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-iS0s2SeLdUQUniLgUxJX6mdjdGXSbMn1LsIWSm4iTatajcpMCcrp2DcBNCo+Ik2dHEZy8XgCzAdTW6yHo+DWbg==","shasum":"b1b98f11dea8aacfb48f4b9a0138bfae7a92d265","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.3.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH6LtQOHyG6TsnuXl36OKMILjY8v/9R7lUl2w+4oA5n8AiBlpkLKyy7QRpxEjkaiSIE1CVeIU4B9ZzAYqBqjWfao1g=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.3.8.tgz_1505435591615_0.1287467156071216"},"directories":{}},"1.3.9":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPAs using a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"2.13.1","diff":"3.3.1","eslint":"4.7.0","eslint-plugin-json":"1.2.0","express":"4.15.4","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.1","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.0","uglifycss":"0.0.27","websocket":"1.0.24"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","build":"bin/xhi build","setup":"bin/xhi setup","test":"bin/xhi dev_test","xhi":"bin/xhi"},"version":"1.3.9","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor' directors are ignored.","Four tests are performed on each file:","  1. Fail if tabs characters or trailing space.","  2. Fail if 'use strict'; is not found.","  3. Fail if 'eshint --config config/eshint.conf <file>'","     does not pass.","  4. List TODO items for developer review.","     Fail if developer does not approve.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00.js","js/xhi/01.util.js","js/xhi/02.data.js","js/xhi/02.fake.js","js/xhi/03.model.js","js/xhi/04.utilb.js","js/xhi/05.css_base.js","js/xhi/05.css_lb.js","js/xhi/05.css_shell.js","js/xhi/06.css.js","js/xhi/06.lb.js","js/xhi/07.shell.js","js/xhi/08.app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["tmplt/ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["tmplt/ex02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"87c9cfd615f60f3d9663eaf92b5fee4953a19acc","_id":"hi_score@1.3.9","_npmVersion":"5.4.2","_nodeVersion":"8.5.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-k40PU9Lyv8b/9JCc3W4mlfn143R/8Z5GBG+6VB7hXEe7BTd6rNOGPQmq5RHR0WaXd7jHHUFt3Uk+KgTibXNWUA==","shasum":"3ef5464b42b1185a566072fcd9b396eef672d2dc","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.3.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtVUDkXjfOVFKvgM0mPNS1r/MyLbXajPG8qkc8T7vEYgIhAOkiTALywiJi+TSvrGxTeoOjg9vArU+U54trapjs7eRZ"}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.3.9.tgz_1505701033166_0.36238779383711517"},"directories":{}},"1.3.11":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.3.1","eslint":"4.8.0","eslint-plugin-json":"1.2.0","express":"4.16.1","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.2","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.2","uglifycss":"0.0.27","websocket":"1.0.24"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","build":"bin/xhi build","setup":"bin/xhi setup","test":"bin/xhi dev_test","xhi":"bin/xhi"},"version":"1.3.11","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor' directors are ignored.","Four tests are performed on each file:","  1. Fail if tabs characters or trailing space.","  2. Fail if 'use strict'; is not found.","  3. Fail if 'eshint --config config/eshint.conf <file>'","     does not pass.","  4. List TODO items for developer review.","     Fail if developer does not approve.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/tb02-00_root.js","js/tb02-01_util.js","js/tb02-03_model.js","js/tb02-03_model.data.js","js/tb02-06_css.js","js/tb02-07_shell.js","js/tb02-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"0a076d0c7151e061933518d545bfa36d2ffd84a6","_id":"hi_score@1.3.11","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-T41zraauE9k39DY2p8lGe1vayvFU4GuwQrJfA/lyeTRxhgiSQcCVLFThRKzTE5BqYBmbPeRYRzRG3xqjBNG5Kw==","shasum":"40dda07ef523887e8d76e18319750363bfc22db8","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.3.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/EoN4rd6A9tLJmDeLjxTXRyW1zKho+fSW0EOpSSMNwQIgYrz9Y6iBQ33si8whrp9lb21GW8zRxb68mQmZhXs815M="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.3.11.tgz_1506753070209_0.18500491953454912"},"directories":{}},"1.4.0":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.3.1","eslint":"4.8.0","eslint-plugin-json":"1.2.0","express":"4.16.1","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.2","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.2","uglifycss":"0.0.27","websocket":"1.0.24"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","build":"bin/xhi build","setup":"bin/xhi setup","test":"bin/xhi dev_test","xhi":"bin/xhi"},"version":"1.4.0","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/tb02-00_root.js","js/tb02-01_util.js","js/tb02-03_model.js","js/tb02-03_model.data.js","js/tb02-06_css.js","js/tb02-07_shell.js","js/tb02-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"99cc77e0f7a47c3dcf4354c0342ea46821db220a","_id":"hi_score@1.4.0","_npmVersion":"5.4.2","_nodeVersion":"8.6.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-YAMf0jKVuXB8MuSbNWoo461EcwrXz5KZvP5a7MTbZeNJkhz8SnE7U0McJ1/hrKXMtM3ugiePLyhPkZaOyeZj8w==","shasum":"3eed38119b18f9a6729e8212b77310bd1dfacc95","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLhauKT31tno4i770Tjr5XcWlVBQw5OoUDqJ8PztNgHAIhAODFDlzCPZIcxRlE1l/33T8pQSpUnP8+jv2VhzT+yCiV"}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.0.tgz_1506987348885_0.8556636609137058"},"directories":{}},"1.4.1":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.3.1","eslint":"4.8.0","eslint-plugin-json":"1.2.0","express":"4.16.1","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.2","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.2","uglifycss":"0.0.27","websocket":"1.0.24"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.1","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/tb02-00_root.js","js/tb02-01_util.js","js/tb02-03_model.js","js/tb02-03_model.data.js","js/tb02-06_css.js","js/tb02-07_shell.js","js/tb02-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"6eb3902678c49a45bccf9c3a259072e0394cfd8a","_id":"hi_score@1.4.1","_npmVersion":"5.4.2","_nodeVersion":"8.6.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-1gnNgNFV0+9aNIY2HKO65xJt9zdKLbk9BU3/CcGO6qdaA0fyDKd1DoJlK/dpLHB7Cu/S/hqQ2YCASdEuOJqSuQ==","shasum":"ca9dc671cce70e91859600a754169a96b6ecc5e7","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDqDoY8hcdqOQL+WgUfJYGYE7WaD7WHkoksUGJlbZqJPAiB/4u8GZPlmf6Ju1MKDWruUq6FdN2d26vAvUge1imiqLA=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.1.tgz_1506990168357_0.5780112962238491"},"directories":{}},"1.4.2":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.3.1","eslint":"4.8.0","eslint-plugin-json":"1.2.0","express":"4.16.1","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.2","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.2","uglifycss":"0.0.27","websocket":"1.0.24"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.2","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/tb02-00_root.js","js/tb02-01_util.js","js/tb02-03_model.js","js/tb02-03_model.data.js","js/tb02-06_css.js","js/tb02-07_shell.js","js/tb02-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"ac7e57dd91445f012ccd8d2095d0e202e1e03ab2","_id":"hi_score@1.4.2","_npmVersion":"5.4.2","_nodeVersion":"8.6.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-WxBMPV0Q6scpdPUL/W2Vi6+7kHb0DueJsxaVaCLvO/lRCh6+8vY9pk86xDYmHTSb1lzBeuBKRYuSz4mjAWCPKw==","shasum":"7076cb35053013e3d95d3d68a9938282bf110809","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFkh61mXeFQ5akLOf7Iei2pUAktG1tB064A+TCgyaPCdAiBCQTd3SLDcyIZRpENiA9fjmTNWvxJhDI4RIaLn2XPazw=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.2.tgz_1507005928412_0.22500856686383486"},"directories":{}},"1.4.3":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.3.1","eslint":"4.8.0","eslint-plugin-json":"1.2.0","express":"4.16.1","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.2","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.2","uglifycss":"0.0.27","websocket":"1.0.24"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.3","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/tb02-00_root.js","js/tb02-01_util.js","js/tb02-03_model.js","js/tb02-03_model.data.js","js/tb02-05_css_base.js","js/tb02-05_css_lb.js","js/tb02-06_css.js","js/tb02-06_lb.js","js/tb02-07_shell.js","js/tb02-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"b91387454a553c8822b1fd3b32ab74440f6edda5","_id":"hi_score@1.4.3","_npmVersion":"5.4.2","_nodeVersion":"8.6.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-jQBl+clNK7qwWgyrQ7M99t4sqsFhOk1WQcC4o4qLKqV38xcOoXBILLA5djLBZD2V8yiEOIxSxY4MPb8NwKrrRw==","shasum":"503c5063040b427a39367a28d4d69d355694d5ac","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjH0McAJ2PbaF32AmFxjIy4aqoTi75WGftrolnB3c45wIhAP7DkD1swuMd1R/0BOKaP2lE+eIVoGWNgrNS+0QQfgD0"}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.3.tgz_1507010061024_0.3112911500502378"},"directories":{}},"1.4.5":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.3.1","eslint":"4.8.0","eslint-plugin-json":"1.2.0","express":"4.16.1","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.2","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.2","uglifycss":"0.0.27","websocket":"1.0.24"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.5","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/tb02-00_root.js","js/tb02-01_util.js","js/tb02-03_model.js","js/tb02-03_model.data.js","js/tb02-05_css_base.js","js/tb02-05_css_lb.js","js/tb02-06_css.js","js/tb02-06_lb.js","js/tb02-07_shell.js","js/tb02-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"a1944fd678df216bc10a5f2f00c29e81411aa38c","_id":"hi_score@1.4.5","_npmVersion":"5.4.2","_nodeVersion":"8.6.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-vkdW1EvJN/eQzUbnXov1z+JknvAJUw9sn3/3+zcolNxso9WsiJsS50goI2NJZNh2Optc5HjYuknCLZWr0jhNFg==","shasum":"5aa1ce0d78484170d572706056ce6167d4392843","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDDdP4naE7P7ay96hBSpD/MRuMcWDVixoqymKhvHGLyFAiEArcwPjwusBGMjrexkwKlKOb1lO3feSgCvIqyWtUxiKM8="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.5.tgz_1507166134649_0.953551713610068"},"directories":{}},"1.4.6":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.3.1","eslint":"4.8.0","eslint-plugin-json":"1.2.0","express":"4.16.1","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.2","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.2","uglifycss":"0.0.27","websocket":"1.0.24"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.6","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/tb02.00_root.js","js/tb02.01_util.js","js/tb02.02_data.js","js/tb02.03_model.js","js/tb02.04_utilb.js","js/tb02.05_css_base.js","js/tb02.05_css_lb.js","js/tb02.06_css.js","js/tb02.06_lb.js","js/tb02.07_shell.js","js/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"c873f77d3c569071ea48cf312df760e297952e39","_id":"hi_score@1.4.6","_npmVersion":"5.4.2","_nodeVersion":"8.6.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-MOrq2iHTInbHaT4t7QBN7l8FadmhGj8tWO/IXRbBFH/LwRXKG8+NvmBion5pVIiHSOw+CiNUTctC62JyA/kFeA==","shasum":"e16c8b08c589a84f25b50786eee1016a32aa35b9","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFqBV7hAtGGsNetc/mkKnYAhOHdpQVtC+7bsiof8b7IbAiB+btVOL6bNdYtYj3IKbcR1AKIufaq/QwzE60QIDwG2mA=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.6.tgz_1507239256410_0.835095826536417"},"directories":{}},"1.4.7":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.3.1","eslint":"4.8.0","eslint-plugin-json":"1.2.0","express":"4.16.1","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.2","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.2","uglifycss":"0.0.27","websocket":"1.0.24"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.7","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/tb02.00_root.js","js/tb02.01_util.js","js/tb02.02_data.js","js/tb02.03_model.js","js/tb02.04_utilb.js","js/tb02.05_css_base.js","js/tb02.05_css_lb.js","js/tb02.06_css.js","js/tb02.06_lb.js","js/tb02.07_shell.js","js/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"a0c68855ed07b90a7a6bfb348d34af75fd2ba970","_id":"hi_score@1.4.7","_npmVersion":"5.4.2","_nodeVersion":"8.6.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-KLwJaMoBzJ+VxfM+zQ87nRH4FzMJSoZuV2hhEKAAlnTisMcwfURqlzPiLAErYhPYGmoRALNI5OkhqOE8uQFw6w==","shasum":"d8cf656fe577ff4bee3a1548389051cede8796b9","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZ5ciLD16MhWoIBewxg1me0m6raboYuDMC1/ubHViLKAIhAJ2y03r6VwMgERQYH44AfQUzeJzvgG27D5f+Spg2j7fZ"}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.7.tgz_1507256824007_0.36323495395481586"},"directories":{}},"1.4.8":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.3.1","eslint":"4.8.0","eslint-plugin-json":"1.2.0","express":"4.16.1","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.2","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.2","uglifycss":"0.0.27","websocket":"1.0.24"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.8","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/tb02.00_root.js","js/tb02.01_util.js","js/tb02.02_data.js","js/tb02.03_model.js","js/tb02.04_utilb.js","js/tb02.05_css_base.js","js/tb02.05_css_lb.js","js/tb02.06_css.js","js/tb02.06_lb.js","js/tb02.07_shell.js","js/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"218907947bda437fbc99e98f30d7022c9fe28133","_id":"hi_score@1.4.8","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-rQ/wUJ54/PHaYcTai3+Ctjli60Vv8dDxCyDiuSkkbfXFELEIKgMEJq+vkakMGOj/0Yl3czcNUjowPckMlXxSCw==","shasum":"a88848e6c82302b30a2f60143b693edd1b77506c","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgyU70nmRwGLum991hB9uTEE61/kqValz3jKnczsxz0QIhALoBkl7p32283MpuLeqvgQbspuBOKk/ajFiHyj3HFEO9"}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.8.tgz_1508537314644_0.6732689682394266"},"directories":{}},"1.4.9":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.3.1","eslint":"4.8.0","eslint-plugin-json":"1.2.0","express":"4.16.1","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.2","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.2","uglifycss":"0.0.27","websocket":"1.0.24"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.9","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02-08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/tb02.00_root.js","js/tb02.01_util.js","js/tb02.02_data.js","js/tb02.03_model.js","js/tb02.04_utilb.js","js/tb02.05_css_base.js","js/tb02.05_css_lb.js","js/tb02.06_css.js","js/tb02.06_lb.js","js/tb02.07_shell.js","js/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"94a0a3697fee9f5ffb2054372383b4f613f328c2","_id":"hi_score@1.4.9","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-0dpxca0B+SaN02hdknmRDyRipXY3rcyexPLzbjR4Wp2CTQm/5A/776Yjm5/2WMr18aM0jAHFSSuVF9SwL7iY2Q==","shasum":"f116c030dac2c9a05a506e7510c21a08c2c91965","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3vlKufWdfp3ecGXFd1gE1PZq88lfaJS2qmke7mSuj8wIhAM1VcSdxhdUSDD7J5wxJSClSOd70Op2hR7vwxNVoWsKp"}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.9.tgz_1508717646064_0.2295574750751257"},"directories":{}},"1.4.10":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.3.1","eslint":"4.8.0","eslint-plugin-json":"1.2.0","express":"4.16.1","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.2","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.2","uglifycss":"0.0.27","websocket":"1.0.24"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.10","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/tb02.00_root.js","js/tb02.01_util.js","js/tb02.02_data.js","js/tb02.03_model.js","js/tb02.04_utilb.js","js/tb02.05_css_base.js","js/tb02.05_css_lb.js","js/tb02.06_css.js","js/tb02.06_lb.js","js/tb02.07_shell.js","js/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"05835f03accf6b232a2b205e7abb177b7f6ea70a","_id":"hi_score@1.4.10","_npmVersion":"5.4.2","_nodeVersion":"8.8.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-fCfhKRE7aBPi//56zgpwfZCAtJsj21ZJdSKLuYucCgYhgd3VB5f1Bdw6RCp59B4Dr8GEJUnr187yPpCK1qsLXg==","shasum":"6e050a0df02ba32f8af8f44291bd240ddd7e234a","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.10.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCp3kxsTIyH8R8G0Srk14uhd15P+Tm4GYWP/n703hbI2wIhAJvHcB9sREgIeVhKsFtvKmG15cvp3pBxV43rHpbRThcR"}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.10.tgz_1508897723281_0.013737427536398172"},"directories":{}},"1.4.11":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.3.1","eslint":"4.8.0","eslint-plugin-json":"1.2.0","express":"4.16.1","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.2.0","line-by-line":"0.1.5","mongodb":"2.2.31","mysql2":"1.4.2","nodeunit":"0.11.1","npm":"5.4.2","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.2","uglifycss":"0.0.27","websocket":"1.0.24"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.11","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/tb02.00_root.js","js/tb02.01_util.js","js/tb02.02_data.js","js/tb02.03_model.js","js/tb02.04_utilb.js","js/tb02.05_css_base.js","js/tb02.05_css_lb.js","js/tb02.06_css.js","js/tb02.06_lb.js","js/tb02.07_shell.js","js/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"449682e0075a0b2719a806fd30775c2dc1dca4f7","_id":"hi_score@1.4.11","_npmVersion":"5.5.1","_nodeVersion":"8.8.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-4DnTMm02YG1jaKL/waV66p6s4P4VCa3wOveU8w35m3/84B7rIgi7rffwyJEmpDB3ohl2tWish6TYuyKECwyiGg==","shasum":"96454fc100220e23f9a22a9848f8508ed3b079b2","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCzG9pITtEVvfnsTZYQcNMFge3MuDHJ8eCfH2K4c+n6SAIgGYjf5W/yWAN5oyhI3unO/xA3VE5i0B1InLu7QeCfOTI="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.11.tgz_1508992607935_0.5693410460371524"},"directories":{}},"1.4.12":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.4.0","eslint":"4.10.0","eslint-plugin-json":"1.2.0","express":"4.16.2","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.3.0","line-by-line":"0.1.5","mongodb":"2.2.33","mysql2":"1.4.2","nodeunit":"0.11.2","npm":"5.5.1","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.6","uglifycss":"0.0.27","websocket":"1.0.25"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.12","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/tb02.00_root.js","js/tb02.01_util.js","js/tb02.02_data.js","js/tb02.03_model.js","js/tb02.04_utilb.js","js/tb02.05_css_base.js","js/tb02.05_css_lb.js","js/tb02.06_css.js","js/tb02.06_lb.js","js/tb02.07_shell.js","js/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"6b14fbcdc6918a2f9a9fecc680f8f2d6dd565980","_id":"hi_score@1.4.12","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-tpAQuYDoYkMtQFXCgyAvyAIyRVwTWy4TFaa7Q7KvkNkasFpYS2ANkhbTAV+a3H48+Wx1Uw4uzWS2091O1MCjdQ==","shasum":"5bfd78eb73d6bed7ad23c74a5bb2be111c3fc500","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.12.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDi1dmxa+n2TGk3iDE2SHsQXi1fkea5e5Nv84gQu0OFcgIgW6SSzph6+Ak15E/RcO+hjP5AMRVXSpC0DQp9kztOjFU="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.12.tgz_1510036670499_0.982638870831579"},"directories":{}},"1.4.13":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.4.0","eslint":"4.10.0","eslint-plugin-json":"1.2.0","express":"4.16.2","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.3.0","line-by-line":"0.1.5","mongodb":"2.2.33","mysql2":"1.4.2","nodeunit":"0.11.2","npm":"5.5.1","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.6","uglifycss":"0.0.27","websocket":"1.0.25"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.13","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_css_base.js","js/app-tb02/tb02.05_css_lb.js","js/app-tb02/tb02.06_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"799bf3deea24aff4debd7196a61d296f51d9af8d","_id":"hi_score@1.4.13","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-WXvatiZbI52XpwSF3MWQkKIKqeI2fXCWcKTTM5fgUi2y1hKwPEUoHjOAvsRb9I5ZAkTEAjwB4WqtXIwYf27KtA==","shasum":"61ed39a5bd92909d58f03950bda3e965698c7346","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.13.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbfGJUm7IhNMY7nCi7X1mai5k5wjBfZ05877gkhPDdqQIgcCUXdrqaSP51eGDt0HrSVZpqDHiFyq22ucskkF5PjxE="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.13.tgz_1510071512985_0.14272531890310347"},"directories":{}},"1.4.14":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.4.0","eslint":"4.10.0","eslint-plugin-json":"1.2.0","express":"4.16.2","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.3.0","line-by-line":"0.1.5","mongodb":"2.2.33","mysql2":"1.4.2","nodeunit":"0.11.2","npm":"5.5.1","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.8","uglifycss":"0.0.27","websocket":"1.0.25"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.14","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_css_base.js","js/app-tb02/tb02.05_css_lb.js","js/app-tb02/tb02.06_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"a01e7f93f6529df28894ec5c331724e7eac29063","_id":"hi_score@1.4.14","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-10t1e3lvJTrKLsgr6BbP1rXaQkNlScVSJk2w6iyLi1xu8g9wcrkGcT7ACmg6KLMj0HL0isanbe9x1EuBYDSvJg==","shasum":"3f3b951602397c29883b56b7abe163583e8b2398","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.14.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE78+I0O8r2bXPSqRtbDwhQkd22jLxp8KVcZxhmWjAaKAiBeuS52FC4La+g09WGt8jgXIXcKSbTJLBbd+WQ0D8tP3g=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.14.tgz_1510283045185_0.5487768137827516"},"directories":{}},"1.4.15":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.4.0","eslint":"4.10.0","eslint-plugin-json":"1.2.0","express":"4.16.2","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.3.0","line-by-line":"0.1.5","mongodb":"2.2.33","mysql2":"1.4.2","nodeunit":"0.11.2","npm":"5.5.1","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.8","uglifycss":"0.0.27","websocket":"1.0.25"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.15","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_css_base.js","js/app-tb02/tb02.05_css_lb.js","js/app-tb02/tb02.06_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"5112cd076c4048041850bd918ae6d4fd078545f9","_id":"hi_score@1.4.15","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-RZ9O8SkL+ydZ8T7IcgMFEUQEhMzDSVopS8GZY/s1GdW+9BC7VmgCelJ/PwcblPINSKygzfS9RcIqmCIAUzsXxQ==","shasum":"09fc60b553b7c4344b35478046b7faa90cdb4af9","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.15.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA4z0yCBTfaeWcDEHSlyEEXLK5KPAFGYUj8BMzeuvtSnAiA2oXjpGeD++q64cxRk5zu9u+R7De8qUVekeY+JWUkeBA=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.15.tgz_1510546986674_0.5908900538925081"},"directories":{}},"1.4.16":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.4.0","eslint":"4.10.0","eslint-plugin-json":"1.2.0","express":"4.16.2","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.3.0","line-by-line":"0.1.5","mongodb":"2.2.33","mysql2":"1.4.2","nodeunit":"0.11.2","npm":"5.5.1","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.8","uglifycss":"0.0.27","websocket":"1.0.25"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.16","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_css_base.js","js/app-tb02/tb02.05_css_lb.js","js/app-tb02/tb02.06_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"0c35b976f39f35e5974195653cb851faaa85a0c8","_id":"hi_score@1.4.16","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-ywhA3qN2NhNDqYm4/pvqO9Zr6+nifuTsbg0Y0XiAQJKSX7HYEqVAF3IlN2U/nD7YA65ASQt3zFROpFkaE8L6lg==","shasum":"1033dbf19e0468693ee8754afc799c28833841da","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.16.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC0kf24ZWo6VXo8cit0hOCPiHPHQ0Y5/3IMXtbWOWG4vAiAo7ElAHR0uk94RMTkgy9smsFRTopMin2J8kk5AUAlT8w=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.16.tgz_1510601511837_0.07084972970187664"},"directories":{}},"1.4.17":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.4.0","eslint":"4.10.0","eslint-plugin-json":"1.2.0","express":"4.16.2","flow":"0.2.3","font-awesome":"4.7.0","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.3.0","line-by-line":"0.1.5","mongodb":"2.2.33","mysql2":"1.4.2","nodeunit":"0.11.2","npm":"5.5.1","open-sans-fontface":"1.4.0","powercss":"1.4.2","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.8","uglifycss":"0.0.27","websocket":"1.0.25"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.17","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex01.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-ex02.html","/",false],["img/hi_score.png",null,false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_css_base.js","js/app-tb02/tb02.05_css_lb.js","js/app-tb02/tb02.06_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"b448479add05e6676d1e248b1ea939077bf2bdb9","_id":"hi_score@1.4.17","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-H3RruMkemMP7AHjpkRRbGNVRVUToRogQKW3lqkQbyklRhtdpiOC20trz2LU21Qn8UKPH+s8O5Tz/Wh5/Y0Rixg==","shasum":"fe7d0541ba389932048dc3e2abf76edbbabded93","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.17.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAS3faMxxuEhIU3TZz3537c0rI89x9Zm9iHt7r3f+ws6AiEA1Fjn2K2xs0PrP2s92uOTvzHUoQ3j0d+2iGjh8EuOKj4="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.17.tgz_1510684861517_0.7792827999219298"},"directories":{}},"1.4.18":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.4.0","eslint":"4.10.0","eslint-plugin-json":"1.2.0","express":"4.16.2","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.3.0","line-by-line":"0.1.5","mongodb":"2.2.33","mysql2":"1.4.2","nodeunit":"0.11.2","npm":"5.5.1","open-sans-fontface":"1.4.0","powercss":"1.4.3","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.8","uglifycss":"0.0.27","websocket":"1.0.25"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.18","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["dev_pull"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_css_base.js","js/app-tb02/tb02.05_css_lb.js","js/app-tb02/tb02.06_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"fb4de649dc010842ae2493a6de83fd77c33f4bf7","_id":"hi_score@1.4.18","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-5eNyFIpXuyg60j54dMzW2SJnzQZU+z6jZh1x2G/MhY09N4GECVJsdSMjcGIhRZG/y5QR976AB7bs8nN+B6P4eQ==","shasum":"f7472e554892b8c1d5464e67b6e101770c280f5f","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.18.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWM+yH6opa5hUDQdv2CdDkVlIAMn601SfWSv93lZ+kKAIgYfhP0wS5i2dg0YIYtoniMP1PJvy5bBoRgDO0/pX7gnA="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.18.tgz_1512158044399_0.2850112814921886"},"directories":{}},"1.4.19":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.4.0","eslint":"4.10.0","eslint-plugin-json":"1.2.0","express":"4.16.2","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.10.0","istanbul":"0.4.5","jquery":"3.2.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.3.0","line-by-line":"0.1.5","mongodb":"2.2.33","mysql2":"1.4.2","nodeunit":"0.11.2","npm":"5.5.1","open-sans-fontface":"1.4.0","powercss":"1.4.3","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.7.8","taffydb":"2.7.3","uglify-js":"3.1.8","uglifycss":"0.0.27","websocket":"1.0.25"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.19","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_css_base.js","js/app-tb02/tb02.05_css_lb.js","js/app-tb02/tb02.06_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"cc7352ccbdeeb642cb38bac3edf96cf576725371","_id":"hi_score@1.4.19","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-S0eKYEdUPtTqHe3D83cCBJBkMAEcG915C/IQtHrBgg1JrkFvIX8ShG85GoS0TlFlqco0J5S0akPP+XLMyYn7Bw==","shasum":"2f053d21336531dc50cc086a7dc96a9f72d17dbd","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.19.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFzinU5t7/FA3RTv9IwXJ+hFoywXJyPSNsxb6kRJuI1uAiAiRkPLUIgxd3OQd6PiGD2sqOtEWQCpI172AEFLIhlHPQ=="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score-1.4.19.tgz_1512246909873_0.5831189942546189"},"directories":{}},"1.4.21":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.5.0","eslint":"4.18.2","eslint-plugin-json":"1.2.0","express":"4.16.2","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.3.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.6.2","line-by-line":"0.1.6","mongodb":"3.0.4","mysql2":"1.5.2","nodeunit":"0.11.2","npm":"5.7.1","open-sans-fontface":"1.4.0","powercss":"1.4.5","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.1","taffydb":"2.7.3","uglify-js":"3.1.8","uglifycss":"0.0.28","websocket":"1.0.25"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.21","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_css_base.js","js/app-tb02/tb02.05_css_lb.js","js/app-tb02/tb02.06_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"0efa5fa5c889e8ddae9bfe4116a45cf3cc02c92f","_id":"hi_score@1.4.21","_npmVersion":"5.7.1","_nodeVersion":"8.10.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-KiZrblV8cOvCi8qS8o5lBCiXoPRfaUcAdd1f9eeA7PXzHAQRztSy0cF4C2pVKH3wN5r9U98lB7Lbe5USFoEz1Q==","shasum":"cce8cc943f66159e23b356ff8bdadb0f6ed3f0a4","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.21.tgz","fileCount":115,"unpackedSize":8315932,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGHCUVGVSnmxsko7gw5TixSEU/a/Ta3qv663dwhCKAT6AiEA+fNUucBb8+uyZbFsSKis2hKkwPlkcm9CxTm9NJcyGxo="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.4.21_1520453342763_0.11513525225357868"},"_hasShrinkwrap":false},"1.4.22":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA  that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.5.0","eslint":"4.18.2","eslint-plugin-json":"1.2.0","express":"4.16.2","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.3.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.6.2","line-by-line":"0.1.6","mongodb":"3.0.4","mysql2":"1.5.2","nodeunit":"0.11.2","npm":"5.7.1","open-sans-fontface":"1.4.0","powercss":"1.4.5","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.1","taffydb":"2.7.3","uglify-js":"3.1.8","uglifycss":"0.0.28","websocket":"1.0.25"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.22","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_css_base.js","js/app-tb02/tb02.05_css_lb.js","js/app-tb02/tb02.06_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"a799f3d9a3ad16b95ebf0e7a99c53a116995f21b","_id":"hi_score@1.4.22","_npmVersion":"5.8.0","_nodeVersion":"8.10.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-fyaXtsepjbOVRPjoKnPlCpcH3CpoUouGEzuX7QsuTKYXMQV++uRVhVgrI+4D98g9v5UN5qr8n0P2zZ6uB8Jsew==","shasum":"83ea26da636d00d244e3e638a512a5ecae5e4ed3","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.22.tgz","fileCount":113,"unpackedSize":8285557,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeRLozaj0zD5Pe04sik2WlNtmz7NI+FHEWHUMmIYst9gIhALGkD8Kxk/7zIMdxMxlrpktPj/+GcgYSVUYBLLz+e43d"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.4.22_1522118106636_0.31905158646346576"},"_hasShrinkwrap":false},"1.4.23":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.5.0","eslint":"4.18.2","eslint-plugin-json":"1.2.0","express":"4.16.2","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.3.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.6.2","line-by-line":"0.1.6","mongodb":"3.0.4","mysql2":"1.5.2","nodeunit":"0.11.2","npm":"5.7.1","open-sans-fontface":"1.4.0","powercss":"1.4.5","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.1","taffydb":"2.7.3","uglify-js":"3.1.8","uglifycss":"0.0.28","websocket":"1.0.25"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.23","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_css_base.js","js/app-tb02/tb02.05_css_lb.js","js/app-tb02/tb02.06_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"556d92e72648374a5f7fc5a31d1332b254fa36bd","_id":"hi_score@1.4.23","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-VyVsDiPKBssBSYuIrvrSAwTzHyHZPg0jLSf12LPPAhgn7QNaYQNY9bGiSSaVNOi97WjVB15TaWl2J7yjeWTFnA==","shasum":"f57fbffe18f3d3335c7ac6430553b6b8a835a10a","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.23.tgz","fileCount":113,"unpackedSize":8285556,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa28iTCRA9TVsSAnZWagAAcysQAJFpo6hXIluTeh86bWnD\nQGibxr9IDGNHMxe4PPVOoVGRMMrFhehtj+eC2x/SI2dn+55j612Uhh+B/UaL\neIpKZQPYwPK2TvhlL63tW7MCfnUeNUGibPN205lh/iFVBYb5lXh6Au33eV4Q\nk/N6wgeNzlZWZh663A0QbtkzDir+/6oSDJCw8MVSm2tLoF5EgH1zgvI+ohLW\nTe2J6z4SShVilR5vL5xCzacElwbI0GQgRpVCWNf6a7FuY1OPCEigb4aMElHw\ntcCE3ybyZyZ+dVP4EUvzaUe5Yaxtx4s1Ldvu16TWLxzzmIWaCosBdupBbEaQ\n8sMdnuOe81YJOF8GO2dBE0Cu2GKA3Dl3BiVxAD+fzJHm+kmghFSGQYyFw5yY\nveuMcajrVfbBvWZEkLoNNZZlnagMoCCefwoh1UNYnMMTeTFOK2EUkay+ABwM\n4UVs4CCE3AZGDXoBtP4l42xyeKPrGiDKZvrkkIUoo5LKI00S1+qsTz362New\n+EAq8Z86wd1gM7Yd5zQcL9cgr+9krskY+MOEodXhh4PysxJbkfe0srsFB1Ea\nbD1ru0Qx8pS0gQdvxS4zEJfgtv+MAIg8tYyF2s8GNEmZcTG9cc3JmyoohBM8\no1LF6g8ft0svABG1zh51mZywjv1L1sUa79d0Duw7oz0FeqMvcf5Ozh/eUO0E\niZC9\r\n=vW8u\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpb0073zMaj2MPUbT4uCZ8ANhZSZF3yU1lhl6vK0fOXAIhAIPOgoOSdGtQj2Obk6A9CR1Hj7fneZSLXw+77YgnTrqv"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.4.23_1524353168107_0.15636047180220713"},"_hasShrinkwrap":false},"1.4.24":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.5.0","eslint":"4.18.2","eslint-plugin-json":"1.2.0","express":"4.16.2","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.3.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.6.2","line-by-line":"0.1.6","mongodb":"3.0.4","mysql2":"1.5.2","nodeunit":"0.11.2","npm":"5.7.1","open-sans-fontface":"1.4.0","powercss":"1.4.5","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.1","taffydb":"2.7.3","uglify-js":"3.1.8","uglifycss":"0.0.28","websocket":"1.0.25"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.24","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_css_base.js","js/app-tb02/tb02.05_css_lb.js","js/app-tb02/tb02.06_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"371d73e5d55ff7f32872195b33b65e849ddf7fbd","_id":"hi_score@1.4.24","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-bJ0DZUz273qerK8zciSDK4QFZhg9cIsLc9aR1L2fv7FAhkTr4o38NeB2oiJriGkhmwkr6VdUUEC+MBc10yqdUQ==","shasum":"b457e9392ad0ebf700f1e85488c673f730d63426","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.24.tgz","fileCount":113,"unpackedSize":8285946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4RO0CRA9TVsSAnZWagAAKSwP/jqoCg5BkY+cWkNcBNRW\n8x5wyTqgp/YHaIYGr2bwNIBhWIeV0Hz0zcDQn2+FxCc0GXTBm3ybjQjObfiP\ncl9y1BajXykAe/luEXPtgBDkLYf1wHAg8WMZahjYk5Pmra4tvJdeTmyykXIZ\nslOxZnYj9/XUZKCc6JsO/TmxFX+tA40p7glCoJJfFpa++tirmnkQUOscbLni\nrHic9jT8go5Bis8fht058H3AeugMxEW+b76WGLl5dzRKT1TU6xrV5jhRj8tw\nyeCQInAJGZsQC3EiWoR486jgY5e7yiMaRjttABQzFTshJX8wVeos5WgjPqwc\nHji9aZJoR1wJgz80/YycA2yDJOdiSvm8wQ8dIi3W7WeZQgsw/DP+lKS4iZwE\nUhhRAV2loUhGE259WpKd5NR5oWoIzmlek1Ik/LSbmU/8ZF0aB/df/RgnbfhT\nMo1R2F98pabuDqsgfFgTOsRU2UmtsoLs3qb/stChiwxsz2jjTBuNe55n0GDm\niqWNUB2c8wY1W7kcifJWMgXM05oT03qvOGZwVnBZQbyPp41hOGZa89W2ltPC\n2OiqlCzUHK+Bn6iVGI58RKc9iSzwvq/WSDSxKxwFf8OKTdSWt6KbczPG6BDC\n4YKW1gibGSiLzRmnavy8mrP16y3exb2ZAh/ZQzy8E6LNqeovYTWWS3NUSN0v\nDmZt\r\n=E/Iq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIET2J4D2GwwsvejXlA02T3CvrUPHMGD3zbKQnNMbScEZAiEA1+0B2LjJbgsd1OtFg0vQq98WHdV3PEDLhGhGKRmK+e8="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.4.24_1524700080919_0.8681432158862454"},"_hasShrinkwrap":false},"1.4.25":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.5.0","eslint":"4.18.2","eslint-plugin-json":"1.2.0","express":"4.16.2","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.3.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.6.2","line-by-line":"0.1.6","mongodb":"3.0.4","mysql2":"1.5.2","nodeunit":"0.11.2","npm":"5.7.1","open-sans-fontface":"1.4.0","powercss":"1.4.5","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.1","taffydb":"2.7.3","uglify-js":"3.1.8","uglifycss":"0.0.28","websocket":"1.0.25"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.25","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_css_base.js","js/app-tb02/tb02.05_css_lb.js","js/app-tb02/tb02.06_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"bfc0bb0e31c3c0a67e10dab7253e872cf12da72d","_id":"hi_score@1.4.25","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-6i+f5Pu+Pobsb7Wetdq8yZRmBTX4yvqdW8UcNKdCi6HbdNxTMjRwlZ7AOozQ3Jbg92nJDR8+G1k6JeaeDso8gg==","shasum":"dcd73e8e2a327aa3de66a71e25fb21cb4c33c3af","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.25.tgz","fileCount":113,"unpackedSize":8287934,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa5RKjCRA9TVsSAnZWagAArmcQAJx4cvIRQbKUSUbnCif5\nzPnFQPNaQ0XDzBjPsYD/v8bPeLMFIVgtUboazmxnR3B82/QLsP8/lMNGeO9g\n6xM/2fBZkWGOL7vZsjgx3DHMK8QaKeyJPcNEt4Opo9LPWfOQsqjFJ4X4s79p\nx2de+NowJN4H1/P6kCE6ZFYtlZON6bYDYrRTj0fd37KxD+ojfZ2w4mwMFFem\nUezbGBzTYTueH0Im1pUazQW+XhlZQ4jg5KTfmxv6HihvkOCYs5gwelGY93Ka\njzL+r22bpx7xy1gTxyq5uOJSLcw1tXYuR9s9Oc/3s+Lqgjs72OAUmt96TKGr\n/XFfu9KDTakzjKq2pgIyIfmIQEzPZrBjUfFudnyGK5W2LzAUZHiPqUAvn1Qc\noqry3JNHH1recexl9ZaTHSwQoGJXERD/K1xbjXtQqddP/wQbIjADsk2K2oBh\nxIHOjnaGtgZFtZPhYnU0WGzoV/fvIsNi4DDTDyj40EVDKDVMT8i3lXK00HKh\n8XFuX7UPvprt8urfSSEijVX9l4W9N7+NRhMRopVUrKXMoJvzWRvVlweLu1KT\nbDgGv69c29j5rqOO/T8sBY6+EyTRQRXJBuaiqIsJJBlV+ZfkhIMTj2552K7G\nDPnVfoaUI1PkuQ0zLYzmue5L0FDwq2GYRgQ+VbahGAKAgLLB03Ax3PkscSAz\nUk1h\r\n=yI5d\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICtDrpdia8Jg2oteXX33gFoYEz+jtF7JQvC/cPsnxGCAAiAxeDuHKERb90gCj4NyIeBYGi4Gi1b2yTOQQOGgx5gJig=="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.4.25_1524961952613_0.8372084211060777"},"_hasShrinkwrap":false},"1.4.26":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.5.0","eslint":"4.18.2","eslint-plugin-json":"1.2.0","express":"4.16.2","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.3.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.6.2","line-by-line":"0.1.6","mongodb":"3.0.4","mysql2":"1.5.2","nodeunit":"0.11.2","npm":"5.7.1","open-sans-fontface":"1.4.0","powercss":"1.4.5","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.1","taffydb":"2.7.3","uglify-js":"3.1.8","uglifycss":"0.0.28","websocket":"1.0.25"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.26","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.3.1.patch","pattern_str":"^   window.jQuery = jQuery;$","relative_name":"patch/jquery-3.3.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_css_base.js","js/app-tb02/tb02.05_css_lb.js","js/app-tb02/tb02.06_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"0c5a71076072ba760f05707ab0e48853b003d4a9","_id":"hi_score@1.4.26","_npmVersion":"5.6.0","_nodeVersion":"8.11.2","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-a5ggWAP6OFdHYzTfuB+ICiF0VLlggmupM/GIxP5ewft/pFtonMBN091MZU+SSZRmWxY7fw5hcDEPHxSD8o1R2w==","shasum":"fe735c85becefd81b26452201d59494f6d3f1222","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.26.tgz","fileCount":115,"unpackedSize":8296385,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbFHdOCRA9TVsSAnZWagAAZgEP/Ax1Cw9ykBx5X21Zzdkd\nabXrFCZoOmil0awK5Rc3yjqGWnB2IBwZA9dy061b5QSyH7w8TaTj/p2O89xk\nWUjYFriRoPae5Ft2JXURBgEevHZZCH60jGyqG/09fC/sH86y/yQ40LVt0wxW\nRCdWD3nMg7aDUGH2GN7qJXPEPewWSX4oyNhh1bNLoZqA490gsnXOT+/AG2Oh\nJDI0P646UP2dYRUjCwAEb7m2iv90JSE9bvqEUtFgV7Dxmx9Dam5WOw7GheqT\nx/vkIKqnQfJQqSSEzWZp8HuYaGprRbFknbmJVpCatWxjxyS1Uu3alzBXELPR\n3OHj7rEQijVk2TmKc6GVgf99flihUUWTki8+a22OeUGybxn/9esJ3Cl0wu+S\nO9W5T3TxTVlQiM7LdlV4OcBaYiiNb6JAnvc0/whYQjVhOuCNYqIoDf0LGDJF\n+n1tBN7o0PQ8Pn+7BJAa7QVZSKs2iNXLDaMsLT56TIgQ4Ac6MN/6u8yMZIsG\n517qMvvNdTnep0KpjKmt6nsu0jxWVL+F/1u5QqfVSqW8H68wHuWglzqVixpk\nmTSfz99AHuUpLcdMvY2c6HYEwKRD9iliNyvMdhF2KDdmytgeUbdP0angSD3Z\nembLR50+c4ie9OYrtN4WqjXfcgdceIEnlptfM1fnYXXVzDz/7GfCnrQKv6EL\nt074\r\n=x/MV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4oND7xhKlVLz/ZcaoznUx+s4zIOGq5QtSBwo/9OZyjgIhAN7K+nvVr6TngR9J4m5S3ADR7hEoD2aYNqdQf14A3dLg"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.4.26_1528067915731_0.7560590906508622"},"_hasShrinkwrap":false},"1.4.27":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A modern, full-life-cycle starter project for SPA that favors a feature-module architecture as supported by Vue or React.","devDependencies":{"apply-patch":"0.1.2","clusterjs":"0.7.1","coveralls":"3.0.0","diff":"3.5.0","eslint":"4.18.2","eslint-plugin-json":"1.2.0","express":"4.16.2","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.3.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"11.6.2","line-by-line":"0.1.6","mongodb":"3.0.4","mysql2":"1.5.2","nodeunit":"0.11.2","npm":"5.7.1","open-sans-fontface":"1.4.0","powercss":"1.4.5","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.1","taffydb":"2.7.3","uglify-js":"3.1.8","uglifycss":"0.0.28","websocket":"1.0.25"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","one-var":["error",{"var":"always","let":"always","const":"always"}],"no-plusplus":"off"}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.4.27","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.0.21.patch","pattern_str":"^// BEGIN hi_score patch line 324","relative_name":"patch/uglify-js-3.0.21.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.3.1.patch","pattern_str":"^   window.jQuery = jQuery;$","relative_name":"patch/jquery-3.3.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/02_fake.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_css_base.js","js/xhi/05_css_lb.js","js/xhi/05_css_shell.js","js/xhi/06_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_css_base.js","js/app-tb02/tb02.05_css_lb.js","js/app-tb02/tb02.06_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false],["sound",null,true]]}}]},"gitHead":"57ea9dae91520e3f46f5b31e22ccbee0da726919","_id":"hi_score@1.4.27","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"dist":{"integrity":"sha512-pd0z8mlh14fYm1f+sUfZNgnwEddHxAbjs7ZrYkUgCzMVXWAdn2cb/MXDjoe4ZOWdXIo1NK7vbFksD4g7t2xMpg==","shasum":"43c7c744253563a9e3129b09393d96a82787437b","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.4.27.tgz","fileCount":115,"unpackedSize":8297636,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbRUh4CRA9TVsSAnZWagAAkOAP/i7IajWvADfoIrohXi4w\ne+jKE2a+xJVvikAjBPIDMHvKQrcS3ylfcPEFWSKkR3MHHMDJcplKHL43Bqi1\n4WPlIoKgaJlnjkvhottukO1mt3+SxpXwOSIcKiRAhOY28/VC6TSOobUtAYFv\ne+bbn39561rSFX66+NWz2jGxLaMcQi2RWNRzJvFph0ieJqd4erqFczSc5n/L\nSc90vWyzNY5dprTBmWmtUeGcJ0R37TSLlrsjfABg3tFhrpQ7bRUE4/b413Ve\nNvBRqv5ov49C7D9a6KKydJigTuKkKXMXA1besj/doAp7gqXi6LRV8+iGaP8U\nnikwr6gIe3i1a7XFp2X+wjGQfhuxHLxe+EbNvnWWxGyorrsgX2I1v3ho5dK4\ngVCv46fRcaZcJlH+89xL59TCDEEB8x+4f5AWcxxkV+H6Garslfn3+OwsJTHt\nj54eMl3NgQShqj9jjQWNcn+nFfZwwu6hqROKBVHGMhrPc9hO83+E+CS2KbMx\nI9D/QycaobXmPVxjHnPIp7Ecby8zl1RAMJjJTsOS47PeoFYzVBestBeka6uT\nrXTpwz6eFjQQCl1GFTf9nr8MGdFqIFhUqa2/JgsSAWpWtvo7XsPaxVaChbAG\na/WmU5I9nnYYZRI9FitN5l6VAvu7b0bIGGENToSNDYW41qMkdApYSngJ8q2f\niwoM\r\n=rM8i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH82gr4IqxMyiXWzqKaLpsL1KZKgfwlT6iP/zfvrrJvpAiEAuIgeOoRu6aXSHoQ5szMeothTjPFNj2vEQBcAur0cAMc="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.4.27_1531267191498_0.5911227740452765"},"_hasShrinkwrap":false},"1.5.0":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.3","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.16.4","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.0.0","line-by-line":"0.1.6","mongodb":"3.2.3","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.5.11","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.5.0","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_01_data_mock.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"f475a776caadf9f0341593c9eb3373388515d862","_id":"hi_score@1.5.0","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-sTU7ojKsAHnl5UtbF8gPUTxx3z2acEPiinWjDIdMV0EgisNe6BOKqki/yK+98YzvTxFMd7F7NJ7kBD/tdSJf1Q==","shasum":"3f1444d3e1e46167e69a89dc853caa4f15f1eaea","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.5.0.tgz","fileCount":117,"unpackedSize":8188055,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc22dUCRA9TVsSAnZWagAAyIMP/R7fS99QJsrX95RyrdkS\nMf9lMmmk1AL0ROXSM9SjyJbT6adPMN/QueIXmeJXVSNFpSEuD4ZQdLGL6laY\nnrNMzgHgTDam8+b7SkQgqMSgwWOenUBcrPnzDhot0EhlG/2JBYvahQv/NTte\nQepDd8Irv+UZwCfKLZFxhJHE64KYgouQD1PS/MVPmXLD7MQFeaWDDbWwthcd\nCYhhkjD+ct9LP5xOLaH0iKZ9nQ9URGQLPlGhmgZGM7UqX6fTYT/BTPw2QE2W\nr0oW3kOQ7/snMp0Dg2pCmjiX9zWNe1IQ8FWvyym3GspLV5g4KYs76fGXXVWT\nztiwCh4KpxBzCKvOmlN3W0IsP9TEQ+VRsgBKuofQmsTKDchA465Doa8LSceq\nyFNFgjxBCQXlflK9F+SmUELZpxvgpVS0FJtU1hPSMsw06VHfwp6u6BjVzjBU\nBFr8zgF8TrlYVVgecwHHLOaM5BLTck9YFBuMvaX2trtz+7iZMvFmeuB83dwR\nJ7RZnxPugfnTjIwdBkfVDfXwmaoG1fXQa1iKqbyDnNtuvSzKEbgSZFwcXNIm\nhWbxcvCIg+tDLuRKx2WXCqf3qbS0WNS9+Nh37aWOWbBnSrNrODQnAF+kORAw\nGrsCLvCsAQjsf1eA7UmIPp8mQi41O0XjjqdOD7mDckn3K2eETzgekFpht39T\n3JW/\r\n=esbK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDPiPHbJ0XMPFSKysonOn1uQMhNa484dHyWFJ93ACgQ1AiAfRsCaM+8O8kSJkOwBT9nKm5YIlGOsf04egXB+/Xwkkg=="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.5.0_1557882707397_0.6323930524954438"},"_hasShrinkwrap":false},"1.5.1":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.3","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.16.4","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.0.0","line-by-line":"0.1.6","mongodb":"3.2.3","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.5.11","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.5.1","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show the guidlines for architecture in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_01_data_mock.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"04ab0ac85f563f06e713f878173947a819cd72a2","_id":"hi_score@1.5.1","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-mhEpzS/vq4CyW+zcpXPUyswZy++/bR+c5hCV6HNHf/bOJyQqZdIkdx8/gJeLThAmjgnkQ/w/FOOmHi4j7kwpEg==","shasum":"7776cd5c76571838d6ebffbd1baafed2f2666022","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.5.1.tgz","fileCount":125,"unpackedSize":8344889,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc23CvCRA9TVsSAnZWagAAOswQAJFVS1zhHY8LS7NtPrnH\nwqXdvphDFA/eEDt6qWX0h13yqh/oIHQCpiimKGHTkhzeLeo3QS78Q6bDfTbg\ngQ2YxWcWkpjixmmriCsMkCeeEK3Aqa63/aIHkowvJmqeEnGYa/GRA6lelAJ1\nRK2kiSpJfCVDqxEgXt6fjS3fcM1peLHW+T+Ok3ZdnVh/quB6qvMOdLZWldsW\nNxW3Fq7FEb2GqwSE01PVG+6en0XgzYD5vdkAFCf42pd46KNgwFRy3DPF+KgX\nbCeO8huBM9vXHdnEToOYdc1pR8IwgcA4t1e2trpEOMTNAHy6L5QA0+mfdLmT\nPRB8gQ9toKCjQ9R0P6L+qdrtYCCY1nVIgpmJKXT1FnpcyaNzjSgE18+1eZjW\ntv4wCiYryacHUE8v/IknqR7raKv6HAtj0pY2El385gLZ2TVrIghg5OYxNL7s\n9XL9Lwn0CifhLXkC2+op/MwNnlFi+/fSOAdyJ7AixRbA49/T0erlrbH0yT6R\nEbKZOINY45rUy+AGDuCNQkox0l6H9iyfePX1XN5Uk8NoWKx/oflEFY69JAs5\nxmlb5M+4dd8KAYJnH9nNPNO5j1HyaEKulBalzuD+FGNm5uBAXckLYgQUN+/R\nOKVHrofynxRMYDtH5TYVFHhGfdBHErpWOvTSRMIyjEaUQox0wnFGSXPz3ooC\nLX3/\r\n=gA3R\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCkobTu1iTaMgC5ufpVaSWHJBvQbQtQzZNdmx/V5YxVgIhAPVVvQN1GwzQFZ3P0CFQ/KUS81zf+gkPuVtvzHUKxp8v"}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.5.1_1557885102359_0.19178386181920692"},"_hasShrinkwrap":false},"1.6.0":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.3","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.16.4","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.0.0","line-by-line":"0.1.6","mongodb":"3.2.3","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.5.11","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.6.0","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs from doc/spa-arch.md","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_01_data_mock.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"5d7523f84df191da4a8735fc53d128922bfb0c3c","_id":"hi_score@1.6.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-xsnrR7JJPNZigpfMORc2ktV4irDYiukQvNDmE19KTf2Vge7SgNUPoTKPWtN291Z2Ac1isGxlR22u34YdjtCYMQ==","shasum":"955a8367e9c3347091ba890f2becedb4d726224e","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.6.0.tgz","fileCount":117,"unpackedSize":8250826,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+IiPCRA9TVsSAnZWagAANe4P/3Xeb4dWdGnN72Ztu657\nnh7ke9ubc1G+Px/nZe+2TOMyt+7XbqgqrEWSxBGjS7j2zEArVkwnrO3FGHMp\n9mghen8gPtijfF+DcbimRqWcgdqow1P3BzV+mh1JzBgJX7mgZ0OO0FhpB6QD\ns6S62d8NWPdY8tBPUJFYoUHivji6WnFKCgA8Ou0404A9D9FizsemDYUG0b6g\nlsE1FkU8rnx03jT3Z4VS+alcOwVOgqeQGO4e1u6nFjKLD3BN3lA55jKqz7cW\nSvrytCzzWaRCRMgqFxBgSN97X49HQ+0xqL/Axme1+xwodwXIXwyBI/3ZTgQU\n3HaKhG7o703PYic7K1mItoY4f/65CFrEIMkdmumZjkPJ2+CEgFVxHS2ViqMb\nvxJupA87AQNYfqWuQLpXHUqu9u/gPQzyNPefcgXf2ZZnDOsgt88eJKR6Qnmz\nmSCYJwhVoQrHyvxWNFKw/oJ/8is+gAL1TMnTED4OQLsPOmCFdptY1y08bC7x\njy1gdeO+142CpmN/wnmlfYY7dNczWlSo6S3kDceKVyfXaOJJlmTYN8CcKs9d\n2d6lnwfZxtaNb6L4AB+FeyTC/yFY3CxKKgLpu+tRJGEuK8gASOVaFq48XzxP\n7jnafBAJB1+IQCubvCRkhrOb15hp3OfJZcoUFo2UManZBXtyDyXs2Xiz128W\nAY/7\r\n=i3AZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrLrsVqKYpwEWN9Uq67VRuIwUAxdusXdNgy73SyD9IgwIhAKBjJdcltSLH4mPSutCkvwCjPpaMUVQEAK6mRXaD14zD"}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.6.0_1559791758007_0.7787899683525505"},"_hasShrinkwrap":false},"1.6.1":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.3","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.16.4","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.0.0","line-by-line":"0.1.6","mongodb":"3.2.3","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.5.11","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.6.1","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs from doc/spa-arch.md","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_01_data_mock.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"329a0c962e3c8e613df3b69f45b605b306489079","_id":"hi_score@1.6.1","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Yd8xktJpKnAGEeSskeIEgi5ZImI98AdrKEPxZGyisuYC89gMx9cYJYdFkFASlgLHDPL2B+vhRRtubnaGq3+7hQ==","shasum":"f6191c693f79c29daba4acd6e555cc4d351b95a2","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.6.1.tgz","fileCount":117,"unpackedSize":8251841,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCF//CRA9TVsSAnZWagAA7BcP/00kmlBPRe6NppWYXyah\nkTc4DBdufPmDjg511wUDhhcALI/orf+km2Zdh3KnUOe1oCXDGF6FqLXVS1Fc\ngxdKs7Qi3fVCMEVWfwof9TwNUzVKhoal9PFh5Cz7M/xamY2yBk0WboqIYs2B\nqfIZcdAjbDEoN3X19i29q5h/JadnWEoT60Kdf09w5rrHjF0xjhXFOuCTCLx0\nWq185QU2GyDO4WpViadTRuO2IUhH6f1bmanpZ92oMSyD3Zy1ZJBJrVvcmH+Z\nRx9/0OqURzEKY5xcHnKKPKEXdQ6kdhZwOx0tJ4gAHln5cdC53nIE3YJGGb2E\ntUCvTp2sS3mdK3qQlowSsfU4frkpJ62HM3OQGhyfhxOYNzFX6x1nTXhvsx6/\nnX8C4xuBqyjwbkAmzQHO8HVLqQfdszy77xH2lzxXMSag33tco0WYAVvlcgJ5\nez2hfHgF8gTXlzKEVPJwiMvR7plOkhh+LU0hUPfqGqTgPTtaIGd0TELl98WR\n+iQoGx4r9+XR6Phkh6VBPPPSIYuwmXgUILTlIA7gJbXmHQwUstksnpWU9W2K\nd+a2C0ftzlqOhAftzdAHhojU72bUBeSRZIx/KRSb0dHdyzeLqqv69r4Mh2RA\nDThduEjeUwGOIELGkunfLY2XbeKLwAhfnvsD6hbRPu1oeoGBBiYYa93qRtEB\neL7P\r\n=aoZI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCY1n+DLP3hIE5XmL4PWMnhwieYJ7GGyl4Cc90nFydJVgIgSjD2MRoqp63flCs32qYtJ139sMGfBEHsgxAA2SSgCrE="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.6.1_1560829950432_0.09338434597917544"},"_hasShrinkwrap":false},"1.6.2":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.3","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.16.4","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.0.0","line-by-line":"0.1.6","mongodb":"3.2.3","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.5.11","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.6.2","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs from doc/spa-arch.md","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_01_data_mock.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"99e694f1c2202a06195e3c478c865d86af5bba58","_id":"hi_score@1.6.2","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-so/z6juTE3CgLaijv1zhgOmUYd3EXcdlFvSM3C4Ul6t7+TZTqAe+ubU6kpsbOmT3PqXfgLSGiNnzVLS4bCnupA==","shasum":"7716aba5d2950816a3195d07fd5246f6aea05057","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.6.2.tgz","fileCount":117,"unpackedSize":8251676,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCGWQCRA9TVsSAnZWagAAFgUP/2qeFlMrTQ7U/mSDiPOA\nD4gngzY1PuI8n0MpYQtThNdDuJ0NVqYefIWWkIQdJ23PT2lZxCwi9xZftEeH\nS0VbxexGrrjcaXvylm0akfYoZQdKwbl+NO4IxRVI4WrMfqH1IUfmFU9gX/X+\nSS6MLZ/YjGIq/jeInqdbL7KX63d1n9eofNfhJMbm0uTkvo/im0ThEUoLxyby\nvPMg9Y0Ijto+p3qd7LYTeC3KtlFZa8PJ0GftPXf3HUNLSeJrSBBmpqmLjnNV\nRU1VLCjo6ro28PwfKkCcUQU8L6YQXkWkrvudIHzEO7lSkHWvSQtwBQrvO/mF\nE53Xe/Jo32Spb3icpRdOAbG+wFZwGNOzJbI7pRiIcywPsWVqVZs6Krx1/p7y\nlCooOlq0ybPTnT2QsXv5yJ2wEBF7p7DrBDZYb2H1xJWbCeNUbYgUQtJ2+KOg\n8vQNJyFbJGz+j387OituWSZevviGkZW3Nk73G9p9Fg7YSoBhB6xYzGSCcYya\nvWt0NtiqGZurOaeBmK4E3nSHWpyR87o6LqBXaVYKMQCJ061sDjBW99rmWQb6\n9K1DRWVvxqI2wgl2EAZcVkj4/UVlLknurS49a8/GRUhsSbt9UrCQ+wgeomCb\nEL5GxK/jkdkv4WpyxgPhe0E37YWVdZL7XEiF/FTtyUYoeECDeVqnVEOJSMVR\nZgvL\r\n=qXVU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBAy4FJjxsN4EprSk8Zzp8ArYPcZ3bdiJo1qkzV8dGlOAiEAk9JtzPB4fKmDRpk96GtsHuAE1Uo4ZdrLPMOADnr0g1A="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.6.2_1560831375789_0.16655646206617924"},"_hasShrinkwrap":false},"1.6.3":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.3","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.16.4","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.0.0","line-by-line":"0.1.6","mongodb":"3.2.3","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.5.11","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.6.3","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs from doc/spa-arch.md","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_01_data_mock.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"72bcca21c0dbb6323f912a74c3d2927183efa5c8","_id":"hi_score@1.6.3","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-ZQVGjBQ6/4KWSNtS/oQh7ttzQK41sFFmWftWzhJugvK73gBjHr81tunxjZ4r5csbJ1mvs9NDeWjczpCOcsjjGg==","shasum":"5e72b1a7183835f4463ff0d09b15e2303696e2d0","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.6.3.tgz","fileCount":117,"unpackedSize":8251674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCG0iCRA9TVsSAnZWagAAYosP/0a0B44R+X5/JQC2iemY\ndTerHbHmIiwEUY08MFll3+D97Vj1HAi1RPM5J1djCevZbFUF48zDARMtWhMC\nlMk4mL7UrXcgYBVEFIbEFetvqYaEFU32l9gIaw4xM2d5dY0xj8ccWqNVy1VU\n+hIL/1VRtKrLRNidJpO9hFu+btbj4PfVJA3F92+7WaIyCsEntwFTspOWdu+Z\nt7FjruR2dqwZTv94DwvD7g9RdhR/amiHmUWrsI2u7Qa3QsMQRjjOjR/jdHGr\nxNn4Bv/EtxmPiozBdnZoPFYD+QTigyS5/OIe1PBNAPw+XAKSoT+rmreC18tw\npkqH+2GO74n4mBx0dIctGDZZxOhuesdut2fzyJedHsQsuEXmOOY5fBTxhviq\nGSHb3ee4wXWauIOFKiCPy4vv+VCw8cSCOXBBhKLsk6Ib+W8mZcwI9qVTzp1r\ntlpJCCvkfM2Ha1QjNxoCOM/Q4GHIAgOVrIxDujeTtcdYAF7h9d9V/82fwL3h\n8v3nzXGIztaQkEewBRTqqZqGO5J2LLkaOLg+V3NBxzKkTSVuWoArJVtxxeFE\nEUrcSSkW3VZTg96j1TICtxrLpoYJYitK6Jmj11jPtox0D7QowavjC2kg3AoS\ngx4Ahv2PJKGgyH0jC85AmQBJWlJYqnbgDcWgxYPyM7+OtXy+NsZJABAdaWjx\nk+VE\r\n=WseF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC171fCDGpzqvoOhIlHKLyy4Oer7mxcuyQ4nFgyM1FLQAiBsymTslrmDbAh97B31HNGU7NJ7WeYFJy5B5JTR3aFUNw=="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.6.3_1560833313351_0.7761036366413989"},"_hasShrinkwrap":false},"1.6.4":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.3","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.16.4","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.0.0","line-by-line":"0.1.6","mongodb":"3.2.3","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.5.11","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.6.4","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs from doc/spa-arch.md","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_01_data_mock.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"4c2efcfc332f5adf5f84947ad5631750a0cbc7d8","_id":"hi_score@1.6.4","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-k71piIBO4mrHy98Qo01WrY8Mxm0BAAQildY3t23G6Ejc8VOQyuQxWYCcUYzG2ChhEgNPz5HDSo9W4Jg4YnoMNw==","shasum":"5b40eead76808ed5274d797be5cfc85cc2e28eac","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.6.4.tgz","fileCount":119,"unpackedSize":8286272,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCQefCRA9TVsSAnZWagAAftoQAJgajYS2i5C61/ehjpbF\nWRAbF2Hgv7kB89LJHPnkkwJx5YNZ+WrvBcL/SsWHZIXLwPH608NNn67uFwIE\non9lyL7zJjj84KhqZLohKaE4x+Ae/bEPZNr3kUHW6e4SpQgXAND6nWdj9sZr\nPzwe3sXJpQAyjo0G56aSs50yVsAvo9rkdHbQGL172EraXRgE7XkeZg6O+H87\nNPPCuiPIQSXSpVFmZvMRwf21Sa+i/zrSi0rv02+jco2ZN1aVJj65rvuQtw8l\nYZmg6o5OxRoT4llgrf0kZmn5CiAmzhWeA26+/ye8WUH6dFgRqJI4zuYVS9Hh\nAIOAku0Trtdslws7xTvy9FscXM7GLsrtr4w4j8luW/jPcPlyYaCTEr5SlY8f\nmy2VLQGFCyklibRhCac1T1D30mfeQAp1UpwhjU9q9CHVHeR/W1AUAHjwYGms\nauY3e+cSjgJizltZV+ATuhk6VGrUND+r8YYE/KWOos5jXuZd8viE92IAMOEk\n3uDbjB3JgJsou48mivG7B7gXcaR5V0DHXNHGrnzMzoijptwR4twaakOJcqNh\nIO+FqQqyCJqGblKb0sLJmC5RAYpTE3OZNKnU6P3cMSXu68FXPLmOIl1oFz88\nAXqRU+gOP+TMxz2A02YRSlRFmhc8xDwKES8r7RXwlHb8PDKwl0j8bHjl6yBq\nd3DS\r\n=9kfx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHqNeWVGzkvr5gc0BreOtwFVCSnQt+TAwvqynoLJcsJeAiEAsHEE7y6N3I0A+LgKDDX0Lb9XtywluWwROHAUnSfEya4="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.6.4_1560872862245_0.83324059418376"},"_hasShrinkwrap":false},"1.6.5":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.3","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.16.4","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.0.0","line-by-line":"0.1.6","mongodb":"3.2.3","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.5.11","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.6.5","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs from doc/spa-arch.md","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_01_data_mock.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"01abb5fab2c6d092a30f570d226d0367541ff897","_id":"hi_score@1.6.5","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-z9USkhkga174XGZR8Ff0Wcoecf0JPymQD5gyI9Oj2j6Jn0xTVzgzo7ryVFWqlL9+tWncq8AYv0tjE7doxPq/Rw==","shasum":"4f9e9f2d5691382df86d64f3c80bb57e100d14d6","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.6.5.tgz","fileCount":123,"unpackedSize":8386283,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCV1iCRA9TVsSAnZWagAAFDMP/RE9lQJkv7lPiLtSoVec\n5FzHn9qgi+RSA2ECcr1fioFoOMiudQIJHZoAmVO98wb4DCzWI/jq5aFPs3nj\nlwbzeWffVtQMYQA4aVQkf1hE2JHClplNKhSk834YN+beg46SQym9l3jIGz5x\navktI/RArAXEYwji5GtyR6rjych2b3vTaha/BMtcuvJIGqELqE/VKWk2w2Iz\nqeEYvuHrQKijQpXIVKlep6cjlbOsY2dAGkNWWE2+SFsmpfAso8/NanbcmeVa\nQfIlZWPmwVVJRWFWUx8mHBJ/G8YoWNejvU0TOZc0+Q8AlyXdfwfeliW+yNO/\nrO80XARmpZCBouT5j05v186IjTvXoqW60i1al9ENlpimGxPHN5Q+h2ToalyI\nBgCc7V4VjZNFAnKMwN/l+SBwzgh3luAqo3wDBlZq9l/rtDDw2PTRuXvk9VIo\nqX6Lk1M9Kk+2IafRRJLFfZZurKyXjAciRvmuTjUSvenkWdLxpmaIhzmC2VUF\nmdhjOfzwJWK2QFVpaTqFrXr3baZE2lGVMssaImL+J0XY9cKgcXX9spxmfTZR\nRp6AvMAg2fYMOM3BQav8T7YKnUUvXGJFr2VMwJxJQ6vPxyngdQIRgRAUURL+\nECvptlRlY1u6MOKlcIggOX98Febg5hgTus3HQ06Rnr0MyByWUEUs35s3enyg\n/AiL\r\n=6Fjz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDMNR1H09+b3fqpp0xY7baqMG/EuoBe4Xef/JAUjmRkxAiEAqocFTGpajUyf8wo68NjbUE1J6Q3axCmptsKZm9Spixw="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.6.5_1560894817066_0.0010005467892142406"},"_hasShrinkwrap":false},"1.6.6":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.3","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.16.4","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.0.0","line-by-line":"0.1.6","mongodb":"3.2.3","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.5.11","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.6.6","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs from doc/spa-arch.md","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_01_data_mock.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"f97637b40fb57b06933c33be01fb17ac2c6c69c8","_id":"hi_score@1.6.6","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-mUw8VlraKiDD1rBeeEfiNbsM/SsIw9ls3aapHsqFMhFaIVu8BaWN+3alFG9GqsT5+EHy6ZYmrrPCXklBWwNsAw==","shasum":"a3dd1622b19077736979c13a11cad369b597055f","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.6.6.tgz","fileCount":117,"unpackedSize":8252313,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCr7sCRA9TVsSAnZWagAAIA8P+gK8sUvbPPoX1SPvQRIH\nA+IYJudQjriCmJtQBifV/Lbp+Zv7cItsFEzGCTTVBlCcYyylkJ0ZIq6rZ9HX\n/w8bSFraTkxj1Fm3o5ZvmvJjfalsaBu/F1WjxTjDc2RsRY0am1jDIE4vI2T+\n/t9TdE1VanppUglJWkBOO4l2xebRJ5mnIK5HDccggnzzM5Un6h6ysDXJ5D7U\nxUWhPUyJEC58g0UzYi2RGNYdUVfwWNQOgz0MVsDEnI5qV1rbFTrFgAskhKeg\nHXVfrogueQ5ucbkzziJTR9beBA3pf+o1dkXWIt6fy1bGNkRYD6STXeH9c62i\njoyOpDBaOS2FwnKh4n02CztQik4cxnP1D1EPr3yRPDy8qXZkDWotrevZ1q/P\n6oaqemYZhe1PNJ3ftWzXZglqjjAWIORj9g5hVRki+0XnLhHYVhW7vAbkpQz1\nhHqOIHcvqQmPQoYyANIaLF53W/GHjTvI37TTAyMyDaNG5MBC5lw5ixKfeZ/d\nxfVSByH/52804x1K0D7NfJDdwRuCU4iPqjnvYRi/llTDTtoimxbQ9XjQfM59\nTSZPguR7BC1QuZqiw9bVld9UxB8rhyq2DqIyL2e8fpwgTPmcv1+uo2dKWpB3\ni5Tfba+sXoufzYZHGAS1x2EZs/wR8c0yf0LnO5CM3UcpVon1ugnPQDj5aSqu\n+2Ko\r\n=JAfH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFDEumVCHnZ552Jv5IvAWnGMNki3kkbj+f6khQmh/EEwAiBVWtScLPdXKtsWZxRdMqgpoWeVASbXpTgjLcEvBqx+LQ=="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.6.6_1560985323086_0.7553658556089975"},"_hasShrinkwrap":false},"1.6.7":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.3","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.16.4","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.0.0","line-by-line":"0.1.6","mongodb":"3.2.3","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.5.11","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.6.7","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs from doc/spa-arch.md","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_01_data_mock.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"ae9fa6295d4621e014587b91783cab5df5933ccb","_id":"hi_score@1.6.7","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-miyMzcLbh92qwkEJt8/7DCUYtgjvnVBdU1cjdwGngbqMbq7O3A6k094l8fCi/uEGm5qtczB+2NRYxnv2eIII+A==","shasum":"e84f4fd10385eb13567aa85bf6b6a908f1e005d2","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.6.7.tgz","fileCount":117,"unpackedSize":8252327,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCsRvCRA9TVsSAnZWagAAFRoP/31DX4d6OLyDReLTAy9g\nt1Oskin6ZiUIsm18pBo8qWHyLwx01H4yuU3+9nc+XQfXvMjlrKaboXnJtP6P\nho7g1nlbIAN+WOsu8QmoQtTtbHs31NxjKgY1ewUIDW9ELTb7CRiJJvNdMCo4\nRZIvkfuJTQ85IE0/NAB3com+wq0ToH5wem6DmIfkGDdbTTtZrgJAszE7W1I5\nxd7FCQTO9guGV5IFaLDdRTID7xNDIxlE0Qvn//LCkwYkAIr893GThu4OQii5\ny/+OH9DFDcM1M4epB1Nf6ooPTxRIXjRh1GwYGOX14tT8EdHPajb89kAfQcD+\nweM++lS46sg3/yGyeENmAxjYU2PkTFeKDsPpxJ1+3hVHYpvwES1WBUCvAlWF\nH3txwNRyj6gN9hm+PitgH7Wm4Iw5MO2mLMi0e7KbT6Raw0XyfAzn4/PWcomP\nns6zBfgnH2ctd7bv5vJUMLff3qdYd34CSSyCJRRUiKl2ux4Gxsy3/VAy9BrH\n9hRFu971PE+0CjRTBtOOVGhaajh3a/T9nK0CcNG5of+0OU+o3TBa8gjUjZF+\nL6JWAqGYaHYdS2donZOxZrny4blTa/Dob2T/jF+L/Nv9hYodLRtvLU8UDlYj\nEUSSK/2xHGEtjayBxN6mBCeXalO4jFtLk/m9x33BFLbsFuIqeTYaqn8C+Uez\nhX4a\r\n=01k9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDN+70tIDri810LQQ2UkgVk5lhp4MvlkRkK6/Q2hUYUMAIhAOtTUeGRa5hzwanKpbEHEYQcG78o/WdqtLKOjQzpA6xr"}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.6.7_1560986734240_0.18881853312649777"},"_hasShrinkwrap":false},"1.6.8":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.3","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.16.4","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.0.0","line-by-line":"0.1.6","mongodb":"3.2.3","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.5.11","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.6.8","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs from doc/spa-arch.md","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_01_data_mock.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"406b94c6a9525d5d4f22428601fed34b54997717","_id":"hi_score@1.6.8","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-8fPMoTZR2PPF5y1JJED4ZzWlaosp0drBfWRmSJWpIqoMIhFwI4ftxp7sb+jIT2RV8a5ZckYbvE2qWGqrDHQOHQ==","shasum":"b9fc84c21cdb4e6ce365ce350b25e3176b33aa99","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.6.8.tgz","fileCount":117,"unpackedSize":8252326,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCsaPCRA9TVsSAnZWagAAQ5MP/j3fGWQicgM9EN4y2saW\n3IQNnfGqAsGEzPT93FYy86meePhRx+9YR7Fzn4xYIgvbxkzwCBVSUTw3JC52\nCn1UmuT49H1HhZCL4jgCBPPtXeXwlQOJp6sg7FBa9BYOtYKyQc0cV79CgOHp\nyE3Tli4J1V4tdsWRWptXRS8Tvt1K3dNppIuVs6Xr/seQ/tseMhyFCjwWp+4y\ne/tFZukNyYPJc/wlmwzlr5iOlgZ5ruhxksFD0/GBP6BimIfIxQk9hWKfEgbV\nq4sGYrlBX2fhoQPJS/fLn8U+/w4EQrG6AsZ9Stsqc7Qaa4eF1YR8Tlf8Qwt2\nxEZRvF0PDCTLnuWaEPGW2MA0SWQr6U9Chve4MdTxaYPjsI3jOcmNVrhs+5qm\nDK/4POvyEtZU73x/ESr8EX29/9mEf1cY9hLEOAlbf9QWAU1ngzwcq3zaQppI\nUHI6Cq83hXjLWkAWQ97yjpgrxUcfsgojpik8vRBTUqSil7ldhcSXpZX95SCg\ncuWfn/ScHL4UUZeNsUBs9qIu/4Lm8I0HTLI4emMeLGHqaz0rv/rjgljwbq6A\nGgb+BThmMepEflJAgnwwifpoQm5xuV+E4lX0AY0UkCI8NgxFUuh00VzRZlNs\n3XX9KKbN/yVwj3ayEEImV9dF+WaWMRxGyv1TIEUP1ZPthI+b08WFQ7j1XSiL\nvJP8\r\n=DhCF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHOdSZ7CD04WwouguCqM/GOEswJyFYEGgwHUz7HSf/wkAiAqflVCxa6A6YMOyZuSC/R5Bc26AgxyWqwvankTj1Kvqg=="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.6.8_1560987278578_0.20461396102657714"},"_hasShrinkwrap":false},"1.6.9":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.3","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.16.4","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.0.0","line-by-line":"0.1.6","mongodb":"3.2.3","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.5.11","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.6.9","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs from doc/spa-arch.md","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_01_data_mock.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"f2cde420f6bb2de98389cfb70335250d8422ca48","_id":"hi_score@1.6.9","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-69Skt4ZlGWi+3zU4OnM3x/dwkSc6KBqctTyCHKKp5Fi5TaXSmg/sqLeoKiW87V7Pwmz2s7zfpikNSm21SPzE7w==","shasum":"3005b390279de0e3871eaf63004edcd8e23dd35f","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.6.9.tgz","fileCount":117,"unpackedSize":8252453,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCs7CCRA9TVsSAnZWagAAk48P/jr34B7QkBq07wefavYY\nPsXvVb++Ac0wX0G8PudfvBkeZzI31bcOewx+oMATU8jUr+BOxy/O/L+aBLJO\ngAgfCgDNQtePP35gU/NOiFnW6+mt6J7z7GNWMeC2wEr2p1m5N5LdT3LDY9LA\nk/Z2IOgVFvfKxS5PVgzjynnisv+3u6dZVP2ETf4+HGqSn2V7CSCgO9Mv2UhQ\n9Y+hqw1OD2IMDTF39OeK3Mi8+lLUD40/+Mkf4DgQ0jM5gKxKTk0WZU4X+eaX\ntKcrnOf8XqbUYL6jJLS+/CmfnAQaVRWGH04tHYAnRegV6BS4VzGpEpNj22IP\nlGq1NxcE5wEssiwtBrhS4RMWJLVbjyrZ5RibJaQVOqApLEtQVCGiISRcHFRT\n15QXZ7EeyL0y2FnqaIEfKoHXt4gIOWKXjZPfWsF2x78WfFd/07EhanWRQyGl\n2M8DldxmqzNOLVtUyFT1epWubMjfVXaZFNq35zh58vZE7Pcue6ItveTRErpd\niZWrZ9lmBLmK2E/TA4BGmIQW7Gx6JHtiCeQvcQ2H+jFg4jdMEq5xwHHpRwlA\nT3G9dEXA051bwsBk65jasFvpInBN7M5vuOEtDhYKvYd2B256PmgxK8a7YTPE\nKUL+maK6G+su4wxEJ9GXsyWyR/Ms8K8Aoz8aCL/+6wXFZsmsoHGbz17Wtglp\nsjej\r\n=/RDu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1DRxWstWq35RdcPLt31AzCIstB/ljr6d3pf0E6K4f5AIgfQaQpxheeCHO0+ksmghZJU32lm9qGY+Zh0SxcIuEBaA="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.6.9_1560989377817_0.5028608318712968"},"_hasShrinkwrap":false},"1.6.10":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.3","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.16.4","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.0.0","line-by-line":"0.1.6","mongodb":"3.2.3","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.5.11","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.6.10","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs from doc/spa-arch.md","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_01_data_mock.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"d2eaffcf6543b40b73a2cff175867342b91d8ea0","_id":"hi_score@1.6.10","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-9aKCoxHolfQgzXVzKtLkHHiUfWst1oUNcnBY34OqMY+aHG01ZJ1rFiFlbywR98Uk20NyGKdhV+rwlXBP6GQfGw==","shasum":"09c7154fe9b470b71a7acfec856a86bd29053dd5","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.6.10.tgz","fileCount":117,"unpackedSize":8252467,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCs+mCRA9TVsSAnZWagAA174P/RmSm1TFHa/9Z87ch35c\nNUj+GzPteoO6LLNCPtlQIqJkAib1gxmwgOB83EvOkxOZCGpl0CScn65rSebs\nWdafJKgAlWk1hnaHBzgWmblPAnQqKFYYaKmKmrFRDHuZKhVFhpeZ8H5RcfhD\nJWJ7mQrHaLAlidatxNcQbclLqwAllT5VPVOVaGXOhDLEp5GeEUK2SCvQbaKp\no0dYatAPRIcPhkKFk41yOpvaLMGTB2kSHmm0ZJ3ctdsIrR0+gxsso4gVzLFg\nz2aAoikh22qEF/Q2V7tRg572mHf38sU4qURLC3WtMhI6cxFf/oU+snvgXMeE\nZRN2HOJyLCFrjsR5gltsfM11HbEsqnN0DxQRD4vBSWawxtB55lZMu/EjLCFe\ncRqaE8UAgH8c7FeHgmRUHPxOTIoONBgY3bMDAOuBIL+onmIvNuVasTdcRCqA\nvzND8c+KCqQHPg3RknQ5UPrXjoBLloIWM5Th7T/tGQw+QcNNCsNX0tZ0U10s\n8oOmoKx1DrRtKhdD6BaZyLDadvQvDehqWottkzR1xK0mZ/quRAj3wxdUxqCe\nSI76INCe0J96gPaU+aZjpo0xpVioYPKGuhAGNtUb7QrAOU9dpFN+/pSV5Y7H\npJWhwwzQerprOYUKUSItXdYA00xXnQJCrpDS3fuw6eAE/WtPuA86dJeHTtqB\nUw+r\r\n=tq24\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICRDEtyjlkINV1xq0s/OS33tP1GdVZNiVrtATLOzY79vAiAxFdfOnkg9L1db+SirvQyBZtGNxLa3nZ6cERnVbIsceQ=="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.6.10_1560989605035_0.899687678723283"},"_hasShrinkwrap":false},"1.6.11":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.3","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.16.4","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.0.0","line-by-line":"0.1.6","mongodb":"3.2.3","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.5.11","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.6.11","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs from doc/spa-arch.md","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_01_data_mock.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"5b0067da3988496e0344dc01fee90d4e7e12f7b1","_id":"hi_score@1.6.11","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Z+JMIgzkGcRH4H6mJnfBg8nbgc8ybBZtIC2HesMSMOE8V2J6E3WWQJC2HvmLSbgXiN1EG1MHM8aFcipC6HYZwg==","shasum":"c510a0e69f1d8bbc348d03b07986f3a9d2ace7de","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.6.11.tgz","fileCount":119,"unpackedSize":8288357,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGUmDCRA9TVsSAnZWagAAzTIP/3ILDiorA3lYYuAQUjuo\ncikQng3O+sMWUReds9lM+49vL8d3uQ4acH22CP5cSPUGqXnlmfvb+7GqmSQG\nN+JXaT/Sn9mGiTvCcrKmrGUocey2yFsHdCTauQLHPyRzckrFOkQ1ta9UCghQ\nJUYSavebjOEaIBWtCIPlYqxnp1gIovzxON++ODdkoj3hfte4/U9kRBs3Xxjt\ngF9nN2TYLbkSr7jeNlHJCrU28VPFHpsprHPzScH0ig7hqYxI4JLTERl8TqSt\njQRyu9z0l1bqBpic2FvrLHE5wNHsZyZ9lVM9ew9P18TFsGAdlidztTQ6CXJ/\nAIyZJ33mjmG5M4zLykrBmjuQhCgKcSDx+20H3/SJqv4Ax3R4oYMHVCk8VhCp\nXkTqfIac1FHptAfHAarvjxhKGyWNqwNai6z3GZMT88YRppXjvx52kfYcn6hI\n/MqMCA0LaPy+PSKtmpCfPoS6cV25RVkdou11BXCnHrHy5Q2GW65v1UEdisFk\noEDadJPZVHHL9LZxKuEiLxPMLGhj86aIxG/Ze9chyVVtWzzjDgkNo7yCbzh/\nBOU2EqXqg/w8y2wC61cB6eeEMiuA1C7oQp6EqY/vFZrmw1X4kMLf63BvtGn8\nTbp4CR8KcjULL4NxnJtv2wBALraKf2NlosrEh6if7zaxnqlEJU88CDsHATrQ\nhetC\r\n=JnSZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCY6ISEpyvm9Qm325K92noJ9YvymqvxgYqZbrCiL1TC7QIhAOVWI9roD3B71KhC3fFM0ls8NnP8rfe7djFuTEPuiHgj"}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.6.11_1561938305392_0.34652510898568956"},"_hasShrinkwrap":false},"1.6.12":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.3","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.16.4","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.0.0","line-by-line":"0.1.6","mongodb":"3.2.3","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.5.11","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.6.12","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs from doc/spa-arch.md","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_01_data_mock.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"ae578e92eb61726650b9562ee95557a1b5d06279","_id":"hi_score@1.6.12","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-X9VzoeNTAuRg5F5fHwu+H+t8p0rwPGPV2zjhCUgXxiyEXdzV3mGh1oz/SloF23wZgHrqiC78XGbYCIbUpDhqvg==","shasum":"f9bd536c470dc1207ed20808f3e89258ba697115","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.6.12.tgz","fileCount":117,"unpackedSize":8255443,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdIsP9CRA9TVsSAnZWagAAkZAQAI3mhiHFcAe6h4gS3dFK\npTBq14KlfxogPPTxAv58akWEoj0jzEFvNNQdIuodsXPyf72HrxsDWGuLW07r\nA3rXR6/zfYjHrJockKVKqLK6Pc024YUL4sPxrhj1jPzK1mJkbSvENs9csEJd\ncNbbJcHyI4FS6PbZLOMtocWMiGVKnw0VcWBUSQJbcgGHbFNT6Rk1AiFaJfN8\nUTVqZ7AXFuDunBzxszvQaoZdy2dYYQSJSBakxUOaaCYYvC4R+Df9e6gr7CM0\nT5uB65IVUG2kI1PQ/o8VXlmGSLreRalJhwaGzctvUzIYZ3s68xljlGiIRCjO\n7AAak43NO54trEw08tVbDK8VXIzypteeulHZP3hWT7Vi65LrsBHapUEIZizO\ncFfAAYUHaXhe1gSVKKe09ueKMnLRKZ5Z50S4i8CCj/vq7qPbYj4+TgPNmdew\n/RJsm4AhbyTOGeQUNTMWdm/G6mGrAVDl41AXn6KmIELt0aUUHxtXWWo27OqE\nUKcCeACwbJQwDd9Al7b9rcx1slVUXLufKiMDLB5M8REl28jrdO4IHpjwBlf9\ns7gUa+IRK6g1de6xJHo9izA5YDB3hm3uaJXIEvchDZ5xcW3OZNB7Ca7vMzZQ\niTR0sH2gTmXHLb48zSzjwcRPeRjrn7uFQcOYTQrnxlpxF6DF8jEaIGZI7KGi\nDkT0\r\n=TNq/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrrV3E4oka6JWWaBUs655VUZkoVKDOGiERgb+cM+UH9gIgb/TVT2ljP4eX/HK3FUBZOVxPGajmRFAzCufwV8h1ybA="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.6.12_1562559484164_0.2915088976335407"},"_hasShrinkwrap":false},"1.6.14":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.3","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.16.4","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.0.0","line-by-line":"0.1.6","mongodb":"3.2.3","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.5.11","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"build":"bin/xhi build","help":"bin/xhi help","setup":"bin/xhi setup","test":"bin/xhi dev_test"},"version":"1.6.14","xhi_prereqMap":{},"xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs from doc/spa-arch.md","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,null],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_01_data_mock.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"98d4b78840e74bfba3b2942cde26a8b9317aa0cf","_id":"hi_score@1.6.14","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-YWqZWjBkRKA0/5izAMN0OqsstHyEXq2ixHNa/3u47KkomqeTGzb4yk/wp+wGNsV5nDI8PEXNC7O7BGLvLH3Ztg==","shasum":"19c66b46e03f9f976916e83392ea24d0a75cee31","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.6.14.tgz","fileCount":117,"unpackedSize":8255254,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJAL0CRA9TVsSAnZWagAAhBAP/19X6tM0bB9i3cC4MdWD\ntvKYEsUulUxiN+8r2eLmK3MmAP7Y4ikpbrtisidWNPJviUVHvw8URM7bbeDN\nv15meDC4B1TsXB6wzcLgjVpadVnOB8knppokNHKu8FU5m/zjAXADvAvH1ue3\n7MwZTEAIcWsDT6J1oIzgXDGcVUExWK7LRJKstNObozIME9RPaj0xLO/EEMUJ\nJIITeL4cXvQU7qwsNuPpQSzwfnO72EA2TrYfkUORrBjHQYXqqqHmkh0fAglm\n68tLpo/005APFhYBo80Iior0IR0C2rmEDhuo6V97K200LZ0fvJICxGdEGKqX\nTz034qkOUkhHCDcvne26bHyT2/J/KVf2Uqdshfj/uSMiv7nzNBCgJxyjxc1t\ndF9kIy1m0oabbkDzAu5yXs8eLuiQj00hMViME8/iV1EOQEWgMhsFe2cDAlp5\nl0I9c0/PaLXcvbCRrpWDIYnuWQeNRj/bYsZLxGnQ3x7AmYDKnMK7enKsFkqt\nhZnuJ8dDugEcZi0cOUN1xuOaJH7grOUZK6Dko6C0RKZZRQjVMFjwBa/mnv65\nHHWooxXWQYTzd1Poqe1VqzOuRA9ZOSbJhGAQ1F4ArcIShnwJ4da5A7bEfz5P\na2PlCczYk5YNDxF9Tkh0nB9a0CUqWKBM5fw9LL3CoM8zrjS6cOGag0c5VOjQ\n1TYL\r\n=HuGL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHJwdoWJzB9VOpC2SD/T7HW/LLorKKkxcm8MmCSPZ28lAiEA3yIvMKzZZrURcwSoV3Jpx1P5yjGh2Q6dk0PMfOACloU="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.6.14_1562641139265_0.9944172245206622"},"_hasShrinkwrap":false},"1.7.0":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.4","diff":"4.0.1","eslint":"5.16.0","eslint-plugin-json":"1.4.0","express":"4.17.1","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.1.1","line-by-line":"0.1.6","mongodb":"3.2.7","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.9.0","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.6.0","uglifycss":"0.0.29","websocket":"1.0.28"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","setup":"bin/xhi setup","start":"bin/xhi dev_start","stop":"bin/xhi dev_stop","test":"bin/xhi dev_test"},"version":"1.7.0","xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"f5820047a7d1acd6a5c710816d0268d880a4dce9","_id":"hi_score@1.7.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-rdymJIdnJSU3kEVraVEcWgmriOAfcoAmkzJeF4q3/WHMtSAYZKcGMZe2jmO9ac7kHfItUSTSjNN6mjIxnToLgg==","shasum":"4d405e35d30e2d507f36659fc514f06135694168","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.7.0.tgz","fileCount":118,"unpackedSize":8230797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdPPTvCRA9TVsSAnZWagAASe4QAIqmh8E+bkwzIfqM6OAn\natChB++HCdZiKi8GnFK9jWfujKSqxsCPBXbQ5OSNkXoF+MBaUnD8nvmTnugQ\n2ItOTgZxgDWXv5ZuCfwrOoYL7RxPKDvM7RRBqGR+n3PKHKl45rrOvz9wXUpn\nNtU29HYvDtE5YvlUyAHA3xYQemFlyZrFwHNS+0Z0iO1xbObGv695wMUoAEoC\nmqbN6XDNq8H+N4vVR8/Jzy6bhEjNpzTdT9q5Z+efyRyBd/SwzI5Gs/Z4F5yb\noBTdNLw3F9JHHeMWHiawcroKXWY32ixFIc+hKlBYk6KME0gFtq8yzC0qlgz2\n3xp0JRQZNgHwQBpH6iuKSE0M10412XpFTh1b2J6waqYKNsS5fd0OL/T/0IpJ\nR0UIVM4lP8YQ1eTFJQdi32GPkaotovfoFxRVM1jJopbOYlYgaPDF68JRwtwm\nfyvIIuCVujdFMUTayEt4MDvuMS2oUrCfRoLCGPR++hl8U+pvLjbZXD2NqDix\n6jLLySCBGzDgu3gp4lzGC7+Cfj4gGbtjnZw7ApzcR6xFjBxeuUvp7beT1qAY\nRYwIOSNEmyovgm6P2xWwrpWqSLjaRPAvCEO+fU2zVtufeiUC2Nb7Z1RAqtDT\nrbgtmGdDAQU1g7/y/MShod2zDPTmvcNl1RxqngDG2qW7mHV/IMY1FGE3qS+s\n9cMF\r\n=RtED\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICR+lA5GF3h3G8BTDvbtP/c+MTgQ9VYFtsoFpvMHFT8mAiEA5ncQjk5ZKURK1+5BKKWFzhcKZYL7akIAB+4X9s2LWHI="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.7.0_1564275950810_0.6779728935839424"},"_hasShrinkwrap":false},"1.7.1":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","coveralls":"3.0.4","diff":"4.0.1","eslint":"6.2.1","eslint-plugin-json":"1.4.0","express":"4.17.1","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","http-server":"0.11.1","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.1.1","line-by-line":"0.1.6","mongodb":"3.2.7","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.11.1","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.6.0","uglifycss":"0.0.29","websocket":"1.0.29"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","setup":"bin/xhi setup","start":"bin/xhi dev_start","stop":"bin/xhi dev_stop","test":"bin/xhi dev_test"},"version":"1.7.1","xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTPS server",["Start the local HTTPS server, 'http-server' in SSL mode","using localhost:8443.  This is a wrapper around ","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"3c59bf8c2f3525bd94a985eeb4b2be89fc4b75ac","_id":"hi_score@1.7.1","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-+q0cvolL38XJVRXnBRYXN+OPWretlIjL6sjC42Z9tWSQWvSH14fA+JVhG+LYjSIQY6zqoUD3JIRF0r7C0PTEhg==","shasum":"d363566c111bb1aac26e64fc33f984c4dda225dc","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.7.1.tgz","fileCount":116,"unpackedSize":8196185,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdXgjOCRA9TVsSAnZWagAAqMIQAIwFBN1U10Kdrk+bV/Hm\nq9nGz6xVH1EOnd+d+zOHt0svTXMcSy7QMHcDQ3T5ErXFF5B+HYFb5xiy+Gy0\nTE0gcOlW5Kkn7lMh/BGHDETg6BS/mEztrghW83115yTM4XBITpentH2Zn1Kw\nxhELL4Y3bH64kERYlFJlCJZuCr4SErS6fmKX3U0qJ6vsZMQMw6JySosk9JbT\niQfrrVr62qECSNEPtLRxBZDoWOOjOyMkduzpY6OzN3BlJzswkzzdPmoZkEJt\nNWy/R0nUx3zT/yaKwPCMW1cMxDSgv3wKGhTcfzcX5AZI/eFzx7UOiBxn3ga8\nSj0MGcBb6gJPVhRdW+KaaqynWQBe84+9X9HrbQIblIQABG06dShweioU8f2D\nlWZkFZdSaiei4TZHLBaIC+Km13TFLKKyNMVOuh8FCBb+APFGAgLfwfYmtwpt\nmGZd0hps0lO6MGOAblVEaslwXAcTz3jZXY+xKMQlYN688o0mozYbBnqgNXEe\noBC5ngSG8/0zfBFl8+L7gUXoY/fDIpwDJBBqD35iGfl4I38YdGjhRr2Wkcd2\n38Ab0jJLpQRpsUYBokZ0kRh5VTdJsHLj/h2kQEtgIKoGnHo1fdeLv9cNS5BR\nkNNkJCk55GbrhW1o3nr2JfWaO2SBgCr8RI0xYc9ORjRBulJ6HNaehPFAsO2w\nEGeJ\r\n=4eS4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE/fkaeW1ougKP66XnOtU5WIE+8vmiOU0r32KC8MJyurAiBw2RSCUQrhct/0SSrGE8lIThLJ8NQJZcEgdk/LR7zuwg=="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.7.1_1566443725049_0.18589844891228902"},"_hasShrinkwrap":false},"1.7.2":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","aws-sdk":"2.516.0","azure-storage":"2.10.3","coveralls":"3.0.6","dotenv":"8.1.0","diff":"4.0.1","eslint":"6.2.1","eslint-plugin-json":"1.4.0","express":"4.17.1","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.1.1","line-by-line":"0.1.6","mongodb":"3.3.0","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.11.2","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","serve-index":"1.9.1","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.6.0","uglifycss":"0.0.29","websocket":"1.0.29"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","setup":"bin/xhi setup","start":"bin/xhi dev_start","stop":"bin/xhi dev_stop","test":"bin/xhi dev_test"},"version":"1.7.2","xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTP server",["Start the local HTTP server, server/index.js on port 3000.","To serve HTTPS consider installing http-server and run","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"e0c8744af2aede829f7dc0b0d335ac1048dbcdda","_id":"hi_score@1.7.2","_nodeVersion":"10.16.3","_npmVersion":"6.11.2","dist":{"integrity":"sha512-1BfZuXS2c/polgBHxTCCjzzYksgHwQjHsLMtXyDE2tCm21NRqxYnFJp5IsCV1drgBaQkZUNm2VqNXsQ6f39RIg==","shasum":"8f2cc2b5021c4d0abb63224f76b76cc236976978","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.7.2.tgz","fileCount":120,"unpackedSize":8237916,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdbEU/CRA9TVsSAnZWagAATY0P/jxqDjxzdmJ03LDqglZH\ngxtEu2MY5w6IWHW1e4KmS3EWoWMTBSUts/z64lqxADLQaHhgqFkGjYqrFfsY\nOuZXxWQF71rtnZhsxGP8xxJaK1zjzdwrMKq1gE4+8Z8nWaIm/vEeuNEUE7rz\nVlKeGEcOu94H1QiBnPhL/0ZKgbzQMorWAxcAnNW/nPCgTP2XZ+TfLMsLJGnL\nZOgKwMacX6SVcDOnc/dAg9M4CiqqKEWZRoIVudi4bGoTvvxxaORsrw7AccnD\nSMZTMAdM/wLwEUY37kkiW4Hmo2WtF4GdtsZBN0/qlTNsglYANM84a81ihykt\nAUXcwmtKjZ9hsU+nuKEbbHy6FlL8UfYr4HHZ4hsT+p+9RVaez1YUOSLU+0Uk\nD9GP3oA/wwK89qPkXu38HBEqUh1tGlPSOcH1Hn+M4BzDJ6QFaYzwfLdzRnxX\nQ9jlVi7SARwO+XjV0AcJoiNjut2Nn+sDENIA7C6DzTumnncnRAV536hseNqC\nmmN//sjhFj3bT0Xw9kyuhoo594HOxC2SMNmr5T0y9TDkf/7HEYZVbcFM0i4i\nokrqFgbknBm7QyoL3ByYAc38bl95SmsTJ1DNX0KxBJkDq3oESHesxdw8LIo6\nzFU/Od1fNnPiwIAER+/OhBqfhds65txtq6CvSwtaZZQbFG2mObmt9KyLx7Lt\nRr5k\r\n=eiSc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBQj7evfx2bbimxOXfdGsbq9EAF1wd2t+6YjgvoAx94JAiEAgRFTlusNLke4Ns5lIxtlJqz4ZUYmhlttpd4OV8AHcR4="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.7.2_1567376701869_0.15373385323013133"},"_hasShrinkwrap":false},"1.7.3":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle starter project for SPA that favors a feature-module architecture.","devDependencies":{"apply-patch":"0.1.2","aws-sdk":"2.516.0","azure-storage":"2.10.3","coveralls":"3.0.6","dotenv":"8.1.0","diff":"4.0.1","eslint":"6.2.1","eslint-plugin-json":"1.4.0","express":"4.17.1","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.1.1","line-by-line":"0.1.6","mongodb":"3.3.0","mysql2":"1.6.5","nodeunit":"0.11.3","npm":"6.11.2","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","serve-index":"1.9.1","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.6.0","uglifycss":"0.0.29","websocket":"1.0.29"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","setup":"bin/xhi setup","start":"bin/xhi dev_start","stop":"bin/xhi dev_stop","test":"bin/xhi dev_test"},"version":"1.7.3","xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTP server",["Start the local HTTP server, server/index.js on port 3000.","To serve HTTPS consider installing http-server and run","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"a7065927e54ad68af74b9055af3bac981fafa912","_id":"hi_score@1.7.3","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-c16285shC3jkokqUgBVlqzr/Ws+1J9LLUtZDQ34HkMO1vmcN0m++AYtwi1cQLpw/fL5bU9p6ffgtWqqdQOACWA==","shasum":"8968b018bfbfc83b402f987361bdfd9429810337","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.7.3.tgz","fileCount":118,"unpackedSize":8205858,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgEaYCRA9TVsSAnZWagAAr24P/idVY74fdLrs+YmOiWVL\nwK2IJb2D25sn3Q/C3p/MmzB13gsl28joUfd05Kz5wErZjrMIbVWufz+v01hd\nmkYDlNdAp3G0lgr9DdOebj9U/TuVLqZOJiHqIe3DZ1J0XYsWDm+N0+PW1JJl\nWqWFSTd3LU9HZW0KoJ+lDpdWWEnENOzI/F+l5tZIsb6JiSL2R7xkK1dHINnx\nUHIlwiLzkN/ton3DTIJzIf98oR1SAf4czfqHDk3+aDjqVAzRv6Vz6ejPNRMN\nf3io8pcTJUUhzU7D9ANi3DFlomCAwv4grkijcfoieTo/FXKIppEGayPeEzEp\nAvWiF9dxT77caR0Wcrf6YfXvOzq/PD4jyWJXBK0b/wSpRecvc6FKmr9HtnnA\nZgSvbKEnhgg/o7uW9vM1vRozFrRpIMBoLr2wVBWREoEw+l/gT+rOQDGSyyQQ\nmnGdENDlyEG3qejx4BR+7ggREIjNu+lRq6NkheroDg8kEulVNFLbzthDiKHC\ntX1VfUfER1H5zh1QIuZaaUDQ00wqY0oT716H9UEHs5d4PfCUrxkYNkFu5NXJ\nzpMF+Tq34cm90C2+zoDhaS7D9T8aAeRuG54ZJBCOSka6eHw4NId/zMcogsTt\nAx+zVRBSnOZvNSOPBE0p7G7X/NXcUg1NyAjAFCTvFj4x9Umxlb7NzxVngrUZ\njHI4\r\n=x69Q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkGn6FKYmYfzNzKk9pEBKqiqzAAO4HW9EwyTrvnt+w8QIgQvdJEjNIUoKv775HkPaPhN8C7gMuhxrdCeRpQC4b+TU="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.7.3_1568687767501_0.3848829800086697"},"_hasShrinkwrap":false},"1.7.4":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle un-framework for SPA development using native JS, CSS, and HTML.","devDependencies":{"apply-patch":"0.1.2","aws-sdk":"2.532.0","azure-storage":"2.10.3","coveralls":"3.0.6","dotenv":"8.1.0","diff":"4.0.1","eslint":"6.4.0","eslint-plugin-json":"1.4.0","express":"4.17.1","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.1.1","line-by-line":"0.1.6","mongodb":"3.3.2","mysql2":"1.7.0","nodeunit":"0.11.3","npm":"6.11.3","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","serve-index":"1.9.1","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.6.0","uglifycss":"0.0.29","websocket":"1.0.30"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","setup":"bin/xhi setup","start":"bin/xhi dev_start","stop":"bin/xhi dev_stop","test":"bin/xhi dev_test"},"version":"1.7.4","xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTP server",["Start the local HTTP server, server/index.js on port 3000.","To serve HTTPS consider installing http-server and run","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"cff5a295845a1c811e98f77754a66ac5b6c64dbf","_id":"hi_score@1.7.4","_nodeVersion":"10.17.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-OO3T42tYXOpB26YTbPnwh7A6wif4Ytja6bJpwqMzmc3fLB+DR6UIJHKEYtQun9lSw6ecNkk/th5JCvuz1mxaUg==","shasum":"ec0d9cd15ed9fe6201b8a2b11f2d3fc1fd5dfddb","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.7.4.tgz","fileCount":144,"unpackedSize":8737489,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdz1vKCRA9TVsSAnZWagAApfIP/1TuYyw2gHvdfgGr8Lx1\n3Qkgm9SyrH7OMCypNh/x9t0xroOAwbnz9y8Z0qAKacz2zGoBoBnVboSrnCbm\ns6n8LgikExwkhDRndg1uWxK41z/8pBYhsN6HUCX+ScRH1St+WTfO57LiWQVw\nfNiAy40HRKBHnO5VIr5msCBf1CuwK7LF+iILJIBb9Rq+cLT1O3iniiJSUiGc\nqnld4zq+xnlWe+VsFTSJ2BpYK4+ndBPuSut8uWIdOmTUCtV10Sjvqq1Rrwku\n02yD01pPG7BVWC2vQ5EIzlqpEUPP0axlJYclrGyUrWJUt8DFQ0qSrg/3TY9W\naIfzvM9F+21R7BSOtSuSiyOTaTS/n5pnQIz3oveKPc+0+flSBPHKhIwIB0f0\nrR6nasxiuIcDTIGXjnN6a1N2Dwer/c9IyRX9BO3z/npG7bElrpIEygPfMxfp\nj/xB4NUgWQgBEmwKXSjx5CYawTsT4rGLuuo16g9wl/cWWw0ySS4KHfM9vU/t\ntfHsMysm2gtMuuWsPtdCfM3E57pgpLCGYzEudkDIzrNw7P3KzeYKpr+gQN+2\n5WCQ/SBx4wZxSgtF/CFvgDGXTHcwtqAVCd1kPAAsgGHa+9njkOK9otCGy+Z4\n8DDTJXMQHUfmtCeiGGGqnG7tI2RA0iF7aSxF9EaXKaTIvKdOTaZVhyC5bzUe\nfoWA\r\n=YwCq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG0RF5ga+RaPKxwPt2pzAvsROOUNqwTHLupLVs2hl1F1AiEApJ2n/MMOALKHM0uNYp1zffmnc8SAGdcEDlhFAx087B4="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.7.4_1573870537698_0.9192592121535381"},"_hasShrinkwrap":false},"1.7.5":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle un-framework for SPA development using native JS, CSS, and HTML.","devDependencies":{"apply-patch":"0.1.2","aws-sdk":"2.532.0","azure-storage":"2.10.3","coveralls":"3.0.6","dotenv":"8.1.0","diff":"4.0.1","eslint":"6.4.0","eslint-plugin-json":"1.4.0","express":"4.17.1","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.1.1","line-by-line":"0.1.6","mongodb":"3.3.2","mysql2":"1.7.0","nodeunit":"0.11.3","npm":"6.11.3","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","serve-index":"1.9.1","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.6.0","uglifycss":"0.0.29","websocket":"1.0.30"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","setup":"bin/xhi setup","start":"bin/xhi dev_start","stop":"bin/xhi dev_stop","test":"bin/xhi dev_test"},"version":"1.7.5","xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTP server",["Start the local HTTP server, server/index.js on port 3000.","To serve HTTPS consider installing http-server and run","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"c19d96608af438522b90965b12680ed1793f80cf","_id":"hi_score@1.7.5","_nodeVersion":"10.17.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-G9jE/Ho4kbXD5DKVr+Hy+RiZbg0IOaKEemh2I6F5OVbc4K+g35+OE8POEzTHPL3xeRy0hMgzRxpJhGXSXoaseQ==","shasum":"a6fde6cc22b7724c327ba85a6f96788b9cbdc4e7","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.7.5.tgz","fileCount":165,"unpackedSize":10863941,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdz17ZCRA9TVsSAnZWagAAMXcP/39PUTAKzVATFUjawB9P\nkTG4fLzIHbFzZM7vUa0+2f6KUL3WYLJWIuMfwM4l1CxEUmsljHPLr8KtZars\n9+acFvPfK5CWHchdXIeWafqDoU0nKvLKFo0AsBwPVUOb5D5vTuJy7Cv3lwWl\nLR7Q+015xi8MdlJ0nE9i6kf8tv7MCdMSRH3KNDl3tX+LQBEoRed0YFohemMA\nNEHgs7tFJqxLq0BJRvc89+dJmIX5DxNk0reGV6mhoJbRkDb/JBonGEknpUGb\n0DsySL1Ij2nn6aHPmO99TpLTB8d1sCPQCNdCZKdgzfJY9f9HluFG1u5wDQ3D\nf+q+PHA8DOrGviF9bSURLBgxkpa28PSf4ACiAlrrceRfB0SV/YNUx3+fWaU4\nvS/9a0FLWu5i57pxX+/UlIsLrGiR86OsFzzpzYZNaUGjaQc/NYqLcAgIROUD\nZzilJzQKdBMXlf4fTwthQ9Y8cRrkIJYyeJR3FJliCmLCIncVf7z7KA6a01Uq\n4YFkPYJQXqBoDQtrfnuOWmzpK6J1e3Zz20hJ2IvsUSFgcY/J7Op/xRqkVp3F\npybEGc96rEXp6K0lg0qJy2bKqS3JqW7qpxVUMwQclJLvv6vIEtV3f7GFdnu8\nXulYKxSA7d6DSSW9ixzmpXY0VKlnFditSJafzPI8uzTRh8tObgWpu5kZbscq\nIF6V\r\n=mbDo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFVRc5bjFVRFYSOHkzvP+D/k3YAuTttuPpvDyENo/iVNAiByjykSGwZUcS6gHL8bkxEp6N+lLaFGZGoY1PldQcb+xQ=="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.7.5_1573871321131_0.34567194821424585"},"_hasShrinkwrap":false},"1.7.6":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle un-framework for SPA development using native JS, CSS, and HTML.","devDependencies":{"apply-patch":"0.1.2","aws-sdk":"2.532.0","azure-storage":"2.10.3","coveralls":"3.0.6","dotenv":"8.1.0","diff":"4.0.1","eslint":"6.4.0","eslint-plugin-json":"1.4.0","express":"4.17.1","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.1.1","line-by-line":"0.1.6","mongodb":"3.3.2","mysql2":"1.7.0","nodeunit":"0.11.3","npm":"6.11.3","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","serve-index":"1.9.1","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.6.0","uglifycss":"0.0.29","websocket":"1.0.30"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","setup":"bin/xhi setup","start":"bin/xhi dev_start","stop":"bin/xhi dev_stop","test":"bin/xhi dev_test"},"version":"1.7.6","xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTP server",["Start the local HTTP server, server/index.js on port 3000.","To serve HTTPS consider installing http-server and run","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"a5f2a278890f7bda7da5b73d5f8052fa2877613d","_id":"hi_score@1.7.6","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-eQByry2ET9j7lEnZzFKYDB/0ul0KU55V4M2Lz+lBxUwjGtlwC/zbcTr9WzsgZTNEZx0ueu8TjeAeTx4sfWqxNg==","shasum":"ccee68372a1d8272a40e585d47c86b88c31ee245","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.7.6.tgz","fileCount":148,"unpackedSize":10624863,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAB8eCRA9TVsSAnZWagAAI/wP/3fdeuNlQaFS2jqzvcly\nlBrG1LXPHhSk5cx2dVm86ee4hOuPotZShY0V9XbN48cP1bM7x1d5uwb8i9Cd\naXWGA4XwQXcUrusb2HGNCqe0SCS9Nuasw1/OYN+eN9t5JfMgGY1r14+V7EW0\noSUpHbjiuwfnl3bUrfSdyECQUCL674AsW11zipWukMM+W02teIDjzZ/Joo5O\n2mnDGhlajPA0iBtsSyj0nQ78RqJ/DGQMm0bS70DKSfoYxhIl63/qLG8NHQqZ\nL2SvebHeQ+UmHp+tNMCgsWR//KC/IGuw4F9eGL80sLr+xugd4QiAfAs7xAj6\nR9jN/9GJ95sj4rcI81EoYRip5XKMHUTWhzQz5TGJiEGFAyQrtw44htRzFI7s\nP4HPD00TV454DGsoZdABfPG5D2cPdgTY/rB+RoAAKMQ0tAnagZoChXQhLJi6\n/NkF9paayJvGMco+DYsAN9MR252Jbk2xmnFazjevs6DgHeSuW1DeA3W+mKB9\nGkdzm/kCOVbNWjo03QHeqDE0u3LsvWWFfRD15a7ch1MjF2hQzdgP+TkSY+TT\nsLC/Ef4q6m+r2Dfp63uU6adv7yjl12V4U1rmBxkdpFzHl/K7f3r/iXj4kXtF\nn3QmbChgT9GYu+MR3FuYkcFg8xeotSZgceb3o7M+G2yl84Facz6LjJjoroz+\n+0+o\r\n=IhlT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGQx0QQmzRX9rpe5e+LcWSnF3WkNlvYFKOLllXq6/IjQIhANeIBwT2xIWXAiRY7q1ppHd1WTqY/OvouFt5bf/XhYu2"}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.7.6_1577066269672_0.040474049561807224"},"_hasShrinkwrap":false},"1.7.7":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle un-framework for SPA development using native JS, CSS, and HTML.","devDependencies":{"apply-patch":"0.1.2","aws-sdk":"2.532.0","azure-storage":"2.10.3","coveralls":"3.0.6","dotenv":"8.1.0","diff":"4.0.1","eslint":"6.4.0","eslint-plugin-json":"1.4.0","express":"4.17.1","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.1.1","line-by-line":"0.1.6","mongodb":"3.3.2","mysql2":"1.7.0","nodeunit":"0.11.3","npm":"6.11.3","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","serve-index":"1.9.1","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.6.0","uglifycss":"0.0.29","websocket":"1.0.30"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","setup":"bin/xhi setup","start":"bin/xhi dev_start","stop":"bin/xhi dev_stop","test":"bin/xhi dev_test"},"version":"1.7.7","xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTP server",["Start the local HTTP server, server/index.js on port 3000.","To serve HTTPS consider installing http-server and run","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"0f8385f467d0cfbb9426a73a088cb414a893ecaf","_id":"hi_score@1.7.7","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-sWwnKYUY7QA2cEjxlqFi21FdG9f4u3HMHpSmYmOH9lTks4p8M4A1IgmzPZq0CxNuqj80MLNnEpraU7X6y5PTew==","shasum":"bc0ce98f745c6193a906adc82de1f7dda7cd0b06","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.7.7.tgz","fileCount":149,"unpackedSize":10629568,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeACDzCRA9TVsSAnZWagAAxvoQAJr6ltKt4SG02pObU2EV\nKeh2rN6+SwAbxzkzB5d9n62S5899XrvHHfiVh0eqOCMBcQEBrzbYFuD88eTn\nAQk4aIqz7aGukpU6orGMeCOmJ4AqB3JPvM4AXvqvH1D6GyAwbUp6Cp38ipnb\ndD625P427OXnYWLZ86L8EaqdTIXe+wbu7q2gaB9UOP1OWlc8epy+uJm4Q45M\nQsZ4fOxwN6wdNpXBzKH3oQwiMgc2cGV+KUIalMkwgMNfIjMZm36WOFHOFrHr\nmRdqH3bHSriUvh/z9yIs5K3tutZu3Uo0b2cdyt7vZJDKL73euO/Vxe7msS2i\nrtKRJTUmKUatOxjOq8EaZeLUgLaSHm+8e4qEWSIvgG5zIX0av3Ra/B5DOizx\n3j+uypXvb6Bx8iKXsTVf1inNt2CB0Qym2Hm1UowPptuSex3AO90MYt6/zzBa\nlXlBDsdnhw0qqAmOZgl/PoQG2ZE5VuoWS8RS4/MNXVGPYqUwxAF2Pw+xsSu5\nXPZpRTgcgPx5PAj91CSILkEZfxAhpBLj/lEW3OJTDSYc+PmoI2Xp0N7ZRqh+\n+nDuvZ4uKRByHSaag7otnXM18BMGHYGgS1jzJE4FfVWYKls5Ah8wsTKMq1dy\nSDoZTO4V4q9cMjugLw1DpFjg9WXNQiHyuM2IMdfdqS+8UeGxf+oLJ57HKAAU\n3q63\r\n=8xSJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICvtypTkOeAySKyP7t81QJ8tvibSZFvVrOLP8pUS3MttAiBTTB5H9tW7G8xQwMuO3pU145HbwWD2Jj6laAbtJf8LzQ=="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.7.7_1577066736377_0.5998127670955691"},"_hasShrinkwrap":false},"1.7.8":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle un-framework for SPA development using native JS, CSS, and HTML.","devDependencies":{"apply-patch":"0.1.2","aws-sdk":"2.532.0","azure-storage":"2.10.3","coveralls":"3.0.6","dotenv":"8.1.0","diff":"4.0.1","eslint":"6.4.0","eslint-plugin-json":"1.4.0","express":"4.17.1","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","istanbul":"0.4.5","jquery":"3.4.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"15.1.1","line-by-line":"0.1.6","mongodb":"3.3.2","mysql2":"1.7.0","nodeunit":"0.11.3","npm":"6.13.4","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","serve-index":"1.9.1","shelljs":"0.8.3","taffydb":"2.7.3","uglify-js":"3.6.0","uglifycss":"0.0.29","websocket":"1.0.30"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","setup":"bin/xhi setup","start":"bin/xhi dev_start","stop":"bin/xhi dev_stop","test":"bin/xhi dev_test"},"version":"1.7.8","xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTP server",["Start the local HTTP server, server/index.js on port 3000.","To serve HTTPS consider installing http-server and run","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.5.11.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.5.11.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"},{"check_filename":"node_modules/jquery/dist/jquery.js","patch_filename":"jquery-3.4.1.patch","pattern_str":"^\\s*window.jQuery = jQuery;$","relative_name":"patch/jquery-3.4.1.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"b60c8adff9050f0821d3f78fa9a23ccc62bc8c50","_id":"hi_score@1.7.8","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-SjOW4+FUOU/avBf3Ryf0bH81ecYzDwdyIrkZdzQTMubrmXuB4cVh+S8NxpTBYfk9KOjEL0Nt66K0gId3wqrg0g==","shasum":"6d21ecd86c15c4821ebde961ac8461d8e25b2ad5","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.7.8.tgz","fileCount":165,"unpackedSize":10867036,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemPIlCRA9TVsSAnZWagAATZwP/2kPVkFrGOcxUhol/kFv\nbtpKy3Lx/FXcsmOVCvzGGhTZmc7dIQJN3g48ubYJjcIE8UB1KIhAGhQvMbFi\nZrcbqswqnXY64l9TJcN4irT9EeoU4oD9jGBXkIlNHGxqfw/k1sLmNTLTYcvp\nnZSLDTgfS+OSBUs9yS3hZco1GpD3+PCz7IidfWxXNd4k8kPhZ29CFQeujTPL\nWEonY4eVfDBTYo5ryYoDTTmE8f0tE38zsnislQFEFY31PiTNLDTSfTe5QPSd\nO7sWS6O9wkvfW/+i67BSepSMLNQNWhau2fIimx+LsYrQj4jRm815AJSif6g3\nQ41yjwKXZGgP88CtyTcHCMFUkpiuTLnmksZnXXwTcHWCl32GuYZBdTCxecKc\n3gKSoquWoG36tTU0vF+N9E1Y1tTYIkdzvtfNycRbLrDy36YqxjJAq3sQwj19\nnDkaFHeRF9EbCtdfVgQ1p5mUGM6zJlpphLpp1JWl8e8cw2Rvmega9qRuBxww\nkZPNE5FpXd/UMGzAPbeT1nZ0GOE1I8BgLKlkVAssQurqwJmcl3yonrEkoeRT\n88imhj2db3aXdUC5QnRxLI8jXDPZx6yMh53gT+MX5zJabNAoSOrHQie5Psj0\nx9Nfg/q86fIxiWEZ/d5zHIiGVl+F1BBU7aO7v/emjFIB+47WgmOrgZIHJksf\nZF+h\r\n=I+aL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxpriq4RipKcGe+N11v5KxuQTwk3RQxIcUkX/BnuIldgIhAPx2SJkpfPy0uFkOvbYtpt1Bg53lVmJqxPRelHqf7eF1"}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.7.8_1587081764824_0.45058513186535687"},"_hasShrinkwrap":false},"1.7.9":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle un-framework for SPA development using native JS, CSS, and HTML.","devDependencies":{"apply-patch":"0.1.2","aws-sdk":"2.686.0","azure-storage":"2.10.3","coveralls":"3.1.0","dotenv":"8.2.0","diff":"4.0.2","eslint":"7.1.0","eslint-plugin-json":"2.1.1","express":"4.17.1","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","istanbul":"0.4.5","jquery":"3.5.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"16.2.2","line-by-line":"0.1.6","mongodb":"3.5.8","mysql2":"2.1.0","nodeunit":"0.11.3","npm":"6.14.5","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","serve-index":"1.9.1","shelljs":"0.8.4","taffydb":"2.7.3","uglify-js":"3.9.4","uglifycss":"0.0.29","websocket":"1.0.31"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","setup":"bin/xhi setup","start":"bin/xhi dev_start","stop":"bin/xhi dev_stop","test":"bin/xhi dev_test"},"version":"1.7.9","xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTP server",["Start the local HTTP server, server/index.js on port 3000.","To serve HTTPS consider installing http-server and run","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.9.4.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.9.4.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"1324479f55717b20856e00dce2f04f340d483cbe","_id":"hi_score@1.7.9","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-QxTq33tsKP8Qnlty8ffipSrw62XuNBOaFA82X7+/9YyoBtNIcZsGznPxi6GVzt8Js+2XOwLbvxnjcZZDs5tiyg==","shasum":"64f9fef7734c3d0c82d1c2f7e3839374cd7a6ddf","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.7.9.tgz","fileCount":148,"unpackedSize":10628233,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYrNRCRA9TVsSAnZWagAAVUEP/1amOhbbJuuytuy2T06A\n0ssgdcI1cCJTxbZgVxiiLfaIs7LljAY4aYS1HuLhF3FPRkwYo7MbeHE2JXjR\npCQv4UEACGH+WubbPr/cD9x0Nc+J1oysw3jxSy19ayiemSUpRw0TfBn2C5fv\nObae1NDyjtalnxZq748eYHt7sfuMQQkOEg2SOgVsGnXmA7Z0vNL2urGd9vXl\nLGQbIRQFGL0yORDhhsPerYru7VEX1IqF8SA/W8pwDrmJ2TwVnHhH6c3JaN46\njq44JGYJ8sGYgBxJ3WAfCkc60CrwTX7Hpu5ilDQ8QET8LeJAfuh2O4WEvvNh\nN1iIX/X1uklyySzkxsdAX/FHQWBtINw7ZJBWB+r5E2BF39ISbCEu3X60fgVq\nEPjshwoj6xZCYuG00O0BGu2EuDuwdLQ4ev/jg72KVlREJW9E+VJFnbWkXEbC\nzC3L84HwNFnu2L+Uik6SOwGa7T5SBHViRZ2aSAATMxRiWmXQeyVQiMsso+I9\noa1RFINq3lbbhhIIXlCtSS0mbIlifatWI238i0UGu9GWT+eFvhU6DnXLZ4ur\nP6Sa5pt+WbBW40sXPimmP86NfZZiJeBg4Pb4J6xTsu9RW4XyLfkQxNWOVjvZ\n16F2M0eUcuWj3mXi+BeVRT5ypv2G91/RGxZN1F6GII5on5oBRSr8GrXa1mC3\nuohD\r\n=w9+b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFDwGbMctk45kL9vEhVG9pFJeuaTp7CSVX9ra3GrWnAlAiAweLikD+d1S4AvSf5+aSd9a2iVCrVpJB1X+ro8MWKXOQ=="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.7.9_1600303952911_0.7323962174668726"},"_hasShrinkwrap":false},"1.7.10":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle un-framework for SPA development using native JS, CSS, and HTML.","devDependencies":{"apply-patch":"0.1.2","aws-sdk":"2.779.0","azure-storage":"2.10.3","coveralls":"3.1.0","diff":"4.0.2","dotenv":"8.2.0","eslint":"7.12.1","eslint-plugin-json":"2.1.2","express":"4.17.1","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","istanbul":"0.4.5","jquery":"3.5.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"16.4.0","line-by-line":"0.1.6","mongodb":"3.6.2","mysql2":"2.2.5","nodeunit":"0.11.3","npm":"^7.0.7","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","serve-index":"1.9.1","shelljs":"0.8.4","taffydb":"2.7.3","uglify-js":"3.11.4","uglifycss":"0.0.29","websocket":"1.0.32"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","setup":"bin/xhi setup","start":"bin/xhi dev_start","stop":"bin/xhi dev_stop","test":"bin/xhi dev_test"},"version":"1.7.10","xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTP server",["Start the local HTTP server, server/index.js on port 3000.","To serve HTTPS consider installing http-server and run","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.11.4.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.11.4.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"01e6373d2b08958341a4be45f05eaea317a7ab30","_id":"hi_score@1.7.10","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-PtnOSK6Rf48UnJe6FcwaomJ1+jTGQkNqfzQVsoXOFV1cKTZ4WneE6c2uzkpn7jMqXhhKz8IdV30fdX1o3z+7uA==","shasum":"19818c742252576feb5ec60444f10b4ec00aee61","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.7.10.tgz","fileCount":148,"unpackedSize":10628238,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfn1VZCRA9TVsSAnZWagAA/5sP/Av2LBKXSuhUEI6dUdkh\nuren9dXCscsYN49co+JsHgCAuT9zNwltrzIufHpyxZlHHv8otSve5y4E+dNV\n2mNMk+me/jwgqmkbH1Egf63Sw6qaDmyUd8AvZtVChvUorNkVi2qO8K8svbMA\nAxWSawyFeKTX+ujGtHOC+Cf/7yFsOGh502ylnS8m601Xvz2GTCG+LboUAUiT\nz7NPXuDXkOvmU9safhziGWPohSQmY5ph9fyC563sBmFZbLHj1qE3hSIzMG2m\nB4Ha65Rn3Zq1j4xsQaLHLx/RjBMaFivlyyLdHke65BFbnmXLRhFPIgeVcVNu\n0xqdq5BNPBIQUHW7vSKnwlV35y7bVzNrVxOyPIllo0VL0+HoogGKUmvhu6PK\nKFApjexQi7gyt35dQG//GMhNmK0Yb3Gx9JaTWdUqHaTNGeN2DuKXg+NCwJHN\n8BRCdz76UyPcBR11DbQDeyBYi8NkDqiAbqu1jdhMygWpNFVKWTyFq1aEXbtF\nty+B5WfToL+MSBrjyR44GAvaWDoWVlcjI57vD+Bbbft6Cl0jCg8BPjCjAXrz\npA4UHUgassT2enE9IFMcUQ5jJuyUC6fXC0al+DFi1I+frTaHCW0hxWS4UZ2R\ndnQyj90qd2d42YH0+DAWyhGEMrOvIkcG+SW+Pry0Uv+nzIF0oFZ5/eLdpD7Q\ntrl1\r\n=TTw9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHBTGKK5tlxC5sdGgX48So+vNhkHrueVbSHrgJ6gjcRwAiB+22iAWrTHGZGuOkSRZV6OFoJhv8619z6ukX7/TejJZQ=="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.7.10_1604277592886_0.5804797366428229"},"_hasShrinkwrap":false},"1.7.12":{"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"deprecated":false,"description":"A full-life-cycle un-framework for SPA development using native JS, CSS, and HTML.","devDependencies":{"apply-patch":"0.1.2","aws-sdk":"2.779.0","azure-storage":"2.10.3","coveralls":"3.1.0","diff":"4.0.2","dotenv":"8.2.0","eslint":"7.12.1","eslint-plugin-json":"2.1.2","express":"4.17.1","flow":"0.2.3","font-awesome":"4.7.0","font-roboto":"0.0.2","istanbul":"0.4.5","jquery":"3.5.1","jquery.event.dragscroll":"1.0.0","jquery.event.gevent":"1.1.6","jquery.event.ue":"1.3.2","jquery.scrolli":"1.0.1","jquery.urianchor":"1.3.5","jsdom":"16.4.0","line-by-line":"0.1.6","mongodb":"3.6.2","mysql2":"2.2.5","nodeunit":"0.11.3","npm":"^7.0.7","open-sans-fontface":"1.4.0","powercss":"1.4.6","ps-node":"0.1.6","rmdir":"1.2.0","serve-index":"1.9.1","shelljs":"0.8.4","taffydb":"2.7.3","uglify-js":"3.11.4","uglifycss":"0.0.29","websocket":"1.0.32"},"eslintConfig":{"extends":["eslint:recommended"],"globals":{"__dirname":true,"__filename":true,"$":true,"clearTimeout":true,"console":true,"document":true,"global":true,"Image":true,"localStorage":true,"jQuery":true,"module":true,"process":true,"Promise":true,"require":true,"setTimeout":true,"window":true},"parserOptions":{"ecmaVersion":6},"plugins":["json"],"rules":{"continue":"off","indent":"off","no-console":"off","no-plusplus":"off","one-var":["error",{"var":"always","let":"consecutive","const":"consecutive"}],"semi":["error","always"]}},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"license":"MIT","main":"hi_score","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"name":"hi_score","repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"scripts":{"help":"bin/xhi help","setup":"bin/xhi setup","start":"bin/xhi dev_start","stop":"bin/xhi dev_stop","test":"bin/xhi dev_test"},"version":"1.7.12","xhi_commandTable":[["alias_list","short_str","long_str","predo_list","prereq_list"],[["help"],"Help on 'xhi' tool; use -v for verbose",["Name      : {appName}","Purpose   : Run hi_score lifecycle tools","Example   : xhi help","Arguments : [ help || 0 ] /range/ [ -v ]","  /range/ may be:","  1. A single stage number or name.    Ex: 01.","  2. A list of stage numbers or names. Ex: 1,2,3,6.","  3. A range of stages                 Ex: 1-5 or all","  See {appName} help all to list stages.","More examples:","  Run stage range","{padName} dev_pull        // run stage 04","{padName} 1,2,6           // run three stages","{padName} 1-9             // run nine stages in range","  Generic help","{padName} help            // Short help ","  Help stage range","{padName} help 01         // Short help on install stage","{padName} help all -v     // Long help on all stages","{padName} help 1,4        // Short help on stages 1,4","{padName} help help,dev_pull -v // Long help on stages 1,4","","Failure of any stage to complete reults in a non-zero exit","status and termination of the 'xhi' command."],null,null],[["install"],"Download and install npm modules",["Download & install npm modules. This is a wrapper ","around 'npm install'. Use this command directly","to diagnose problems.","NPM SCRIPTS      : presinstall, install, postinstall.","SUCCESS CRITERIA : npm install completes with 0 exit status."],null,null],[["setup"],"Patch and distribute vendor npm assets",["Prepare assets in four steps:","1. Delete all vendor directories as directed by package.json.","   See directories in bin, css, font, img, js, and lib.","2. Copy assets from node_modules to vendor directories","  with their version appended to the names.","3. Apply any patches","4. Install the commit hook if git is detected","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All steps complete without error."],null,["install"]],[["design"],"Show architecture docs",["Show architecture, style, and VDG docs in 'doc/spa-arch.md.'","Use the module template 'js/xhi/xhi-module-tmplt.js.'","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Document is shown without error."],null,null],[["dev_pull"],"Download and merge SCMS assets (git pull)",["Retrieve latest code from the repository. Use the 'git pull'","directly to diagnose problems.","NPM SCRIPTS      : none.","SUCCESS CRITERIA : 'git pull' completes with 0 exit status."],null,["setup"]],[["dev_upgrade"],"Upgrade packages to latest",["Upgrade vendor package versions to latest","At present the 'package.json' file is automatically updated.","These additional files must also updated to reflect","the new versions:","  1. config/*.buildify","  2. js/<app_dir>/<app_file>.js","  3. test.d/*.js","","An upgrade may break regression tests builds.","If this happens one may throw away any local changes","and start again fresh.  Use the following to removed","any local changes forever: 'git reset --hard HEAD'.","One may also use 'git clean -xdf' to remove untracked","local files.","","One may updated one package at a time using","'npm outdated' to list out-of-date packages","and then update 'package.json' and related files","(see above) one package at a time to their","lastest version.  If a problem occurs, it can","then be more easily resolved.","","Please run 'xhi install,setup' after this step to","have the changes reflected.","(TODO: automate 'xhi install,setup' and associated files)","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : Version upgrade completes without error"],null,["dev_pull"]],[["dev_start"],"Start local HTTP server",["Start the local HTTP server, server/index.js on port 3000.","To serve HTTPS consider installing http-server and run","'http-server -p8443 -SU -C config/cert.pem -K config/key.pem'.","Use this command directly to diagnose problems.","","NPM SCRIPTS      : prestart, start, poststart.","SUCCESS CRITERIA : Server starts without error."],null,["setup"]],[["dev_test"],"Run regression tests",["Run all nodeunit tests in the 'test.d' drop-directory.","The test files are processed in alphabetical order.","","NPM SCRIPTS      : pretest, test, posttest.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_lint"],"Lint changed code",["Check lint quality of changed JS code.","Files in 'vendor|node_modules' directories are ignored.","Four tests are performed on each file:","  1. Check for tab characters or trailing space.","  2. Ensure 'use strict'; is employed","  3. Run 'eslint' on each file (config in package.json)","  4. List TODO items for developer to review and approve.","Any failed step causes this stage to report failure.","","The test do not short-circuit so any and all issues are","shown for each run.","","NPM SCRIPTS      : none.","SUCCESS CRITERIA : All tests complete without error"],null,["setup"]],[["dev_cover"],"Create coverage report",["Create coverage report"],null,["setup"]],[["dev_commit"],"Commit changes with git",["Commit changes with git","TODO 2017-08029 mmikowski warn: add make-doc step prior.","Use 'git commit' directly to diagnose any problems.","NPM SCRIPTS      : preversion, version, postversion","SUCCESS CRITERIA : 'git commit' exit status"],["dev_test","dev_lint"],null,["setup"]],[["build","make"],"Build a distribution",["Build a distribution. The config, like for all 'xhi' tools","is found in 'package.json' as shown below.","","  xhi_11_BuildMatrix : {","    bundle_map : {","      bundle1_list : [","        <src_path> OR","        [ <src_path>, <dest_path>, <do_dir_copy> ]","        ...","      ],","      ...","    }","    app_table : [","      {","        app_id : <app_id>,","        css_make_matrix : {","          <do_vendor> : true|false","          asset_list  : [","            <src_path> OR","            [ <src_path>, <dest_path>, <do_dir_copy> ] OR","            { bundle_key_list : [","                <key_from_bundle_map>, ...","              ]","            }","          ]","        },","        js_make_matrix : { <same_as_css_make_matrix> },","        path_copy_matrix : { <same_as_css_make_matrix> }","      },","      ...","    ]","  }","","Use the 'bundle_map' to create group definitions of assets to","deploy.  If only the <src_path> is provided the build process","assumes: The path is a file in the development environment AND","The file is to be copied to the same location in the","'build/<build_number>/dist' directory.","","If we want a directory copy or a different source and destination, the ","second form must be used: [ <src_path>, <dest_path>, <do_dir_copy> ].","If <dest_path> is 'null' it is calculated to be the same as <src_path>.","If <do_dir_copy> is 'true' then a directory copy is attempted.","","The 'app_table' section lists all applicaitons to build in a map.","Each map has the following fields: 'app_id' which is used to set the id","","NPM SCRIPTS      : prepare","SUCCESS CRITERIA : All tests complete without error"],["dev_test","dev_lint","dev_cover"],["setup"]],[["publish"],"Publish to coveralls and NPM",["Publish to coveralls and NPM.","NPM SCRIPTS      : prepublish,publish,postpublish,prepublishOnly","SUCCESS CRITERIA : Push to NPM and coveralls successful"],null,["build"]],[["dev_stop"],"Stop local HTTPS server",["Stop local HTTPS server","NPM SCRIPTS      : prestop, stop, poststop","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["dev_restart"],"Cycle local HTTPS server",["Cycle local HTTPS server","NPM SCRIPTS      : prerestart, restart, postrestart","SUCCESS CRITERIA : Server return status"],null,["setup"]],[["deploy"],"Upload distribution",["Upload distribution to production server(s)","NPM SCRIPTS      : prepack, pack, postpack","NPM SCRIPTS      : preshrinkwrap, shrinkwrap, postshrinkwrap","SUCCESS CRITERIA : Upload return status"],null,null],[["prod_start"],"Start production server",["Start production server(s)"],null,null],[["prod_stop"],"Stop production server",["Stop production server"],null,null],[["prod_restart"],"Cycle production server",["Cycle production server"],null,null],[["fetch_info"],"Fetch feedback",["Fetch feedback"],null,null],[["uninstall"],"Remove {appName}",["Remove {appName}","NPM SCRIPTS      : preuninstall, uninstall, postuninstall","SUCCESS CRITERIA : Removal success exit status"],null,null]],"xhi_02_SetupMatrix":{"asset_group_table":[{"asset_type":"css","asset_list":[{"src_asset_name":"font-awesome.css","src_dirname":"css","src_pkg_name":"font-awesome"}],"dest_dirname":"css/vendor","dest_ext_str":"css"},{"asset_type":"js","guide_str":"Place these in order of inclusion","asset_list":[{"dest_name":"taffy","src_asset_name":"taffy.js","src_pkg_name":"taffydb"},{"dest_name":"pcss","src_asset_name":"pcss.js","src_dirname":"dist","src_pkg_name":"powercss"},{"dest_name":"pcss.cfg","src_asset_name":"pcss.cfg.js","src_dirname":"dist","src_pkg_name":"powercss"},{"src_asset_name":"jquery.js","src_dirname":"dist","src_pkg_name":"jquery"},{"src_asset_name":"jquery.event.dragscroll.js","src_dirname":"dist","src_pkg_name":"jquery.event.dragscroll"},{"src_asset_name":"jquery.event.gevent.js","src_pkg_name":"jquery.event.gevent"},{"src_asset_name":"jquery.event.ue.js","src_pkg_name":"jquery.event.ue"},{"src_pkg_name":"jquery.scrolli","src_dirname":"dist","src_asset_name":"jquery.scrolli.js"},{"src_asset_name":"jquery.uriAnchor.js","src_pkg_name":"jquery.urianchor"}],"dest_dirname":"js/vendor","dest_ext_str":"js"},{"asset_id":"asis","asset_list":[{"src_pkg_name":"font-awesome","src_dirname":"fonts"},{"src_pkg_name":"font-roboto","src_dirname":"dist/fonts"},{"src_asset_name":"Regular","src_pkg_name":"open-sans-fontface","src_dirname":"fonts"}],"dest_dirname":"font/vendor","do_dir_copy":true}],"patch_matrix":{"patch_dirname":"patch","patch_map_list":[{"check_filename":"node_modules/uglify-js/lib/scope.js","patch_filename":"uglify-js-3.11.4.patch","pattern_str":"^\\s*// hi_score patch applied","relative_name":"patch/uglify-js-3.11.4.patch"},{"check_filename":"node_modules/font-awesome/css/font-awesome.css","patch_filename":"font-awesome-4.7.0.patch","pattern_str":"Patch removed redundant and incorrect font paths","relative_name":"patch/font-awesome-4.7.0.patch"}]}},"xhi_11_BuildMatrix":{"note01_str":"Deploy fields: src_pathname, tgt_pathname, is_dircopy.","note02_str":"Flags do_compress, do_isolate may be added.","note03_str":"Include bundles in app_list by wrapping in array","bundle_map":{"xhi_js_list":["js/plugin/jquery.deferred.whenAll-1.0.0.js","js/xhi/00_root.js","js/xhi/01_util.js","js/xhi/02_data.js","js/xhi/03_model.js","js/xhi/04_utilb.js","js/xhi/05_02_css_base.js","js/xhi/05_03_css_lb.js","js/xhi/05_04_css_shell.js","js/xhi/05_css.js","js/xhi/06_lb.js","js/xhi/07_shell.js","js/xhi/08_app.js"],"font_deploy_list":[["font/vendor/font-awesome-4.7.0",null,true],["font/vendor/open-sans-fontface-1.4.0/Regular",null,true],["font/vendor/font-roboto-0.0.2",null,true]]},"app_table":[{"app_id":"app-ex01","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex01/ex01.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex01.html","/",false]]}},{"app_id":"app-ex02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-ex02/ex02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["img/hi_score.png",null,false],["template/app-ex02.html","/",false]]}},{"app_id":"app-tb02","css_make_matrix":{"do_vendor":true,"asset_list":["css/xhi-fonts.css"]},"js_make_matrix":{"asset_list":[{"bundle_key_list":["xhi_js_list"]},"js/app-tb02/tb02.00_root.js","js/app-tb02/tb02.01_util.js","js/app-tb02/tb02.02_data.js","js/app-tb02/tb02.03_model.js","js/app-tb02/tb02.04_utilb.js","js/app-tb02/tb02.05_02_css_base.js","js/app-tb02/tb02.05_03_css_lb.js","js/app-tb02/tb02.05_css.js","js/app-tb02/tb02.06_lb.js","js/app-tb02/tb02.07_shell.js","js/app-tb02/tb02.08_app-build.js"],"do_vendor":true},"path_copy_matrix":{"asset_list":[{"bundle_key_list":["font_deploy_list"]},["sound",null,true],["template/app-tb02.html","/",false],["img/hi_score.png",null,false]]}}]},"gitHead":"75c94d6f1c91381437ffa607876d2b33977fca24","_id":"hi_score@1.7.12","_nodeVersion":"12.22.6","_npmVersion":"7.22.0","dist":{"integrity":"sha512-chlZSBkgufVQ0ahnZtOubUxKv7NHl0NGk30sxfb2CZ+EGfNn8jOrNkHcYW13MpAcZO1yMsOfl6+tE75hJAntnw==","shasum":"7051c93ba4d8bfed1f2289ca8fd63a85efb4c986","tarball":"https://registry.npmjs.org/hi_score/-/hi_score-1.7.12.tgz","fileCount":157,"unpackedSize":10819491,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2tSuCRA9TVsSAnZWagAATdMP/0AqyWIfFttWTlwY3yQ1\nnzTIgk1RdVWyaEO0KmMpJu91yoCjEdeWupzaPimq6Qc8ojD7tlYIN7qkJv2o\n6toqMaYRRl9Dbs6RKZd3RmUTRW0+3mL7NDyEa9fpCd7vpJPPsLgwOtHvublU\noHbxMHOj6lIBusXmdHPkW8sbrUsdaHlWvTnXCORHaOuVHwjJYLs85K3Khlq2\nCbuHeHT2PVBKFib+1Cq9sbPiYxMBvVdejG+5bnCV5J1iLtHKmyAB8xGal8we\n497qYEvg0qitEW+i9cp5hSSJ7HgKiR0MytpspJO5CDdCRz1FKv+egLP5s67g\nCkxtuUUDXO+4PBflfdYXjAK9+SFCIsCXt2YPhgeBQLonBeSSRj51FY1Ffq88\n4AttLZ+diYcPBD79pRfvKNj11onQHFXhK87xEiU4d+0CtOJDjabCDuOn8E0F\ntiPtxe4RFvdeN81i23pknaTQ99Uh360SKX3kBD0W/7m9nRCaeSE4fXGHvIaa\ne4TBisHLMi6LCAkuyyift+3UCsCHs8iWQ9HbyYI8HjGnW4788fm7rNQaKmzO\nxqCeJ82jrjTlZNlXyy/eDDV4Rs5rqh7RicMa74ZB+9AJLa91lLHzWM3CThoj\niDoTBBO6Inpd1FJUTMkoxwE2Wnz2oe3xRLab96hRTLV4fKCl6UK0DW1q5tkc\nSkNS\r\n=yyf1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDz3EBaEYWK1WnfEkUeN2OiK7mYdRW4SBwLs1bH8Y48DgIgGyB2ZXih6NPZJgp/3Xhlokgxj5vgFeAg+xesIfn2f2s="}]},"_npmUser":{"name":"mikem","email":"mike.mikowski@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hi_score_1.7.12_1631921351366_0.7855755360749934"},"_hasShrinkwrap":false}},"readme":"![hi_score][_0A]\n[![Coverage Status](https://coveralls.io/repos/github/mmikowski/hi_score/badge.svg?branch=master)](https://coveralls.io/github/mmikowski/hi_score?branch=master)\n\n*The UnFramework for Single Page Web Applications*\n\nBy the author of [Single Page Web Applications, JavaScript end-to-end][_00], a Dr. Dobb's [Best Book of 2014][_0f].\n\n## Why hi\\_score?\nLike other Single Page Web App (SPA) frameworks, `hi_score` provides an\nenormous head-start in creating professional, release-ready applications. Yet\nit is profoundly different from most of them in almost every other way.\n\nThe `hi_score` framework helps developers create, understand, and constantly\nimprove the **core technologies** used by their SPAs instead of locking them\ninto a large and non-portable ecosystem. It uses a **zero-transpile**\ndevelopment environment while still providing a **rich set of capabilities**\nsuch as life-cycle management, type safety, run-time CSS, and state\nmanagement. It consumes **far fewer resources** and is productive with just a\ntext editor, a terminal, and a browser. Easy problems are easy to solve, and\n**hard problems are possible**.\n\n**A framework should serve you**, not the other way around. You should be free\nto move your web app to other environments without complex migration away from\nnon-portable dead-end pseudo-languages. You shouldn't be forced to rewrite /\nrefactor / debug all your apps every time your framework releases a new\nversion.\n\nIf your framework is making your life more complex, if your teams can't\ncommunicate because they are using competing [Towers of\nBabel](#towers-of-babel), perhaps its time to use `hi_score` so they can all\nspeak the same languages your apps actually use.\n\n## Latest News\nVersion 1.7.12 enhancements:\n- (x) `js/xhi/01_util` Add return map option to method `_makeTmpltStr_`.\n  This reports the keys actually used in a given operation through the map\n  reference that is passed. If no map reference is passed, this function\n  operates exactly as before.\n\n---\n## Quick start\nOn Mac, Ubuntu Linux, or WSL please follow these steps.\n\n- Ensure [prerequisites are met](#prerequisites)\n- Enter the following commands into the terminal one at a time\n\n```bash\n  git clone git@github.com:mmikowski/hi_score.git\n  cd hi_score\n  bin/xhi build,dev_start\n  # Press 'enter' when prompted to review TODOs\n\n  # Now open in a browser (adjust as needed)\n  google-chrome http://localhost:8080/build/latest/dist/app-tb02.html\n```\n\nThese steps create a release-ready distribution in around 5 seconds on modern\nhardware. In that time, `hi_score` resolves all build\n[dependencies](#lifecycle-dependencies), coordinates with NPM to download and\ninstall hundreds of packages, patches and deploys libraries, and runs\nthousands of quality checks. Subsequent builds take less than half the time\nthanks to cached [environment dependencies](#environment-dependencies).\n\nYou should now see the **Typebomb 2** web app in a browser and may use the\ndeveloper tools to inspect the CSS, the DOM, and the JavaScript. Notice how\neverything is production-ready including compressed CSS class names (yes, we\n**were** doing this five years before Facebook). Please compare it with the\n[online version][_0BA] to ensure it is working correctly.\n\n![Typebomb 2][_0B]\n\n---\n## Key benefits\n- Manage the [full life cycle](#the-xhi-lifecycle-tool)\n- Integrate [with NPM](#the-xhi-lifecycle-tool) using `package.json`\n- Never miss a lifecycle step with [dependency resolution](#lifecycle-dependencies)\n- Avoid the complexity and magic of the [Tower of Babel](#towers-of-babel)\n- Develop rapidly in with only a browser, terminal, and text editor\n- Create in-line HTML documents from markdown (`bin/make-doc`)\n- Build multiple related applications in a single project\n- Learn from a non-trivial `Typebomb 2` app\n\n\n- Debug instantly using browser tools in a **zero-compile** development environment\n- Get [Detailed help](#find-help) with `bin/xhi help -v`\n- Use best practice reference [Style, VDG, Library, Architecture](#find-help) using `bin/xhi design`.\n- Enjoy [type-safety][_05] *without* the complexities of [TypeScript][_43] or [Flow][_44]\n- Use a [layered MVC arch](#find-help) with designed for testing\n- Leverage the extensively used and tested [xhi library](#leverage-the-xhi-library) to guide the design of every layer of our app.\n  - Extensive, highly tested utilities in `js/xhi/01_util`\n  - AJAX and socket methods in `js/xhi/02_data`\n  - State and logic management in `js/xhi/03_model`\n  - Feature modules as shown in `js/xhi/06_lb.js`\n  - Double-buffered dynamic CSS with [PowerCSS][_11] and `js/xhi/06_css`\n  - Shell design in `js/xhi/07_shell`\n\n\n- Auto-installed a commit-hook (`bin/xhi install`)\n- [Deploy and patch](#patches) all vendor assets (`bin/xhi setup`)\n- Run all regression tests in a drop directory (`bin/xhi dev_test`)\n- Serve content with `http-server` (`bin/xhi dev_start`)\n- Upgrade libraries only on request (`bin/xhi dev_upgrade`)\n- Run suite of static tests (ESLint, whitespace, strict, TODOs) (`bin/xhi dev_lint`)\n- Report code coverage with Istanbul (`bin/xhi dev_cover`)\n- Run all tests prior to commit (`bin/xhi dev_commit`)\n- Build for distribution with a single command (`bin/xhi build`)\n\n---\n\n## The xhi lifecycle tool\nThe `bin/xhi` tool automates good practice for almost every conceivable stage of the SPA life cycle. Configuration for **every** stage is found in the NPM `package.json` file. **This tool provides all [NPM lifecycle scripts][_38] such as `npm test`.**\n\n### Find help\nThe lifecycle stages supported by `bin/xhi` are shown below. Those marked `placeholder` are those we plan to address in future releases. Use the command `bin/xhi help all` to see the entire list as shown below.\n\n```\n  $ bin/xhi help all\n    xhi>  START Stage 00 help\n    xhi>  00 help        : Help on 'xhi' tool, use -v for verbose\n    xhi>  01 install     : Download and install npm modules\n    xhi>  02 setup       : Patch and distribute vendor npm assets\n    xhi>  03 design      : Show architecture, style, and VDG docs\n    xhi>  04 dev_pull    : Download and merge SCMS assets (git pull)\n    xhi>  05 dev_upgrade : Upgrade packages to latest\n    xhi>  06 dev_start   : Start local HTTP server\n    xhi>  07 dev_test    : Run regression tests\n    xhi>  08 dev_lint    : Lint changed code\n    xhi>  09 dev_cover   : Create coverage report\n    xhi>  10 dev_commit  : Commit changes with git\n    xhi>  11 build       : Build a distribution\n    xhi>  12 publish     : Upload to publishers\n    xhi>  13 dev_restart : Cycle local HTTP server\n    xhi>  14 dev_stop    : Stop local HTTP server\n    xhi>  15 deploy      : Upload distribution        # placeholder\n    xhi>  16 prod_start  : Start production server(s) # placeholder\n    xhi>  17 prod_restart: Cycle production server(s) # placeholder\n    xhi>  18 prod_stop   : Stop production server(s)  # placeholder\n    xhi>  19 fetch_info  : Fetch feedback             # placeholder\n    xhi>  20 uninstall   : Remove xhi                 # placeholder\n    xhi>  END Stage 00 help\n```\n\nUse `bin/xhi design` to see the Architecture Guide, Style Guide, or Visual Design Guide (VDG). Detailed help on a stage or range of stages is shown with the `-v` flag shown below.\n\n```\n  $ bin/xhi help dev_lint -v\n  xhi>  START Stage 00 help\n  xhi>  08 dev_lint:\n  xhi>    Check lint quality of changed JS code.\n  xhi>    Files in 'vendor|node_modules' directories are ignored.\n  xhi>    Four tests are performed on each file:\n  xhi>      1. Check for tab characters or trailing space\n  xhi>      2. Ensure 'use strict'; is employed\n  xhi>      3. Run 'eslint' on each file (config in package.json)\n  xhi>      4. List TODO items for developer to review and approve\n  xhi>    Any failed step causes this stage to report failure.\n  xhi>\n  xhi>    This stage does not \"short-circuit\" so any and all issues are\n  xhi>    shown for each run.\n  xhi>\n  xhi>    NPM SCRIPTS      : none.\n  xhi>    SUCCESS CRITERIA : All tests complete without error\n  xhi>  END   Stage 00 help\n```\n\n### Run lifecycle stages\nRun a range of lifecycle steps as shown below.\n\n```\n  # Get list of stages\n  $ xhi help all\n\n  # Run desired stage-range\n  $ xhi dev_cover,build\n```\n\nThe `bin/xhi` tool takes a `<stage-range>` argument. Stages that are provided out-of-order are sorted before running. A number of examples are shown below.\n\n```\n  # Run a single stage\n  $ xhi install\n\n  # Run all stages between 'install' and 'dev_commit' inclusive\n  $ xhi install-dev_commit\n\n  # Run individual stages explicitly\n  $ xhi update,dev_cover\n\n  # Run a range using stage numbers\n  $ xhi 0-5\n\n  # Get help on ranges\n  $ xhi help install -v\n  $ xhi help install-dev_commit\n  $ xhi help update,dev_cover\n  $ xhi help 0-5\n```\n\nThe `bin/xhi` tool will often run more than the number of stages requested. That's because many stages have dependencies as discussed in the next section.\n\n### Lifecycle dependencies\nThe `bin/xhi <stage-range>` command will always run the smallest safe number of steps to complete the target <stage-range> to minimize time and resources required. For example, consider the stages that are run when we enter `bin/xhi build,dev_start` for the first time as shown below.\n\n- **01 install**  Download all vendor assets\n- **02 setup** Copy, rename, and patch vendor files. Install commit hook.\n- **06 dev\\_start** Configure and start an HTTP server\n- **07 dev\\_test** Ran all unit test suites found in `test.d`\n- **08 dev\\_lint** Ran all lint tests (whitespace, TODO, eslint, strict)\n- **09 dev\\_cover** Calculated and report coverage\n- **11 build** Minimized, obfuscated, and SuperPacked three apps\n- **11 build** Created a unique dist folder for each app with meta-data and build reports\n\nAfter this initial run, many of these steps will not be repeated. The install and setup stages, for example, will not be needed again unless the installation changes. The code quality checks like linting will only be needed if code files change. These dependencies are resolved by `bin/xhi` as discussed below.\n\n#### Goal dependencies\nGoal dependencies are stages that are *always* run before before a target stage. For example, if we run `bin/xhi dev_commit` the `dev_lint`, and `dev_test` stages will *always* be run first to ensure the code quality is acceptable.  If either requirement fails, `bin/xhi` exits immediately (with an exit code of 1) and the target stage is not attempted. Goal dependencies are defined in `package.json.xhi_commandTable`. Don't change these without careful consideration and testing.\n\n#### Environment dependencies\nEnvironment dependencies must be successfully completed in the development environment before the target stage. For example, if we run `bin/xhi dev_commit` but have not run `bin/xhi install`, the `install` stage will be run before the `dev_commit` stage. The success or failure of each stage is saved in the state file (`run/xhi_state.json`) and the next stage is run. If the `install` stage succeeds it will not be included in future steps for `dev_commit` as it will have been completed in the prior run. Environment dependencies are defined in `package.json.xhi_commandTable`. Don't change these without careful consideration and testing.\n\nPreviously completed environment dependencies may be invalidated. For example, if `bin/xhi install` or `bin/xhi upgrade` fail, the tool will mark the `install` stage as failed and the stage will be attempted again in the next invocation that requires this stage as a dependencies.\n\nExplicitly requested stages will always run regardless of their last success status. For example, `bin/xhi dev_lint` may or may not run the `install` stage, but `bin/xhi install,dev_lint` will *always* run the `install` stage because it is explicitly listed. `bin/xhi help-dev_lint` will also run `install` since it is explicitly within the range provided (`help-dev_lint`). Reset the status by removing the `stage_status_map` from the `run/xhi_state.json` file.\n\n### Exit status\nIf all the stages of a range are successfully run an exit status of `0` is returned. If any stage fails processing stops and an exit status of `1` is provided. In Bash, the return status is available in the `$?` environment variable. If we apply minor adjustments to disable terminal interaction, `bin/xhi` should be capable of integration to other tool chains.\n\n---\n## Create a new application\nWe create a new application by adding files as shown below.\n\n```\nhi_score/\n│\n├── app-<name>.html              <= Development test page\n│\n├── css\n│   └── app-<name>/              <= CSS if needed (but consider PowerCSS)\n│       └── <name>.css\n├── img\n│   └── app-<name>/              <= App-specific image files\n│       └── <name>.<descr>.svg\n└── js\n    └── app-<name>/              <= Libraries (discussed below).\n        └── <name>.00_root.js\n```\n\n\nThe `Typebomb 2` app uses PowerCSS instead of an external CSS file. In addition, there are no external images as it uses embedded SVGs. Our files therefore are as shown below.\n\n```\nhi_score/\n│\n├── app-tb02.html              <= Development test page\n│\n└── js\n    └── app-tb02/              <= Libraries (discussed below).\n        ├── tb02.00_root.js\n        ├── tb02.01_util.js\n        └── ...\n```\n\n## Leverage the xhi library\n`hi_score` is build from the ground-up to support **feature module** architecture. Key tenants of this architecture and the `xhi` library are shown below.\n\n![Feature module architecture][_0C]\n\n- All layers are order from most basic `00_root` to highest abstraction `08_app`.\n- Each layer is created using a corresponding `xhi` library file.\n- Data flows from the lowest layer `00_root` to the highest `08_app`.\n- All method calls are made from higher levels to lower. Calls from 02_data to 01_util or 03_model to 01_util are expected. Calls from a high layer like `07_shell` to a low layer like `02_data` should be scrutinized because one *probably* be calling all intermediate layer to safe state. All method calls from a lower layer to a higher layer or across modules of the same level are not allowed.\n- Use event registration to communicate changes up the stack. For example, the `03_model` may communicate an online status by publishing event data. All registered feature modules may then update their display.\n- Create feature modules that contain their own isolated data and models when appropriate. This is pragmatic and recognizes the fractal nature of MVC.\n\nThe `Typebomb 2` app has files for each layer as shown below.\n\n```\nModule layers\n========================================\ntb02.00_root.js            |        ^    \\\ntb02.01_util.js          load       |     |\ntb02.02_data.js          order      |     |\ntb02.02_01_data_mock.js    |        |     |\ntb02.03_model.js           |      call,   |\ntb02.04_utilb.js           |      init     >  xhi library\ntb02.05_02_css_base.js   events   order   |\ntb02.05_03_css_lb.js       |        |     |\ntb02.05_css.js             |        |     |\ntb02.06_lb.js              |        |     |\ntb02.07_shell.js           |        |     |\ntb02.08_app.js             v        |    /\n```\n\nAll these modules claim a slice of the application name-space (`tb02`) and use `js/xhi` libraries in one of three ways:\n\n1. Create a configured instance and use as-is\n1. Create an instance and decorate\n1. Use the module to guide development\n\nMore specific notes about `Typebomb 2` app are provide in `README.app-tb02.md`.  One can omit unused layers for a given app. However, for illustrative purposes, we have included all layers here. One can copy these to a new name-space to create a new app and edit from there. One can easily create a generator to automate these steps, but we show them in full for now.\n\n```bash\n  cd ~/Github/hi_score;\n  export _ns='mine'\n\n  cp /template/app-tb02.html \"app-${_ns}.html\"\n\n  mkdir \"js/app-${_ns}\"\n  cd \"js/app-${_ns}\"\n\n  cp ../app-tb02/tb02.00_root.js         \"${_ns}.00_root.js\"\n  cp ../app-tb02/tb02.01_util.js         \"${_ns}.01_util.js\"\n  cp ../app-tb02/tb02.02_data.js         \"${_ns}.02_data.js\"\n  cp ../app-tb02/tb02.02_01_data_mock.js \"${_ns}.02_01_data_mock.js\"\n  cp ../app-tb02/tb02.03_model.js        \"${_ns}.03_model.js\"\n  cp ../app-tb02/tb02.04_utilb.js        \"${_ns}.04_utilb.js\"\n  cp ../app-tb02/tb02.05_02_css_base.js  \"${_ns}.05_02_css_base.js\"\n  cp ../app-tb02/tb02.05_03_css_lb.js    \"${_ns}.05_03_css_lb.js\"\n  cp ../app-tb02/tb02.05_css.js          \"${_ns}.05_css.js\"\n  cp ../app-tb02/tb02.06_lb.js           \"${_ns}.06_lb.js\"\n  cp ../app-tb02/tb02.07_shell.js        \"${_ns}.07_shell.js\"\n  cp ../app-tb02/tb02.08_app.js          \"${_ns}.08_app.js\"\n\n  git add .\n```\n\nThere is a lot less duplicate code here than it may appear. For example, any `01_util` layer is just a singleton instance of the `js/xhi/01_util` utilities. And any model almost certainly inherits and reuses state values and methods from an instance of the `js/xhi/03_model`.\n\nWe change all references from `tb02` in these new files to our new name-space, `${_ns}`. We also create a new build manifest in `package.json` using the `xhi_11_BuildMatrix` configuration for `tb02` as a guide. Once we confirm our new app builds as expected using `bin/xhi build` (check the output in `build/latest/dist/app-${_ns}.html`) we proceed to customize it as desired.\n\n---\n## Vendor assets\nThe `bin/xhi setup` stage patches and deploys vendor assets using the `xhi_02_SetupMatrix` configuration found in `package.json`. This field is correlated with the with the `devDependencies` map to ensure assets are properly label, patched, distributed, and ignored by Git.\n\nAssets are copied to their destination directory with their version number appended to their names. The `.gitignore` file instructs `git` to ignore all these files as their development management is external to our project. **Every time `bin/xhi setup` is run the vendor directories are deleted and recreated**.\n\n### Executable assets\nVendor executables are copied to the `bin/vendor` directory.\n\n### Font assets\nVendor font files are copied to the `font/vendor` directory. These fonts are currently installed:\n\n- [Font Awesome][_30]: Icon fonts\n- [Open Sans][_31]: OSS Font face\n\n### Image assets\nVendor images are be copied to the `img/vendor` directory.\n\n### JavaScript assets\n#### Client JS libraries\nClient libraries are copied to the `js/vendor` directory. This makes them available to the web server. The following libraries are installed:\n\n- [jQuery][_10]: DOM manipulation\n- [PowerCSS][_11]: JS-powered CSS\n- [jQuery Plugin: event.dragscroll][_12]: Inertia scroll\n- [jQuery Plugin: event.gevent][_13]: Global events\n- [jQuery Plugin: event.ue][_14]: Touch and desktop gestures\n- [jQuery Plugin: scrolli][_15]: Scroll indicators\n- [jQuery Plugin: urianchor][_16]: SPA routing\n- [SprintF][_32]: Sprintf library\n- [TaffyDB][_17]: Client data management\n\nThe `jQuery` name-space is changed to `xhiJQ` and the PowerCSS name-space is changed from `pcss` to `xhiCSS`. This avoids conflicts with other libraries. The naming may be updated by adjusting `bin/rename-vendor-symbols`.  When coding, please use these symbol (`xhiJQ` and `xhiCSS`) instead of their usual names (`jQuery` and `pcss`). Also, we do **not** expect the `$` symbol to represent jQuery. Rely on local mapping if we want that behavior, e.g. `(function ($) { ... }( xhiJQ ))`.\n\n#### Node JS libraries\nNodeJS libraries are **not** copied to a `vendor` directory. We may change\nthis if we decide to create a server distribution. The following libraries are\ninstalled:\n\n- [clusterjs][_34]: Server multiplexer\n- [express][_36]: Minimalist Sinatra HTTP server\n- [mongodb][_34]: Official mongodb node client\n- [mysql2][_35]: Faster mysql interface\n- [websocket][_37]: Websockets interface\n\n#### Development JS libraries\nDevelopment libraries are used for testing a building code. They are **not**\ncopied to a `vendor` directory. The following libraries are installed:\n\n- [coveralls][_18]: Code coverage reporting\n- [istanbul][_19]: Code coverage\n- [jsdom][_20]: DOM mock for testing\n- [eslint][_21]: Linting for commit hook\n- [nodeunit][_22]: Unit testing\n- [node-inspector][_23]: Debugging\n- [uglifycss][_24]: CSS minification\n- [uglifyjs][_25]: JS minification\n\n### Styling assets\nVendor CSS libraries are copied to the `css/vendor` directory. The following\nCSS files are installed:\n\n- [Font Awesome][_30]: Icon font CSS\n\n### Patches\nThe `xhi_02_SetupMatrix.patch_matrix` directs patch application.  This capability allows us to use great tools tweaked for our needs while maintaining the upstream source. For example, we patch `uglify-js` to support object property name compression and shuffling by `superpack`. We also patch `font-awesome` CSS files to have the correct path for our environment. The `bin/xhi setup` stage applies patches *after vendor assets are copied to their directories*. The configuration for patches are in `package.json` in the `xhiPatchMatrix` map. The patches are stored in the `patch` directory. Patches can be created as follows:\n\n```bash\ncd js/vendor\ncp jquery-3.5.1.js jquery-3.5.1.js.O\n\n# Now change jquery-3.5.1.js as required\n\n# And create the diff\ncd ../..\ndiff -u js/vendor/jquery-3.5.1.js.O js/vendor/jquery-3.5.1.js\n  > patch/jquery-3.5.1.patch\n```\n\n---\n## Build\nUse `bin/xhi build` or `bin/xhi make`  to build a distribution. The tool concatenates, compresses, and obfuscates and SuperPacks JavaScript and CSS. It copies only the required assets into the the distribution directory (`build/<build_id>/dist`). The result loads faster, runs faster, and typically consumes roughly 1/50th the space of the development environment.\n\n```\n  $ ## Show disk usage of all development files\n  $ cd hi_score && export PATH=`pwd`/bin:$PATH;\n  $ du -sh .\n    148M\n\n  $ ## Get disk usage of all distribution files\n  $ xhi build && cd build/latest && du -sh .\n    3.6M\n```\n\nThe `bin/xhi build` stage uses uses SuperPack to analyze symbols (variable names, object properties, and labels) and replace them with shortened and shuffled keys. The shortest keys are used for the most frequently found symbols. SuperPack reports the key-to-symbol mapping and the frequency of use which makes further optimizations by pruning code easier (see `build/<build-number>/stage/<name>-sp.diag` for mapping and key use). Projects with many object properties can be compressed up to an additional 50% by SuperPack, and it hinders reverse-engineering of code.\n\nThe build process enhances security because only a tiny, curated, obfuscated portion of our code is published and sensitive data such as SCMS information, documentation, lookup-maps, and development assets are omitted. We can publish these assets elsewhere at our discretion. The distribution also reduces the dozens of HTTP calls to just a few. This too reduces load time as illustrated below.\n\n| Attribute   | Original (%)     | Minified (%)     | SuperPack (%)    |\n|-------------|-----------------:|-----------------:|-----------------:|\n| Size        | 601,027 (100.0%) | 215,400 ( 35.8%) | 162,494 ( 27.1%) |\n| Gzipped     | 151,716 ( 25.2%) |  62,895 ( 10.4%) |  57,275 ( 09.5%) |\n| HTTP reqs   |      27 (100.0%) |       4 ( 15.4%) |       4 ( 15.4%) |\n| Local ms    |     231 (100.0%) |     166 ( 71.2%) |     144 ( 62.3%) |\n| Deploy Size |           121 MB |    8 MB (  6.6%) |    8 MB (  6.5%) |\n\nThe load time measurements were made using a local HTTP server. Remote devices over slow networks would have a much larger delta in favor of SuperPack.\n\n---\n## Name-spaces\nName-spaces enable us to provide a suite of web apps that share a great deal of code but have instances and data cleanly isolated. Name-spacing across JS and CSS can help one trace behaviors to the controlling code faster and with greater accuracy. We open them in the browser (`bin/xhi install && google-chrome ex*.html`) and use the developer tools to see this in practice.\n\nWhen we view Example 1 (`ex01.html`) we can open the browser development tools (press `<shift>-<ctrl>-i` or `<shift>-<cmd>-i` on a Mac), type `ex01` into the JavaScript console and press `<return>` to inspect that value. We see that this single variable that contains our entire application. When we enter `ex02` we see that it is `undefined`. When we visit the Example 2 (`ex02.html`) instead we see that `ex01` is `undefined` and `ex02` contains our app code using a similar process.\n\nWe also name-space our CSS classes to avoid collisions. When we inspect the HTML of the Example 1 app we see that nearly all classes start with an `ex01-` prefix. When we inspect Example 2 tab we find the prefix is `ex02-`. As with the JavaScript name-spacing, the prefixes are hierarchical. For example, the `ex02-_lb_` class was generated for use by the `ex02-_lb_` module. During the build process selectors are shortened along with property values as long as they use the property-name structure. For example, `ex02-_shell_title_underscore_` will compress to something like `ex02-jp`.\n\n---\n## Using an upstream source\nA good way to integrate the `hi_score` repository is to use it as a `git` upstream source. One may then create new application using the `hi_score` infrastructure without missing upstream improvements or bug fixes.\n\nFirst create a new empty repository on Github and copy the `ssh` repository URL, which should look similar to `git@github.com:<user>/<repo_name>` and then proceed as below:\n\n```bash\n  # Create and use Github directory\n  mkdir -p ~/Github && cd ~/Github\n\n  # Set up variables - change these as needed\n  _app_name='paw'\n  _git_user='mmikowski'\n  _repo_name='myproject'\n\n  # Clone the empty repository\n  git clone \"git@github.com:${_git_user}/${_repo_name}\"\n  cd \"${_repo_name}\"\n\n  # Create master branch\n  touch \"README.${_app_name}.md\" # Add app specific docs here\n  git add .\n  git commit -m \"First commit for ${_repo_name}\"\n  git push\n\n  # Verify origin\n  git remote -v\n  # origin  git@github.com:<user>/<repo_name>.git (fetch)\n  # origin  git@github.com:<user>/<repo_name>.git (push)\n\n  # Add upstream repository\n  git remote add upstream git@github.com:mmikowski/hi_score.git\n\n  # Verify upstream\n  git remote -v\n  # origin    git@github.com:<user>/<repo_name>.git (fetch)\n  # origin    git@github.com:<user>/<repo_name>.git (push)\n  # upstream  git@github.com:mmikowski/hi_score.git (fetch)\n  # upstream  git@github.com:mmikowski/hi_score.git (push)\n\n  # Merge changes from upstream and push to origin\n  git fetch -a --prune upstream\n  git merge --allow-unrelated-histories upstream/master\n  git push\n```\n\nOne can delete all the example apps (`tb02`, `ex01`, `ex02`) from the project if they get in the way. However we recommend retaining at least `tb02` for reference because it will continue to be refined along with the `hi_score` project. One can refresh upstream at any time as shown below.\n\n```bash\n  # Refresh view of branches\n  git fetch -a --prune\n\n  # Pull latest master or dev branch\n  git checkout master\n  git pull\n\n  # Create a new branch to test merge\n  git checkout -b upstream-check\n\n  # Refresh view of upstream and test merge\n  git fetch -a --prune upstream\n  git merge --no-commit upstream/master\n```\n\nWe recommend running `bin/xhi install,setup` after any such merge.\n\n---\n## Towers of Babel\nIf we want to create a single page web application these days there is no shortage of help. Developers are lured into using a starter project which we will call a **Tower of Babel**. Typically these projects include a not-yet-abandoned SPA framework (maybe React, Vue, Angular, Aurelia or Ext.js) along with a static CSS compiler (like SASS or LESS or Stylus or SCSS), a run-time CSS manager (like BootStrap), a JavaScript compiler (typically Babel with JSX and Typescript and ES5.2), a build system (like Brunch or Webpack or Parcel) so on and ad-nauseum. This requires a sophisticated management server orchestrate the numerous cross-dependencies and transpiles. There are a few guarantees beside the system will be *Magic*.\n\nSorry Gandalf but we don't mean *Magic* in a good way. Sure, we'll be able to create that sample-TODO-application-designed-to-impress-the-CTO in record time because of the built-in-demo-on-rails. But once one moves away from the demo even a little bit, things tend to go south fast. The build path from source code to the rendered HTML + CSS + JavaScript (**HCJ**) is so complex that it's impossible for a human to trace. When it breaks - and it will - all that *Magic* becomes *Evil Curses*. That's because these **Tower of Babel** solutions have traded HTML + CSS + Javascript for a Mötley Crüe of transpiled languages that are often larger, more numerous, harder to learn, poorly documented, poorly integrated, and much easier to break.  Problems that should be easy to solve - like adding an app to share resources - can be effectively impossible.\n\n`hi_score` is designed to avoid the [Tower of Babel](#towers-of-babel), automate processes **around** the **HCJ**, and help the developers continuously improve their skills and understanding on the **core technologies** of web apps. We hope you like it.\n\n---\n## Prerequisites\n### Linux, Ubuntu or Debian Based\nWhen using Ubuntu Linux 16.04+ or a derivative -- such a Linux Mint, Kubuntu, Xubuntu, Lubuntu, or similar -- ensure the following libraries are installed. Run the attached commands one at a time to ensure all prerequisites are met.\n\n```\n  # Install required libraries\n  sudo apt install build-essential git \\\n    libfile-slurp-perl liblist-moreutils-perl \\\n    net-tools openssh-server pandoc pandoc-citeproc \\\n    unzip zip;\n\n  # Install recommended libraries\n  sudo apt install apt-file htop kdiff3 \\\n    mysql-client mysql-server \\\n    meld ppa-purge sysstat vim-gtk vim-nox vim-syntax-gtk\n\n  # Install nodejs\n  curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -\n  sudo apt-get install -y nodejs\n```\n\nReturn to [Quick Start](#quick-start)\n\n### Linux: Other\nOther Linux distributions should generally work as long as the same libraries can be installed as with Ubuntu. With Fedora 30, for example, the following should be pretty close.\n\n```bash\n  yum install gcc gcc-c++ make openssl-devel\n\n  # Now make sure the perl libraries and node.js 10+ is installed\n```\n\nSee [this guide][_06] for NodeJS package installation on other Linux distros. Here is a more [generic guide][_07] for Kubuntu and Ubuntu.\n\nReturn to the [Quick Start](#quick-start)\n\n### Macintosh Prerequisites\nMacOS Catalina is reported to work with the following commands:\n\n1. Install [NodeJS][_07A]\n\n```bash\n  # Install Pandoc\n  brew install pandoc\n  \n  # Install cpanm\n  cpan App::cpanminus\n  \n  # Install CPAN modules\n  cpanm Getopt::Simple File::Slurp\n```\n\nAnother path is to use Parallels or VMFusion to import the [Virtual Appliance vmx.zip][_42] file (unzip this file before use). VirtualBox also will work but does not integrate as well to MacOS.\n\n### Windows 10 Prerequisites\nIn theory, the Windows Subsystem for Linux running an Ubuntu distro should work as with the prerequisites [listed above](#linux-ubuntu-or-debian-based). However, we haven't tested it. One may also use the virutal appliance detailed above.\n\nReturn to the [Quick Start](#quick-start)\n\n### Virtual Appliance Prerequisites\nDownload the latest [latest virtual appliance][_42] to try `hi_score` by running a host in a virtual machine.  Pick the latest `ova2` image for virtual box, and the latest `vmx.zip` image for VMware or Parallels.  The login and password are `hi_score`.\n\n![Virtual_appliance][_0E]\n\nAfter signing in, change the password for safety, and upgrade the software to the latest security patches. Open a terminal and enter the following lines, waiting for each command to complete before proceeding to the next.\n\n```bash\n  sudo apt update\n  sudo apt upgrade\n  sudo apt dist-upgrade\n  reboot\n```\n\nReturn to the [Quick Start](#quick-start)\n\n---\n## Reference notes\n### Browser compatibility\nOur baseline compatibility is IE9+. Those supporting IE 8 have our sympathy.\n\n### Deployment platform\nThe server component of **hi\\_score** is designed to run on industry-standard\nhardware, cloud instances like Amazon EC2, and containers. Our server platform\nis Ubuntu 16.04 LTS. Later version of Ubuntu and other distributions should\nwork well.\n\n### Code Style\nWe use the code style presented in [Single Page Web Applications - JavaScript end-to-end][_00] (see reviews on [Amazon][_02]) in the upcoming 2nd edition. The [full code standard][_04] is found in the `docs` directory.\n\n### IDE Configuration\nWe provide configs for JetBrain's IDE IntelliJ or Webstorm in the repository.  Other IDEs will work fine, but you will need to manually adjust them to support the code style. One should only need to do this once per IDE and then it can be added to the repository. Contributions for VSCode, VIM, and other environments are welcome.\n\n\n## Contribute\nWhile `hi_score` is opinionated, it is also modular and designed for change. For example, the `bin/xhi` tool is easily extended by dropping a short module into the the `lib/` directory. The architecture and code style docs used by `bin/xhi` are easily edited in the `docs/` directory. Developers are encouraged to add vendor libraries and patches [as needed][_01]. Any improvements or suggestions are welcome through the [issues tracker][_29].  Pull requests are appreciated!\n\n## Release Notes\n### Copyright (c)\n2016 - 2019 Michael S. Mikowski (mike[dot]mikowski[at]gmail[dotcom])\n\n### License\nMIT\n\n### Version 0.0.x\n- (x) Initial preparation\n\n### Version 0.1.x\n- (x) Library updates\n\n### Version 0.2.x\n- (x) Regression and integration testing\n- (x) Rudimentary sample app\n\n### Version 0.3.x\n- (x) Add code coverage\n- (x) Replace `getDeepMapVal` and `setDeepMapVal` with more powerful and tested `getStructData` and `setStructData`\n- (x) Updates to `xhi/01_util.js`\n\n### Version 0.4.x\n- (x) Replace `jscoverage` with much more complete and recent `istanbul`\n- (x) Add `cast` routines and detail their use\n- (x) Consolidate utilities to increase coverage\n- (x) Update lite-box using `cast` methods\n\n### Version 0.5.x\n- (x) Add `jsdom` to expand testing to modules that use jQuery\n- (x) Continue regression test expansion\n- (x) Rationalize libraries\n- (x) Add lite-box regression tests\n\n### Version 0.6.x\n- (x) Remove vendor code from repo and auto-copy on install\n- (x) Add native utils `makeThrottleFn` and `makeDebounceFn`\n- (x) Add links to revised code style guides\n- (x) Replace `install` script with `prep-libs` (v0.6.17+)\n\n### Version 0.7.x\n- (x) Move to constructor approach to easily create multiple concurrent name-spaced apps using the common xhi core\n- (x) Update index page to illustrate\n- (x) Make example app less trivial\n- (x) Number code library level\n\n### Version 0.8.x\n- (x) Work on build system\n- (x) Unify shell scripts nomenclature\n- (x) Add constructor where only selected components are added\n- (x) Add dependency levels for xhi libs\n\n### Version 0.9.x\n- (x) Add distribution build system `npm run buildify`\n- (x) Add utilities and tests\n\n### Version 1.0.x\n- (x) Initial feature complete\n- (x) Add utils and tests\n\n### Version 1.1.x\n- (x) Rename `npm run prep-libs` to `npm run setup`\n- (x) Rename `npm run cover`     to `npm run coverage`\n- (x) Rename `npm run covera`    to `npm run publish-coverage`\n- (x) Rename `npm run buildify`  to `npm run make`\n- (x) Syntax refinements\n- (x) Update libs, add express\n- (x) Add utils and tests\n\n### Version 1.2.x\n- (x) Convert bin/setup in JavaScript\n- (x) Configure setup completely in package.json\n\n### Version 1.3.x\n- (x) Replace JSLint with ESLint for ES2015 support\n- (x) Convert from `var` => `let`\n- (x) Implement `bin/xhi` tool development capabilities\n  - (x) 00 xhi help\n  - (x) 01 install\n  - (x) 02 setup\n  - (x) 03 design\n  - (x) 04 dev\\_pull\n  - (x) 05 dev\\_upgrade\n  - (x) 06 dev\\_start\n  - (x) 07 dev\\_test\n  - (x) 08 dev\\_lint\n  - (x) 09 dev\\_cover\n  - (x) 10 dev\\_commit\n  - (x) 11 build\n  - (x) 12 publish\n  - (x) 13 dev\\_restart\n  - (x) 14 dev\\_stop\n- (x) Tool enhancements\n  - (x) `bin/xhi setup`     : Implement env dependencies and `lib/xhi_state.json`\n  - (x) `bin/xhi setup`     : Auto-create `lib/xhi_state.json` if required\n  - (x) `bin/xhi build`     : Create build directory like `dist/\\<build-number\\>`\n  - (x) `bin/xhi build`     : Link `dist/latest` to latest build\n  - (x) `bin/xhi build`     : Do not auto-increment build until next commit\n  - (x) `bin/xhi dev_cover` : Move to `dist/\\<build-number\\>` directories\n- (x) Update all NPM lifecycle scripts to use `bin/xhi`\n  - (x) `\"help\" : \"bin/xhi help\"`\n  - (x) `\"make\" : \"bin/xhi make\"`\n  - (x) `\"setup\": \"bin/xhi setup\"`\n  - (x) `\"test\" : \"bin/xhi test\"`\n- (x) Move build manifest to `package.json`\n- (x) Implement build numbers and link last build to `latest`\n- (x) Move coverage reports into build directories\n- (x) Store build and env state in `lib/xhi_state.json`\n- (x) Create and update virtualBox [OVA for development][_42]\n- (x) Create and update Parallels [VMX][_42] image\n- (x) Replace JSLint setting from per-file to config/jslint.conf\n- (x) Expect browser env for js/xhi libraries\n- (x) Fix `js/xhi/01_util.js::makeSeriesMap` across timezones\n- (x) Update code standard\n- (x) Create AMI image for deployment\n\n### Versions 1.4.x\n2017-10-10 through 2019-01-01\n- (x) Add `Typebomb 2` example application\n- (x) Convert build system to JavaScript using `package.json` as manifest\n- (x) Enhance `js/xhi` libs and docs\n- (x) Expand and enhance utility functions (`xhi/01_util.js`)\n- (x) Expand doc for `bin/xhi help build`\n- (x) Fix `bin/xhi dev_cover` dependency resolution\n- (x) Fix `superpack` to be more reliable\n- (x) Fix font path errors with patch for font-awesome CSS\n- (x) Revise code standards and images\n- (x) Update AMI image for deployment and add screen shot\n- (x) Update README with images\n- (x) Add symbol renaming to avoid conflicts\n      (jQuery => xhiJQ, pcss => xhiCSS)\n- (x) Replace JSLint with ESLint and `package.json` for config\n\n### Versions 1.5.x\n2019-01-01 through 2019-06-15\n- (x) Add capabilities and documentation to `js/xhi/01_utils.js`\n- (x) Update all libs to latest\n- (x) Revised templates per latest best practice\n- (x) Include event pub-sub system in the `js/xhi/03_model.js` instance.\n  This provides an integrated event log system for use in regression tests\n\n### Version 1.6.x\n2019-06-16 through 2019-07-25\n- (x) Significantly updated documentation.\n- (x) Move `lib/xhi_state.json` to  `run/xhi_state.json`\n- (x) Update quick reference, VDG, and code standard\n- (x) Updated docs, no code changes\n- (x)  Added check for GIT when using `bin/xhi`. NPM installs are not yet supported.\n\n### Version 1.7.x\n2019-07-25 ongoing\n\n#### 1.7.0\n- (x) Enhance utility capabilities\n  - (x) Replace makeDeepKeyList  with more-useful makeDeepData\n  - (x) Make getStructData more reliable for named objects\n- (x) Update test to match new capabilities\n- (x) Improve default symbol contents\n- (x) Fix ex01 and ex02 example apps to show again\n- (x) Update docs to current practices\n\n#### 1.7.1\n- (x) Update js code standard to recent developments\n- (x) Fix js code standard to render correctly\n- (x) Update dependent library (`bin/xhi dev_upgrade`)\n\n#### 1.7.2\n- (x) `server/index.js` Replace http-server with express server\n       Supports .env, directory listing\n- (x) `package.json` Add cloud storage libs, update libs to lastest\n- (x) `bin/make_doc` Improve techniques used in bash utility\n- (x) `doc/js-code-standard.adoc` Add section on value passing to\n- (x) `xhi/02_data.js`        Remove no-auth hack from\n- (x) `xhi/03_model.js`       Extend event publish capability\n- (x) `xhi/05_02_css_base.js` Remove unused code from CSS module\n- (x) `lib/xhi_06`, `lib/xhi_13` Adjust to start and stop `server/index.js`\n\n#### 1.7.3\n- (x) `js/app-tb02/tb02.07_shell.js` Fix audio on chrome over http by\n      appending audio elments to body.\n- (x) `js/xhi/01_util` and tests: replace `makePadNumStr` to `makePadStr`\n- (x) Eslint fixes in ~20 files for redundant global symbols\n\n#### 1.7.4 - 1.7.7\n- (x) `doc/spa-manuscript-v2` Add wip for maniscript for **Single Page Web\n      Applications** *JavaScript End-to-end - Second Edition.*\n- (x) Improve diagnostics when superpack install is missing libs\n\n#### 1.7.8 - 1.7.9\n- (x) Improve correctness of makeThrottleFn and makeDebounceFn\n\n#### 1.7.10 - 1.7.12\n- (x) `js/xhi/01_util` Add return map option to method `_makeTmpltStr_`.\n  This reports the keys actually used in a given operation through the map\n  reference that is passed. If no map reference is passed, this function\n  operates exactly as before.\n\n### Backlog\n- (i) Improve CLI presentation of `bin/xhi design` reference by searching and using platform viewers\n- (i) Add generator to create new apps cleanly and very quickly\n- (i) Update tb02 libs to latest best practice (events)\n- (i) Update virtual appliance\n- (i) Add CSS => PowerCSS parser\n- (o) Convert SuperPack Perl to JS and use `package.json` config\n- (o) Add UUID snippet from Git to build number, for example, `000025-1c002d`\n- (o) Test load times using remote server\n- (o) Implement `bin/xhi deploy`\n- (o) Push to NPM using `bin/xhi publish`\n---\n\n## End\n[_0A]:img/hi_score.png\n[_0B]:doc/images/tb2-001.png\n[_0BA]:https://michaelmikowski.com/typebomb/index.html\n[_0C]:doc/images/architecture.png\n[_0D]:doc/images/syntax.png\n[_0E]:img/hi_score-appliance.png\n[_0F]:http://www.drdobbs.com/joltawards/jolt-awards-the-best-books/240169070?pgno=5\n[_00]:https://www.manning.com/books/single-page-web-applications\n[_01]:http://mmikowski.github.io/no-frameworks\n[_02]:http://www.amazon.com/dp/1617290750\n[_04]:https://github.com/mmikowski/hi_score/blob/master/doc/js-code-standard.adoc\n[_05]:http://mmikowski.github.io/type-casts/\n[_06]:https://nodejs.org/en/download/package-manager/\n[_07]:https://docs.google.com/spreadsheets/d/1kLIYKYRsan_nvqGSZF-xJNxMkivH7uNdd6F-xY0hAUM/edit#gid=598969125\n[_07A]:https://nodejs.org/en/download/package-manager/#macos\n[_08]:https://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/\n[_09]:https://coveralls.io/github/mmikowski/hi_score\n[_10]:http://jquery.org\n[_11]:http://powercss.org\n[_12]:https://www.npmjs.com/package/jquery.event.dragscroll\n[_13]:https://www.npmjs.com/package/jquery.event.gevent\n[_14]:https://www.npmjs.com/package/jquery.event.ue\n[_15]:https://www.npmjs.com/package/jquery.scrolli\n[_16]:https://www.npmjs.com/package/jquery.urianchor\n[_17]:https://www.npmjs.com/package/taffydb\n[_18]:https://www.npmjs.com/package/coveralls\n[_19]:https://www.npmjs.com/package/istanbul\n[_20]:https://www.npmjs.com/package/jsdom\n[_21]:https://www.npmjs.com/package/eslint\n[_22]:https://www.npmjs.com/package/nodeunit\n[_23]:https://www.npmjs.com/package/node-inspector\n[_24]:https://www.npmjs.com/package/uglifycss\n[_25]:https://www.npmjs.com/package/uglifyjs\n[_28]:https://github.com/mmikowski/hi_score\n[_29]:https://github.com/mmikowski/hi_score/issues\n[_30]:https://www.npmjs.com/package/font-awesome\n[_31]:https://www.npmjs.com/package/open-sans-fontface\n[_32]:https://www.npmjs.com/package/sprintf-js\n[_33]:https://www.npmjs.com/package/mysql2\n[_34]:https://www.npmjs.com/package/mongodb\n[_35]:https://www.npmjs.com/package/clusterjs\n[_36]:https://www.npmjs.com/package/express\n[_37]:https://www.npmjs.com/package/websocket\n[_38]:https://docs.npmjs.com/misc/scripts\n[_42]:http://michaelmikowski.com/ova/\n[_43]:https://www.typescriptlang.org/\n[_44]:https://flow.org/en/docs/getting-started/\n","maintainers":[{"name":"mikem","email":"mike.mikowski@gmail.com"}],"time":{"modified":"2022-06-18T20:37:13.903Z","created":"2016-02-18T01:46:41.078Z","0.0.1":"2016-02-18T01:46:41.078Z","0.0.2":"2016-02-18T02:07:13.542Z","0.0.4":"2016-02-29T05:41:35.374Z","0.0.5":"2016-05-08T01:56:12.312Z","0.0.6":"2016-05-08T02:10:50.187Z","0.0.9":"2016-06-12T06:06:22.935Z","0.2.0":"2016-09-17T05:26:23.345Z","0.2.1":"2016-09-17T17:52:00.227Z","0.2.3":"2016-10-10T03:01:57.191Z","0.2.4":"2016-10-10T19:19:52.863Z","0.2.6":"2016-10-11T05:50:23.696Z","0.3.0":"2016-10-11T20:40:18.780Z","0.3.2":"2016-10-12T20:09:24.605Z","0.3.3":"2016-10-12T20:52:12.855Z","0.3.4":"2016-10-12T22:11:21.609Z","0.3.5":"2016-10-12T22:24:13.920Z","0.3.6":"2016-10-12T22:43:03.690Z","0.4.0":"2016-10-13T22:52:31.639Z","0.4.2":"2016-10-13T23:25:45.840Z","0.4.3":"2016-10-14T05:00:57.509Z","0.4.4":"2016-10-14T21:03:19.037Z","0.4.5":"2016-10-17T22:57:29.899Z","0.5.0":"2016-10-20T17:52:35.477Z","0.5.1":"2016-10-21T00:04:09.431Z","0.5.3":"2016-10-25T18:48:24.374Z","0.5.4":"2016-10-26T22:40:42.775Z","0.5.5":"2016-10-26T22:50:27.094Z","0.5.6":"2016-10-27T18:09:06.532Z","0.5.7":"2016-10-28T00:27:47.319Z","0.5.8":"2016-10-28T21:04:47.937Z","0.5.9":"2016-10-29T05:28:04.719Z","0.5.10":"2016-10-29T23:53:47.633Z","0.6.0":"2016-11-01T08:26:12.166Z","0.6.1":"2016-11-01T18:02:31.448Z","0.6.2":"2016-11-01T18:18:33.169Z","0.6.3":"2016-11-01T18:24:58.568Z","0.6.4":"2016-11-02T19:37:17.932Z","0.6.6":"2016-11-02T20:29:43.558Z","0.6.7":"2016-11-02T21:27:05.076Z","0.6.8":"2016-11-04T02:40:04.560Z","0.6.9":"2016-11-17T21:07:11.629Z","0.6.10":"2016-11-17T21:30:01.992Z","0.6.11":"2016-11-17T21:42:58.682Z","0.6.12":"2016-11-17T21:49:09.598Z","0.6.15":"2016-11-17T22:53:08.584Z","0.6.17":"2016-11-17T23:17:02.158Z","0.6.18":"2016-11-17T23:21:08.073Z","0.6.19":"2016-11-17T23:34:11.708Z","0.6.20":"2016-11-18T21:54:53.614Z","0.6.21":"2016-11-19T22:52:00.247Z","0.6.22":"2016-11-20T20:19:04.085Z","0.6.24":"2016-11-23T22:24:20.016Z","0.6.25":"2016-11-24T21:58:04.284Z","0.6.26":"2016-11-27T03:43:56.386Z","0.6.27":"2016-11-27T19:24:08.036Z","0.6.28":"2016-11-28T19:44:14.072Z","0.7.0":"2016-11-28T22:39:40.803Z","0.7.1":"2016-11-28T22:43:50.493Z","0.7.3":"2016-11-29T00:07:08.557Z","0.7.4":"2016-11-29T19:34:19.833Z","0.7.5":"2016-11-30T04:41:33.527Z","0.7.6":"2016-12-02T05:16:18.888Z","0.7.7":"2016-12-02T05:41:44.229Z","0.7.8":"2016-12-02T08:13:13.256Z","0.7.9":"2016-12-05T23:57:05.847Z","0.8.0":"2016-12-09T21:17:08.900Z","0.8.1":"2016-12-09T23:53:19.034Z","0.8.2":"2016-12-11T07:03:40.889Z","0.8.3":"2016-12-12T03:33:35.040Z","0.8.5":"2016-12-12T20:48:47.754Z","0.8.6":"2016-12-14T21:01:11.825Z","0.8.7":"2016-12-14T23:55:39.977Z","0.8.8":"2016-12-16T18:21:46.237Z","0.9.0":"2017-01-23T22:58:50.522Z","0.9.1":"2017-02-03T20:58:59.818Z","0.9.2":"2017-02-03T23:53:46.838Z","0.9.3":"2017-02-05T09:05:39.376Z","0.9.4":"2017-02-07T05:24:21.293Z","0.9.5":"2017-02-09T06:23:19.309Z","0.9.6":"2017-02-10T21:29:15.263Z","0.9.7":"2017-02-10T21:39:34.048Z","0.9.8":"2017-02-23T03:59:15.876Z","0.9.9":"2017-02-23T18:14:38.481Z","1.0.0":"2017-02-28T19:52:18.828Z","1.0.1":"2017-03-08T07:37:01.055Z","1.0.2":"2017-03-16T17:43:43.739Z","1.1.0":"2017-03-20T01:11:27.696Z","1.1.1":"2017-03-21T04:18:53.724Z","1.1.2":"2017-04-04T04:49:44.843Z","1.1.3":"2017-04-15T04:32:01.351Z","1.1.4":"2017-04-19T03:15:47.520Z","1.1.5":"2017-04-29T00:07:24.542Z","1.1.6":"2017-05-01T22:01:29.374Z","1.1.7":"2017-05-01T22:35:50.987Z","1.1.8":"2017-05-17T08:21:55.511Z","1.1.9":"2017-06-07T22:54:34.362Z","1.1.10":"2017-06-23T23:17:57.877Z","1.1.12":"2017-06-27T01:43:13.034Z","1.1.14":"2017-06-28T19:41:27.341Z","1.2.0":"2017-07-06T01:44:33.154Z","1.2.1":"2017-07-06T01:49:13.612Z","1.2.2":"2017-07-08T06:05:44.576Z","1.2.3":"2017-07-08T06:29:50.617Z","1.2.4":"2017-07-10T22:27:37.033Z","1.2.6":"2017-07-14T18:19:39.337Z","1.2.7":"2017-07-17T19:55:27.154Z","1.2.8":"2017-07-19T17:02:51.752Z","1.2.10":"2017-07-20T22:46:44.845Z","1.3.0":"2017-09-10T19:29:26.704Z","1.3.1":"2017-09-10T19:47:05.613Z","1.3.2":"2017-09-10T22:04:19.594Z","1.3.4":"2017-09-12T02:05:19.503Z","1.3.6":"2017-09-13T02:03:48.820Z","1.3.7":"2017-09-14T19:29:30.915Z","1.3.8":"2017-09-15T00:33:11.879Z","1.3.9":"2017-09-18T02:17:13.391Z","1.3.11":"2017-09-30T06:31:10.448Z","1.4.0":"2017-10-02T23:35:49.175Z","1.4.1":"2017-10-03T00:22:48.640Z","1.4.2":"2017-10-03T04:45:28.730Z","1.4.3":"2017-10-03T05:54:21.526Z","1.4.5":"2017-10-05T01:15:36.129Z","1.4.6":"2017-10-05T21:34:16.899Z","1.4.7":"2017-10-06T02:27:04.553Z","1.4.8":"2017-10-20T22:08:34.909Z","1.4.9":"2017-10-23T00:14:06.355Z","1.4.10":"2017-10-25T02:15:23.555Z","1.4.11":"2017-10-26T04:36:48.267Z","1.4.12":"2017-11-07T06:37:50.747Z","1.4.13":"2017-11-07T16:18:33.307Z","1.4.14":"2017-11-10T03:04:05.440Z","1.4.15":"2017-11-13T04:23:06.968Z","1.4.16":"2017-11-13T19:31:52.171Z","1.4.17":"2017-11-14T18:41:01.732Z","1.4.18":"2017-12-01T19:54:04.721Z","1.4.19":"2017-12-02T20:35:10.263Z","1.4.21":"2018-03-07T20:09:03.182Z","1.4.22":"2018-03-27T02:35:06.831Z","1.4.23":"2018-04-21T23:26:08.376Z","1.4.24":"2018-04-25T23:48:01.169Z","1.4.25":"2018-04-29T00:32:33.110Z","1.4.26":"2018-06-03T23:18:36.072Z","1.4.27":"2018-07-10T23:59:52.112Z","1.5.0":"2019-05-15T01:11:47.622Z","1.5.1":"2019-05-15T01:51:42.757Z","1.6.0":"2019-06-06T03:29:18.248Z","1.6.1":"2019-06-18T03:52:30.761Z","1.6.2":"2019-06-18T04:16:16.083Z","1.6.3":"2019-06-18T04:48:33.691Z","1.6.4":"2019-06-18T15:47:42.533Z","1.6.5":"2019-06-18T21:53:37.320Z","1.6.6":"2019-06-19T23:02:03.442Z","1.6.7":"2019-06-19T23:25:34.562Z","1.6.8":"2019-06-19T23:34:38.881Z","1.6.9":"2019-06-20T00:09:38.048Z","1.6.10":"2019-06-20T00:13:25.434Z","1.6.11":"2019-06-30T23:45:05.905Z","1.6.12":"2019-07-08T04:18:04.460Z","1.6.14":"2019-07-09T02:58:59.696Z","1.7.0":"2019-07-28T01:05:51.072Z","1.7.1":"2019-08-22T03:15:25.305Z","1.7.2":"2019-09-01T22:25:02.146Z","1.7.3":"2019-09-17T02:36:07.774Z","1.7.4":"2019-11-16T02:15:37.988Z","1.7.5":"2019-11-16T02:28:41.629Z","1.7.6":"2019-12-23T01:57:49.990Z","1.7.7":"2019-12-23T02:05:36.741Z","1.7.8":"2020-04-17T00:02:45.206Z","1.7.9":"2020-09-17T00:52:33.268Z","1.7.10":"2020-11-02T00:39:53.203Z","1.7.12":"2021-09-17T23:29:11.631Z"},"homepage":"https://github.com/mmikowski/hi_score","keywords":["spa","library","libraries","single","page","web","application","end-to-end"],"repository":{"type":"git","url":"git+https://github.com/mmikowski/hi_score.git"},"author":{"name":"Michael S. Mikowski","email":"mike.mikowski@gmail.com"},"bugs":{"url":"https://github.com/mmikowski/hi_score/issues"},"license":"MIT","readmeFilename":"README.md"}