├── .codeclimate.yml ├── .editorconfig ├── .eslintrc.js ├── .gitattributes ├── .github ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING ├── ISSUE_TEMPLATE └── PULL_REQUEST_TEMPLATE ├── .gitignore ├── .prettierrc.js ├── .travis.yml ├── CHANGELOG.md ├── LICENSE ├── README.md ├── package-lock.json ├── package.json └── src ├── midievents.js └── midievents.mocha.js /.codeclimate.yml: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by a `metapak` 2 | # module. Do not change it elsewhere, changes would 3 | # be overridden. 4 | engines: 5 | eslint: 6 | enabled: true 7 | 8 | ratings: 9 | paths: 10 | - "src/*.js" 11 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by a `metapak` 2 | # module. Do not change it elsewhere, changes would 3 | # be overridden. 4 | 5 | # EditorConfig is awesome: http://EditorConfig.org 6 | 7 | # top-most EditorConfig file 8 | root = true 9 | 10 | # Unix-style newlines with a newline ending every file 11 | [*] 12 | end_of_line = lf 13 | insert_final_newline = true 14 | 15 | # Matches multiple files with brace expansion notation 16 | # Set default charset 17 | # 2 space indentation 18 | [*.{js,css}] 19 | charset = utf-8 20 | indent_style = space 21 | trim_trailing_whitespace = true 22 | indent_size = 2 23 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: 'eslint:recommended', 3 | parserOptions: { 4 | sourceType: 'script', 5 | modules: true, 6 | }, 7 | env: { 8 | es6: true, 9 | node: true, 10 | jest: true, 11 | mocha: true, 12 | }, 13 | plugins: ['prettier'], 14 | rules: { 15 | 'prettier/prettier': 'error', 16 | }, 17 | }; 18 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.md text eol=lf 2 | *.html text eol=lf 3 | *.js text eol=lf 4 | -------------------------------------------------------------------------------- /.github/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | Be kind, except if i behave like an asshole, 4 | if so, tell me by linking to this file. 5 | 6 | I try hard to automate things so that you cannot 7 | create noises without really willing to do so. 8 | 9 | This is why i'll just delete issues/comments 10 | making be sad. 11 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING: -------------------------------------------------------------------------------- 1 | Contributing to this project requires you to be 2 | a gentleman. 3 | 4 | By contributing you must agree with publishing your 5 | changes int the same license than the actual code. 6 | 7 | You will find the license in the LICENSE file at 8 | the root of this repository. 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE: -------------------------------------------------------------------------------- 1 | ## Issue 2 | 16 | 17 | I'm a gentledev i: 18 | - [ ] fully read the README recently 19 | - [ ] searched for existing issues 20 | - [ ] checked i'm up to date with the latest version of the project 21 | 22 | ### Expected behavior 23 | 24 | ### Actual behavior 25 | 26 | ### Steps to reproduce the behavior 27 | 28 | ### Debugging informations 29 | - `node -v` result: 30 | ``` 31 | 32 | ``` 33 | 34 | - `npm -v` result: 35 | ``` 36 | 37 | ``` 38 | If the result is lower than 6.9.5, there is 39 | poor chances i even have a look to it. Please, 40 | use the last [NodeJS LTS version](https://nodejs.org/en/). 41 | 42 | ## Feature request 43 | 54 | 55 | ### Feature description 56 | 57 | ### Use cases 58 | 59 | - [ ] I will/have implement the feature 60 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE: -------------------------------------------------------------------------------- 1 | 10 | 11 | Fixes # 12 | 13 | ### Proposed changes 14 | - 15 | - 16 | 17 | 18 | 19 | ### Code quality 20 | - [ ] I made some tests for my changes 21 | - [ ] I added my name in the 22 | [contributors](https://docs.npmjs.com/files/package.json#people-fields-author-contributors) 23 | field of the package.json file 24 | 25 | ### License 26 | To get your contribution merged, you must check the following. 27 | 28 | - [ ] I read the project license in the LICENSE file 29 | - [ ] I agree with publishing under this project license 30 | 31 | 45 | ### Join 46 | - [ ] I wish to join the core team 47 | - [ ] I agree that with great powers comes responsibilities 48 | - [ ] I'm a nice person 49 | 50 | My NPM username: 51 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by a `metapak` 2 | # module. Do not change it elsewhere, changes would 3 | # be overridden. 4 | 5 | # Logs 6 | logs 7 | *.log 8 | npm-debug.log* 9 | 10 | # Runtime data 11 | pids 12 | *.pid 13 | *.seed 14 | 15 | # Directory for instrumented libs generated by jscoverage/JSCover 16 | lib-cov 17 | 18 | # Coverage directory used by tools like istanbul 19 | coverage 20 | 21 | # nyc test coverage 22 | .nyc_output 23 | 24 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 25 | .grunt 26 | 27 | # node-waf configuration 28 | .lock-wscript 29 | 30 | # Compiled binary addons (http://nodejs.org/api/addons.html) 31 | build/Release 32 | 33 | # Dependency directories 34 | node_modules 35 | jspm_packages 36 | 37 | # Optional npm cache directory 38 | .npm 39 | 40 | # Optional REPL history 41 | .node_repl_history 42 | 43 | # Coveralls key 44 | .coveralls.yml 45 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | semi: true, 3 | printWidth: 80, 4 | singleQuote: true, 5 | trailingComma: 'es5', 6 | proseWrap: 'always', 7 | }; 8 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by a `metapak` 2 | # module. Do not change it elsewhere, changes would 3 | # be overridden. 4 | 5 | language: node_js 6 | node_js: 7 | - 6 8 | - 6.9.5 9 | - 7 10 | - 8 11 | - 9 12 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 2 | # [2.0.0](https://github.com/nfroidure/midievents/compare/v1.0.1...v2.0.0) (2018-04-29) 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright © 2017 Nicolas Froidure 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the “Software”), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [//]: # ( ) 2 | [//]: # (This file is automatically generated by a `metapak`) 3 | [//]: # (module. Do not change it except between the) 4 | [//]: # (`content:start/end` flags, your changes would) 5 | [//]: # (be overridden.) 6 | [//]: # ( ) 7 | # midievents 8 | > Decode/encode MIDI events. 9 | 10 | [![NPM version](https://badge.fury.io/js/midievents.svg)](https://npmjs.org/package/midievents) 11 | [![Build status](https://secure.travis-ci.org/nfroidure/midievents.svg)](https://travis-ci.org/nfroidure/midievents) 12 | [![Dependency Status](https://david-dm.org/nfroidure/midievents.svg)](https://david-dm.org/nfroidure/midievents) 13 | [![devDependency Status](https://david-dm.org/nfroidure/midievents/dev-status.svg)](https://david-dm.org/nfroidure/midievents#info=devDependencies) 14 | [![Coverage Status](https://coveralls.io/repos/nfroidure/midievents/badge.svg?branch=master)](https://coveralls.io/r/nfroidure/midievents?branch=master) 15 | [![Code Climate](https://codeclimate.com/github/nfroidure/midievents.svg)](https://codeclimate.com/github/nfroidure/midievents) 16 | [![Dependency Status](https://dependencyci.com/github/nfroidure/midievents/badge)](https://dependencyci.com/github/nfroidure/midievents) 17 | 18 | 19 | [//]: # (::contents:start) 20 | 21 | ## What it does 22 | * Decode MIDI events 23 | * Check MIDI events (using `strictMode`) 24 | * Calculate needed buffer to encode MIDI events 25 | * Encode MIDI events 26 | 27 | ## What it doesn't do 28 | * Reading MIDI files. It's the role of the 29 | [MIDIFile project](https://github.com/nfroidure/midifile). 30 | * Playing MIDI files. It's the role of the 31 | [MIDIPlayer project](https://github.com/nfroidure/midiplayer). 32 | 33 | ## Usage 34 | ```js 35 | // Your variable with an ArrayBuffer instance containing your MIDI events 36 | var anyBuffer; 37 | 38 | // Parse MIDI events 39 | var events = []; 40 | var parser = new MIDIEvents.createParser(new DataView(anyBuffer), 0, false); 41 | var event = parser.next(); 42 | 43 | do { 44 | events.push(event); 45 | event = parser.next(); 46 | } while(event); 47 | 48 | // Check bufffer size before encoding 49 | if(anyBuffer.length >= MIDIEvents.getRequiredBufferLength(events)) { 50 | console.log('ok'); 51 | } 52 | 53 | // Encode MIDI events 54 | var destination = new Uint8Array(anyBuffer); 55 | MIDIEvents.writeToTrack(events, destination); 56 | 57 | ``` 58 | 59 | ## Contributing / Testing 60 | Install them and run the following command : 61 | 62 | ```bash 63 | npm install --dev 64 | su npm install grunt-cli -g 65 | grunt test 66 | ``` 67 | 68 | ## Contributing 69 | * Feel free to PR 70 | * If you find MIDI events the library can't read, create a test an do a pull 71 | request. I'll work on it asap. 72 | * Run `npm run` to get a list of useful development commands. 73 | 74 | [//]: # (::contents:end) 75 | 76 | # License 77 | [MIT](https://github.com/nfroidure/midievents/blob/master/LICENSE) 78 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "midievents", 3 | "version": "2.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "JSONStream": { 8 | "version": "1.3.2", 9 | "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", 10 | "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=", 11 | "dev": true, 12 | "requires": { 13 | "jsonparse": "1.3.1", 14 | "through": "2.3.8" 15 | } 16 | }, 17 | "abbrev": { 18 | "version": "1.0.9", 19 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", 20 | "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", 21 | "dev": true 22 | }, 23 | "acorn": { 24 | "version": "5.5.3", 25 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", 26 | "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", 27 | "dev": true 28 | }, 29 | "acorn-jsx": { 30 | "version": "3.0.1", 31 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", 32 | "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", 33 | "dev": true, 34 | "requires": { 35 | "acorn": "3.3.0" 36 | }, 37 | "dependencies": { 38 | "acorn": { 39 | "version": "3.3.0", 40 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", 41 | "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", 42 | "dev": true 43 | } 44 | } 45 | }, 46 | "add-stream": { 47 | "version": "1.0.0", 48 | "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", 49 | "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", 50 | "dev": true 51 | }, 52 | "ajv": { 53 | "version": "5.5.2", 54 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", 55 | "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", 56 | "dev": true, 57 | "requires": { 58 | "co": "4.6.0", 59 | "fast-deep-equal": "1.1.0", 60 | "fast-json-stable-stringify": "2.0.0", 61 | "json-schema-traverse": "0.3.1" 62 | } 63 | }, 64 | "ajv-keywords": { 65 | "version": "2.1.1", 66 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", 67 | "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", 68 | "dev": true 69 | }, 70 | "align-text": { 71 | "version": "0.1.4", 72 | "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", 73 | "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", 74 | "dev": true, 75 | "requires": { 76 | "kind-of": "3.2.2", 77 | "longest": "1.0.1", 78 | "repeat-string": "1.6.1" 79 | } 80 | }, 81 | "amdefine": { 82 | "version": "1.0.1", 83 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", 84 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", 85 | "dev": true 86 | }, 87 | "ansi-escapes": { 88 | "version": "1.4.0", 89 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", 90 | "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", 91 | "dev": true 92 | }, 93 | "ansi-regex": { 94 | "version": "2.1.1", 95 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 96 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 97 | "dev": true 98 | }, 99 | "ansi-styles": { 100 | "version": "2.2.1", 101 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 102 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 103 | "dev": true 104 | }, 105 | "argparse": { 106 | "version": "1.0.10", 107 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 108 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 109 | "dev": true, 110 | "requires": { 111 | "sprintf-js": "1.0.3" 112 | } 113 | }, 114 | "arr-diff": { 115 | "version": "2.0.0", 116 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 117 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 118 | "dev": true, 119 | "requires": { 120 | "arr-flatten": "1.1.0" 121 | } 122 | }, 123 | "arr-flatten": { 124 | "version": "1.1.0", 125 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 126 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 127 | "dev": true 128 | }, 129 | "arr-union": { 130 | "version": "3.1.0", 131 | "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", 132 | "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", 133 | "dev": true 134 | }, 135 | "array-find-index": { 136 | "version": "1.0.2", 137 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", 138 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", 139 | "dev": true 140 | }, 141 | "array-ify": { 142 | "version": "1.0.0", 143 | "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", 144 | "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", 145 | "dev": true 146 | }, 147 | "array-union": { 148 | "version": "1.0.2", 149 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 150 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 151 | "dev": true, 152 | "requires": { 153 | "array-uniq": "1.0.3" 154 | } 155 | }, 156 | "array-uniq": { 157 | "version": "1.0.3", 158 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 159 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 160 | "dev": true 161 | }, 162 | "array-unique": { 163 | "version": "0.2.1", 164 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 165 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", 166 | "dev": true 167 | }, 168 | "arrify": { 169 | "version": "1.0.1", 170 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 171 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 172 | "dev": true 173 | }, 174 | "asn1": { 175 | "version": "0.2.3", 176 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", 177 | "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", 178 | "dev": true 179 | }, 180 | "assert-plus": { 181 | "version": "1.0.0", 182 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 183 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 184 | "dev": true 185 | }, 186 | "async": { 187 | "version": "1.5.2", 188 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", 189 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", 190 | "dev": true 191 | }, 192 | "asynckit": { 193 | "version": "0.4.0", 194 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 195 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 196 | "dev": true 197 | }, 198 | "aws-sign2": { 199 | "version": "0.7.0", 200 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 201 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", 202 | "dev": true 203 | }, 204 | "aws4": { 205 | "version": "1.7.0", 206 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", 207 | "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", 208 | "dev": true 209 | }, 210 | "babel-code-frame": { 211 | "version": "6.26.0", 212 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 213 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 214 | "dev": true, 215 | "requires": { 216 | "chalk": "1.1.3", 217 | "esutils": "2.0.2", 218 | "js-tokens": "3.0.2" 219 | } 220 | }, 221 | "balanced-match": { 222 | "version": "1.0.0", 223 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 224 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 225 | "dev": true 226 | }, 227 | "bcrypt-pbkdf": { 228 | "version": "1.0.1", 229 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", 230 | "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", 231 | "dev": true, 232 | "optional": true, 233 | "requires": { 234 | "tweetnacl": "0.14.5" 235 | } 236 | }, 237 | "bluebird": { 238 | "version": "3.5.1", 239 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 240 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", 241 | "dev": true 242 | }, 243 | "boom": { 244 | "version": "4.3.1", 245 | "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", 246 | "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", 247 | "dev": true, 248 | "requires": { 249 | "hoek": "4.2.1" 250 | } 251 | }, 252 | "brace-expansion": { 253 | "version": "1.1.11", 254 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 255 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 256 | "dev": true, 257 | "requires": { 258 | "balanced-match": "1.0.0", 259 | "concat-map": "0.0.1" 260 | } 261 | }, 262 | "braces": { 263 | "version": "1.8.5", 264 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 265 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 266 | "dev": true, 267 | "requires": { 268 | "expand-range": "1.8.2", 269 | "preserve": "0.2.0", 270 | "repeat-element": "1.1.2" 271 | } 272 | }, 273 | "browser-stdout": { 274 | "version": "1.3.1", 275 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", 276 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", 277 | "dev": true 278 | }, 279 | "buffer-from": { 280 | "version": "1.0.0", 281 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", 282 | "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", 283 | "dev": true 284 | }, 285 | "builtin-modules": { 286 | "version": "1.1.1", 287 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 288 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 289 | "dev": true 290 | }, 291 | "bytewise": { 292 | "version": "1.1.0", 293 | "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz", 294 | "integrity": "sha1-HRPL/3F65xWAlKqIGzXQgbOHJT4=", 295 | "dev": true, 296 | "requires": { 297 | "bytewise-core": "1.2.3", 298 | "typewise": "1.0.3" 299 | } 300 | }, 301 | "bytewise-core": { 302 | "version": "1.2.3", 303 | "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz", 304 | "integrity": "sha1-P7QQx+kVWOsasiqCg0V3qmvWHUI=", 305 | "dev": true, 306 | "requires": { 307 | "typewise-core": "1.2.0" 308 | } 309 | }, 310 | "cachedir": { 311 | "version": "1.2.0", 312 | "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-1.2.0.tgz", 313 | "integrity": "sha512-i3xIKd9U4ov0hWXYo08oJy0YVz0krZ9dbTZQim41xkg0IiScptkAK0UilZ5M1WE3gnWjXAa9+cMtrJ5dM+THbA==", 314 | "dev": true, 315 | "requires": { 316 | "os-homedir": "1.0.2" 317 | } 318 | }, 319 | "caller-path": { 320 | "version": "0.1.0", 321 | "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", 322 | "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", 323 | "dev": true, 324 | "requires": { 325 | "callsites": "0.2.0" 326 | } 327 | }, 328 | "callsites": { 329 | "version": "0.2.0", 330 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", 331 | "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", 332 | "dev": true 333 | }, 334 | "camelcase": { 335 | "version": "1.2.1", 336 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", 337 | "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", 338 | "dev": true, 339 | "optional": true 340 | }, 341 | "camelcase-keys": { 342 | "version": "4.2.0", 343 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", 344 | "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", 345 | "dev": true, 346 | "requires": { 347 | "camelcase": "4.1.0", 348 | "map-obj": "2.0.0", 349 | "quick-lru": "1.1.0" 350 | }, 351 | "dependencies": { 352 | "camelcase": { 353 | "version": "4.1.0", 354 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 355 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", 356 | "dev": true 357 | } 358 | } 359 | }, 360 | "caseless": { 361 | "version": "0.12.0", 362 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 363 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", 364 | "dev": true 365 | }, 366 | "center-align": { 367 | "version": "0.1.3", 368 | "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", 369 | "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", 370 | "dev": true, 371 | "optional": true, 372 | "requires": { 373 | "align-text": "0.1.4", 374 | "lazy-cache": "1.0.4" 375 | } 376 | }, 377 | "chalk": { 378 | "version": "1.1.3", 379 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 380 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 381 | "dev": true, 382 | "requires": { 383 | "ansi-styles": "2.2.1", 384 | "escape-string-regexp": "1.0.5", 385 | "has-ansi": "2.0.0", 386 | "strip-ansi": "3.0.1", 387 | "supports-color": "2.0.0" 388 | } 389 | }, 390 | "chardet": { 391 | "version": "0.4.2", 392 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", 393 | "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", 394 | "dev": true 395 | }, 396 | "circular-json": { 397 | "version": "0.3.3", 398 | "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", 399 | "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", 400 | "dev": true 401 | }, 402 | "cli-cursor": { 403 | "version": "1.0.2", 404 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", 405 | "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", 406 | "dev": true, 407 | "requires": { 408 | "restore-cursor": "1.0.1" 409 | } 410 | }, 411 | "cli-width": { 412 | "version": "2.2.0", 413 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", 414 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", 415 | "dev": true 416 | }, 417 | "cliui": { 418 | "version": "2.1.0", 419 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", 420 | "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", 421 | "dev": true, 422 | "optional": true, 423 | "requires": { 424 | "center-align": "0.1.3", 425 | "right-align": "0.1.3", 426 | "wordwrap": "0.0.2" 427 | }, 428 | "dependencies": { 429 | "wordwrap": { 430 | "version": "0.0.2", 431 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", 432 | "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", 433 | "dev": true, 434 | "optional": true 435 | } 436 | } 437 | }, 438 | "co": { 439 | "version": "4.6.0", 440 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 441 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 442 | "dev": true 443 | }, 444 | "code-point-at": { 445 | "version": "1.1.0", 446 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 447 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 448 | "dev": true 449 | }, 450 | "color-convert": { 451 | "version": "1.9.1", 452 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", 453 | "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", 454 | "dev": true, 455 | "requires": { 456 | "color-name": "1.1.3" 457 | } 458 | }, 459 | "color-name": { 460 | "version": "1.1.3", 461 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 462 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 463 | "dev": true 464 | }, 465 | "combined-stream": { 466 | "version": "1.0.6", 467 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", 468 | "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", 469 | "dev": true, 470 | "requires": { 471 | "delayed-stream": "1.0.0" 472 | } 473 | }, 474 | "commander": { 475 | "version": "2.15.1", 476 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", 477 | "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", 478 | "dev": true 479 | }, 480 | "commitizen": { 481 | "version": "2.9.6", 482 | "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-2.9.6.tgz", 483 | "integrity": "sha1-wNAFNe8mTaf2Nzft/aQiiYP6IpE=", 484 | "dev": true, 485 | "requires": { 486 | "cachedir": "1.2.0", 487 | "chalk": "1.1.3", 488 | "cz-conventional-changelog": "1.2.0", 489 | "dedent": "0.6.0", 490 | "detect-indent": "4.0.0", 491 | "find-node-modules": "1.0.4", 492 | "find-root": "1.0.0", 493 | "fs-extra": "1.0.0", 494 | "glob": "7.1.1", 495 | "inquirer": "1.2.3", 496 | "lodash": "4.17.2", 497 | "minimist": "1.2.0", 498 | "path-exists": "2.1.0", 499 | "shelljs": "0.7.6", 500 | "strip-json-comments": "2.0.1" 501 | }, 502 | "dependencies": { 503 | "cz-conventional-changelog": { 504 | "version": "1.2.0", 505 | "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-1.2.0.tgz", 506 | "integrity": "sha1-K8oElkyJGbI/P9aonvXmAIsxs/g=", 507 | "dev": true, 508 | "requires": { 509 | "conventional-commit-types": "2.2.0", 510 | "lodash.map": "4.6.0", 511 | "longest": "1.0.1", 512 | "pad-right": "0.2.2", 513 | "right-pad": "1.0.1", 514 | "word-wrap": "1.2.3" 515 | } 516 | } 517 | } 518 | }, 519 | "compare-func": { 520 | "version": "1.3.2", 521 | "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", 522 | "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", 523 | "dev": true, 524 | "requires": { 525 | "array-ify": "1.0.0", 526 | "dot-prop": "3.0.0" 527 | } 528 | }, 529 | "concat-map": { 530 | "version": "0.0.1", 531 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 532 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 533 | "dev": true 534 | }, 535 | "concat-stream": { 536 | "version": "1.6.2", 537 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 538 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 539 | "dev": true, 540 | "requires": { 541 | "buffer-from": "1.0.0", 542 | "inherits": "2.0.3", 543 | "readable-stream": "2.3.6", 544 | "typedarray": "0.0.6" 545 | } 546 | }, 547 | "conventional-changelog": { 548 | "version": "1.1.24", 549 | "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.24.tgz", 550 | "integrity": "sha512-2WcSUst4Y3Z4hHvoMTWXMJr/DmgVdLiMOVY1Kak2LfFz+GIz2KDp5naqbFesYbfXPmaZ5p491dO0FWZIJoJw1Q==", 551 | "dev": true, 552 | "requires": { 553 | "conventional-changelog-angular": "1.6.6", 554 | "conventional-changelog-atom": "0.2.8", 555 | "conventional-changelog-codemirror": "0.3.8", 556 | "conventional-changelog-core": "2.0.11", 557 | "conventional-changelog-ember": "0.3.12", 558 | "conventional-changelog-eslint": "1.0.9", 559 | "conventional-changelog-express": "0.3.6", 560 | "conventional-changelog-jquery": "0.1.0", 561 | "conventional-changelog-jscs": "0.1.0", 562 | "conventional-changelog-jshint": "0.3.8", 563 | "conventional-changelog-preset-loader": "1.1.8" 564 | } 565 | }, 566 | "conventional-changelog-angular": { 567 | "version": "1.6.6", 568 | "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz", 569 | "integrity": "sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg==", 570 | "dev": true, 571 | "requires": { 572 | "compare-func": "1.3.2", 573 | "q": "1.5.1" 574 | } 575 | }, 576 | "conventional-changelog-atom": { 577 | "version": "0.2.8", 578 | "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.2.8.tgz", 579 | "integrity": "sha512-8pPZqhMbrnltNBizjoDCb/Sz85KyUXNDQxuAEYAU5V/eHn0okMBVjqc8aHWYpHrytyZWvMGbayOlDv7i8kEf6g==", 580 | "dev": true, 581 | "requires": { 582 | "q": "1.5.1" 583 | } 584 | }, 585 | "conventional-changelog-cli": { 586 | "version": "1.3.22", 587 | "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-1.3.22.tgz", 588 | "integrity": "sha512-pnjdIJbxjkZ5VdAX/H1wndr1G10CY8MuZgnXuJhIHglOXfIrXygb7KZC836GW9uo1u8PjEIvIw/bKX0lOmOzZg==", 589 | "dev": true, 590 | "requires": { 591 | "add-stream": "1.0.0", 592 | "conventional-changelog": "1.1.24", 593 | "lodash": "4.17.2", 594 | "meow": "4.0.1", 595 | "tempfile": "1.1.1" 596 | } 597 | }, 598 | "conventional-changelog-codemirror": { 599 | "version": "0.3.8", 600 | "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.8.tgz", 601 | "integrity": "sha512-3HFZKtBXTaUCHvz7ai6nk2+psRIkldDoNzCsom0egDtVmPsvvHZkzjynhdQyULfacRSsBTaiQ0ol6nBOL4dDiQ==", 602 | "dev": true, 603 | "requires": { 604 | "q": "1.5.1" 605 | } 606 | }, 607 | "conventional-changelog-core": { 608 | "version": "2.0.11", 609 | "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-2.0.11.tgz", 610 | "integrity": "sha512-HvTE6RlqeEZ/NFPtQeFLsIDOLrGP3bXYr7lFLMhCVsbduF1MXIe8OODkwMFyo1i9ku9NWBwVnVn0jDmIFXjDRg==", 611 | "dev": true, 612 | "requires": { 613 | "conventional-changelog-writer": "3.0.9", 614 | "conventional-commits-parser": "2.1.7", 615 | "dateformat": "3.0.3", 616 | "get-pkg-repo": "1.4.0", 617 | "git-raw-commits": "1.3.6", 618 | "git-remote-origin-url": "2.0.0", 619 | "git-semver-tags": "1.3.6", 620 | "lodash": "4.17.2", 621 | "normalize-package-data": "2.4.0", 622 | "q": "1.5.1", 623 | "read-pkg": "1.1.0", 624 | "read-pkg-up": "1.0.1", 625 | "through2": "2.0.3" 626 | } 627 | }, 628 | "conventional-changelog-ember": { 629 | "version": "0.3.12", 630 | "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.3.12.tgz", 631 | "integrity": "sha512-mmJzA7uzbrOqeF89dMMi6z17O07ORTXlTMArnLG9ZTX4oLaKNolUlxFUFlFm9JUoVWajVpaHQWjxH1EOQ+ARoQ==", 632 | "dev": true, 633 | "requires": { 634 | "q": "1.5.1" 635 | } 636 | }, 637 | "conventional-changelog-eslint": { 638 | "version": "1.0.9", 639 | "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.9.tgz", 640 | "integrity": "sha512-h87nfVh2fdk9fJIvz26wCBsbDC/KxqCc5wSlNMZbXcARtbgNbNDIF7Y7ctokFdnxkzVdaHsbINkh548T9eBA7Q==", 641 | "dev": true, 642 | "requires": { 643 | "q": "1.5.1" 644 | } 645 | }, 646 | "conventional-changelog-express": { 647 | "version": "0.3.6", 648 | "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.3.6.tgz", 649 | "integrity": "sha512-3iWVtBJZ9RnRnZveNDzOD8QRn6g6vUif0qVTWWyi5nUIAbuN1FfPVyKdAlJJfp5Im+dE8Kiy/d2SpaX/0X678Q==", 650 | "dev": true, 651 | "requires": { 652 | "q": "1.5.1" 653 | } 654 | }, 655 | "conventional-changelog-jquery": { 656 | "version": "0.1.0", 657 | "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz", 658 | "integrity": "sha1-Agg5cWLjhGmG5xJztsecW1+A9RA=", 659 | "dev": true, 660 | "requires": { 661 | "q": "1.5.1" 662 | } 663 | }, 664 | "conventional-changelog-jscs": { 665 | "version": "0.1.0", 666 | "resolved": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz", 667 | "integrity": "sha1-BHnrRDzH1yxYvwvPDvHURKkvDlw=", 668 | "dev": true, 669 | "requires": { 670 | "q": "1.5.1" 671 | } 672 | }, 673 | "conventional-changelog-jshint": { 674 | "version": "0.3.8", 675 | "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.8.tgz", 676 | "integrity": "sha512-hn9QU4ZI/5V50wKPJNPGT4gEWgiBFpV6adieILW4MaUFynuDYOvQ71EMSj3EznJyKi/KzuXpc9dGmX8njZMjig==", 677 | "dev": true, 678 | "requires": { 679 | "compare-func": "1.3.2", 680 | "q": "1.5.1" 681 | } 682 | }, 683 | "conventional-changelog-preset-loader": { 684 | "version": "1.1.8", 685 | "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.8.tgz", 686 | "integrity": "sha512-MkksM4G4YdrMlT2MbTsV2F6LXu/hZR0Tc/yenRrDIKRwBl/SP7ER4ZDlglqJsCzLJi4UonBc52Bkm5hzrOVCcw==", 687 | "dev": true 688 | }, 689 | "conventional-changelog-writer": { 690 | "version": "3.0.9", 691 | "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-3.0.9.tgz", 692 | "integrity": "sha512-n9KbsxlJxRQsUnK6wIBRnARacvNnN4C/nxnxCkH+B/R1JS2Fa+DiP1dU4I59mEDEjgnFaN2+9wr1P1s7GYB5/Q==", 693 | "dev": true, 694 | "requires": { 695 | "compare-func": "1.3.2", 696 | "conventional-commits-filter": "1.1.6", 697 | "dateformat": "3.0.3", 698 | "handlebars": "4.0.11", 699 | "json-stringify-safe": "5.0.1", 700 | "lodash": "4.17.2", 701 | "meow": "4.0.1", 702 | "semver": "5.5.0", 703 | "split": "1.0.1", 704 | "through2": "2.0.3" 705 | } 706 | }, 707 | "conventional-commit-types": { 708 | "version": "2.2.0", 709 | "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.2.0.tgz", 710 | "integrity": "sha1-XblXOdbCEqy+e29lahG5QLqmiUY=", 711 | "dev": true 712 | }, 713 | "conventional-commits-filter": { 714 | "version": "1.1.6", 715 | "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.1.6.tgz", 716 | "integrity": "sha512-KcDgtCRKJCQhyk6VLT7zR+ZOyCnerfemE/CsR3iQpzRRFbLEs0Y6rwk3mpDvtOh04X223z+1xyJ582Stfct/0Q==", 717 | "dev": true, 718 | "requires": { 719 | "is-subset": "0.1.1", 720 | "modify-values": "1.0.1" 721 | } 722 | }, 723 | "conventional-commits-parser": { 724 | "version": "2.1.7", 725 | "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz", 726 | "integrity": "sha512-BoMaddIEJ6B4QVMSDu9IkVImlGOSGA1I2BQyOZHeLQ6qVOJLcLKn97+fL6dGbzWEiqDzfH4OkcveULmeq2MHFQ==", 727 | "dev": true, 728 | "requires": { 729 | "JSONStream": "1.3.2", 730 | "is-text-path": "1.0.1", 731 | "lodash": "4.17.2", 732 | "meow": "4.0.1", 733 | "split2": "2.2.0", 734 | "through2": "2.0.3", 735 | "trim-off-newlines": "1.0.1" 736 | } 737 | }, 738 | "core-util-is": { 739 | "version": "1.0.2", 740 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 741 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 742 | "dev": true 743 | }, 744 | "coveralls": { 745 | "version": "3.0.0", 746 | "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.0.tgz", 747 | "integrity": "sha512-ZppXR9y5PraUOrf/DzHJY6gzNUhXYE3b9D43xEXs4QYZ7/Oe0Gy0CS+IPKWFfvQFXB3RG9QduaQUFehzSpGAFw==", 748 | "dev": true, 749 | "requires": { 750 | "js-yaml": "3.11.0", 751 | "lcov-parse": "0.0.10", 752 | "log-driver": "1.2.7", 753 | "minimist": "1.2.0", 754 | "request": "2.85.0" 755 | } 756 | }, 757 | "cross-spawn": { 758 | "version": "5.1.0", 759 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 760 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 761 | "dev": true, 762 | "requires": { 763 | "lru-cache": "4.1.2", 764 | "shebang-command": "1.2.0", 765 | "which": "1.3.0" 766 | } 767 | }, 768 | "cryptiles": { 769 | "version": "3.1.2", 770 | "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", 771 | "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", 772 | "dev": true, 773 | "requires": { 774 | "boom": "5.2.0" 775 | }, 776 | "dependencies": { 777 | "boom": { 778 | "version": "5.2.0", 779 | "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", 780 | "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", 781 | "dev": true, 782 | "requires": { 783 | "hoek": "4.2.1" 784 | } 785 | } 786 | } 787 | }, 788 | "currently-unhandled": { 789 | "version": "0.4.1", 790 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", 791 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", 792 | "dev": true, 793 | "requires": { 794 | "array-find-index": "1.0.2" 795 | } 796 | }, 797 | "cz-conventional-changelog": { 798 | "version": "2.1.0", 799 | "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-2.1.0.tgz", 800 | "integrity": "sha1-L0vHOQ4yROTfKT5ro1Hkx0Cnx2Q=", 801 | "dev": true, 802 | "requires": { 803 | "conventional-commit-types": "2.2.0", 804 | "lodash.map": "4.6.0", 805 | "longest": "1.0.1", 806 | "right-pad": "1.0.1", 807 | "word-wrap": "1.2.3" 808 | } 809 | }, 810 | "dargs": { 811 | "version": "4.1.0", 812 | "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", 813 | "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", 814 | "dev": true, 815 | "requires": { 816 | "number-is-nan": "1.0.1" 817 | } 818 | }, 819 | "dashdash": { 820 | "version": "1.14.1", 821 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 822 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 823 | "dev": true, 824 | "requires": { 825 | "assert-plus": "1.0.0" 826 | } 827 | }, 828 | "dateformat": { 829 | "version": "3.0.3", 830 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", 831 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", 832 | "dev": true 833 | }, 834 | "debug": { 835 | "version": "3.1.0", 836 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 837 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 838 | "dev": true, 839 | "requires": { 840 | "ms": "2.0.0" 841 | } 842 | }, 843 | "decamelize": { 844 | "version": "1.2.0", 845 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 846 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 847 | "dev": true 848 | }, 849 | "decamelize-keys": { 850 | "version": "1.1.0", 851 | "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", 852 | "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", 853 | "dev": true, 854 | "requires": { 855 | "decamelize": "1.2.0", 856 | "map-obj": "1.0.1" 857 | }, 858 | "dependencies": { 859 | "map-obj": { 860 | "version": "1.0.1", 861 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 862 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", 863 | "dev": true 864 | } 865 | } 866 | }, 867 | "dedent": { 868 | "version": "0.6.0", 869 | "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.6.0.tgz", 870 | "integrity": "sha1-Dm2o8M5Sg471zsXI+TlrDBtko8s=", 871 | "dev": true 872 | }, 873 | "deep-is": { 874 | "version": "0.1.3", 875 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 876 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 877 | "dev": true 878 | }, 879 | "del": { 880 | "version": "2.2.2", 881 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", 882 | "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", 883 | "dev": true, 884 | "requires": { 885 | "globby": "5.0.0", 886 | "is-path-cwd": "1.0.0", 887 | "is-path-in-cwd": "1.0.1", 888 | "object-assign": "4.1.1", 889 | "pify": "2.3.0", 890 | "pinkie-promise": "2.0.1", 891 | "rimraf": "2.6.2" 892 | }, 893 | "dependencies": { 894 | "pify": { 895 | "version": "2.3.0", 896 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 897 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 898 | "dev": true 899 | } 900 | } 901 | }, 902 | "delayed-stream": { 903 | "version": "1.0.0", 904 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 905 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 906 | "dev": true 907 | }, 908 | "detect-file": { 909 | "version": "0.1.0", 910 | "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz", 911 | "integrity": "sha1-STXe39lIhkjgBrASlWbpOGcR6mM=", 912 | "dev": true, 913 | "requires": { 914 | "fs-exists-sync": "0.1.0" 915 | } 916 | }, 917 | "detect-indent": { 918 | "version": "4.0.0", 919 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", 920 | "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", 921 | "dev": true, 922 | "requires": { 923 | "repeating": "2.0.1" 924 | } 925 | }, 926 | "diff": { 927 | "version": "3.5.0", 928 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", 929 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", 930 | "dev": true 931 | }, 932 | "doctrine": { 933 | "version": "2.1.0", 934 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", 935 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", 936 | "dev": true, 937 | "requires": { 938 | "esutils": "2.0.2" 939 | } 940 | }, 941 | "dot-prop": { 942 | "version": "3.0.0", 943 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", 944 | "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", 945 | "dev": true, 946 | "requires": { 947 | "is-obj": "1.0.1" 948 | } 949 | }, 950 | "ecc-jsbn": { 951 | "version": "0.1.1", 952 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", 953 | "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", 954 | "dev": true, 955 | "optional": true, 956 | "requires": { 957 | "jsbn": "0.1.1" 958 | } 959 | }, 960 | "error-ex": { 961 | "version": "1.3.1", 962 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", 963 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", 964 | "dev": true, 965 | "requires": { 966 | "is-arrayish": "0.2.1" 967 | } 968 | }, 969 | "escape-string-regexp": { 970 | "version": "1.0.5", 971 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 972 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 973 | "dev": true 974 | }, 975 | "escodegen": { 976 | "version": "1.8.1", 977 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", 978 | "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", 979 | "dev": true, 980 | "requires": { 981 | "esprima": "2.7.3", 982 | "estraverse": "1.9.3", 983 | "esutils": "2.0.2", 984 | "optionator": "0.8.2", 985 | "source-map": "0.2.0" 986 | }, 987 | "dependencies": { 988 | "esprima": { 989 | "version": "2.7.3", 990 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", 991 | "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", 992 | "dev": true 993 | }, 994 | "estraverse": { 995 | "version": "1.9.3", 996 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", 997 | "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", 998 | "dev": true 999 | }, 1000 | "source-map": { 1001 | "version": "0.2.0", 1002 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", 1003 | "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", 1004 | "dev": true, 1005 | "optional": true, 1006 | "requires": { 1007 | "amdefine": "1.0.1" 1008 | } 1009 | } 1010 | } 1011 | }, 1012 | "eslint": { 1013 | "version": "4.19.1", 1014 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", 1015 | "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", 1016 | "dev": true, 1017 | "requires": { 1018 | "ajv": "5.5.2", 1019 | "babel-code-frame": "6.26.0", 1020 | "chalk": "2.4.1", 1021 | "concat-stream": "1.6.2", 1022 | "cross-spawn": "5.1.0", 1023 | "debug": "3.1.0", 1024 | "doctrine": "2.1.0", 1025 | "eslint-scope": "3.7.1", 1026 | "eslint-visitor-keys": "1.0.0", 1027 | "espree": "3.5.4", 1028 | "esquery": "1.0.1", 1029 | "esutils": "2.0.2", 1030 | "file-entry-cache": "2.0.0", 1031 | "functional-red-black-tree": "1.0.1", 1032 | "glob": "7.1.2", 1033 | "globals": "11.5.0", 1034 | "ignore": "3.3.8", 1035 | "imurmurhash": "0.1.4", 1036 | "inquirer": "3.3.0", 1037 | "is-resolvable": "1.1.0", 1038 | "js-yaml": "3.11.0", 1039 | "json-stable-stringify-without-jsonify": "1.0.1", 1040 | "levn": "0.3.0", 1041 | "lodash": "4.17.10", 1042 | "minimatch": "3.0.4", 1043 | "mkdirp": "0.5.1", 1044 | "natural-compare": "1.4.0", 1045 | "optionator": "0.8.2", 1046 | "path-is-inside": "1.0.2", 1047 | "pluralize": "7.0.0", 1048 | "progress": "2.0.0", 1049 | "regexpp": "1.1.0", 1050 | "require-uncached": "1.0.3", 1051 | "semver": "5.5.0", 1052 | "strip-ansi": "4.0.0", 1053 | "strip-json-comments": "2.0.1", 1054 | "table": "4.0.2", 1055 | "text-table": "0.2.0" 1056 | }, 1057 | "dependencies": { 1058 | "ansi-escapes": { 1059 | "version": "3.1.0", 1060 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", 1061 | "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", 1062 | "dev": true 1063 | }, 1064 | "ansi-regex": { 1065 | "version": "3.0.0", 1066 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 1067 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 1068 | "dev": true 1069 | }, 1070 | "ansi-styles": { 1071 | "version": "3.2.1", 1072 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1073 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1074 | "dev": true, 1075 | "requires": { 1076 | "color-convert": "1.9.1" 1077 | } 1078 | }, 1079 | "chalk": { 1080 | "version": "2.4.1", 1081 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", 1082 | "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", 1083 | "dev": true, 1084 | "requires": { 1085 | "ansi-styles": "3.2.1", 1086 | "escape-string-regexp": "1.0.5", 1087 | "supports-color": "5.4.0" 1088 | } 1089 | }, 1090 | "cli-cursor": { 1091 | "version": "2.1.0", 1092 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 1093 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", 1094 | "dev": true, 1095 | "requires": { 1096 | "restore-cursor": "2.0.0" 1097 | } 1098 | }, 1099 | "external-editor": { 1100 | "version": "2.2.0", 1101 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", 1102 | "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", 1103 | "dev": true, 1104 | "requires": { 1105 | "chardet": "0.4.2", 1106 | "iconv-lite": "0.4.21", 1107 | "tmp": "0.0.33" 1108 | } 1109 | }, 1110 | "figures": { 1111 | "version": "2.0.0", 1112 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 1113 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 1114 | "dev": true, 1115 | "requires": { 1116 | "escape-string-regexp": "1.0.5" 1117 | } 1118 | }, 1119 | "glob": { 1120 | "version": "7.1.2", 1121 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 1122 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 1123 | "dev": true, 1124 | "requires": { 1125 | "fs.realpath": "1.0.0", 1126 | "inflight": "1.0.6", 1127 | "inherits": "2.0.3", 1128 | "minimatch": "3.0.4", 1129 | "once": "1.4.0", 1130 | "path-is-absolute": "1.0.1" 1131 | } 1132 | }, 1133 | "inquirer": { 1134 | "version": "3.3.0", 1135 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", 1136 | "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", 1137 | "dev": true, 1138 | "requires": { 1139 | "ansi-escapes": "3.1.0", 1140 | "chalk": "2.4.1", 1141 | "cli-cursor": "2.1.0", 1142 | "cli-width": "2.2.0", 1143 | "external-editor": "2.2.0", 1144 | "figures": "2.0.0", 1145 | "lodash": "4.17.10", 1146 | "mute-stream": "0.0.7", 1147 | "run-async": "2.3.0", 1148 | "rx-lite": "4.0.8", 1149 | "rx-lite-aggregates": "4.0.8", 1150 | "string-width": "2.1.1", 1151 | "strip-ansi": "4.0.0", 1152 | "through": "2.3.8" 1153 | } 1154 | }, 1155 | "is-fullwidth-code-point": { 1156 | "version": "2.0.0", 1157 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 1158 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 1159 | "dev": true 1160 | }, 1161 | "lodash": { 1162 | "version": "4.17.10", 1163 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", 1164 | "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", 1165 | "dev": true 1166 | }, 1167 | "mute-stream": { 1168 | "version": "0.0.7", 1169 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 1170 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", 1171 | "dev": true 1172 | }, 1173 | "onetime": { 1174 | "version": "2.0.1", 1175 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 1176 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", 1177 | "dev": true, 1178 | "requires": { 1179 | "mimic-fn": "1.2.0" 1180 | } 1181 | }, 1182 | "restore-cursor": { 1183 | "version": "2.0.0", 1184 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 1185 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", 1186 | "dev": true, 1187 | "requires": { 1188 | "onetime": "2.0.1", 1189 | "signal-exit": "3.0.2" 1190 | } 1191 | }, 1192 | "string-width": { 1193 | "version": "2.1.1", 1194 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 1195 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 1196 | "dev": true, 1197 | "requires": { 1198 | "is-fullwidth-code-point": "2.0.0", 1199 | "strip-ansi": "4.0.0" 1200 | } 1201 | }, 1202 | "strip-ansi": { 1203 | "version": "4.0.0", 1204 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 1205 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 1206 | "dev": true, 1207 | "requires": { 1208 | "ansi-regex": "3.0.0" 1209 | } 1210 | }, 1211 | "supports-color": { 1212 | "version": "5.4.0", 1213 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", 1214 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", 1215 | "dev": true, 1216 | "requires": { 1217 | "has-flag": "3.0.0" 1218 | } 1219 | }, 1220 | "tmp": { 1221 | "version": "0.0.33", 1222 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 1223 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 1224 | "dev": true, 1225 | "requires": { 1226 | "os-tmpdir": "1.0.2" 1227 | } 1228 | } 1229 | } 1230 | }, 1231 | "eslint-plugin-prettier": { 1232 | "version": "2.6.0", 1233 | "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.0.tgz", 1234 | "integrity": "sha512-floiaI4F7hRkTrFe8V2ItOK97QYrX75DjmdzmVITZoAP6Cn06oEDPQRsO6MlHEP/u2SxI3xQ52Kpjw6j5WGfeQ==", 1235 | "dev": true, 1236 | "requires": { 1237 | "fast-diff": "1.1.2", 1238 | "jest-docblock": "21.2.0" 1239 | } 1240 | }, 1241 | "eslint-scope": { 1242 | "version": "3.7.1", 1243 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", 1244 | "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", 1245 | "dev": true, 1246 | "requires": { 1247 | "esrecurse": "4.2.1", 1248 | "estraverse": "4.2.0" 1249 | } 1250 | }, 1251 | "eslint-visitor-keys": { 1252 | "version": "1.0.0", 1253 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", 1254 | "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", 1255 | "dev": true 1256 | }, 1257 | "espree": { 1258 | "version": "3.5.4", 1259 | "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", 1260 | "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", 1261 | "dev": true, 1262 | "requires": { 1263 | "acorn": "5.5.3", 1264 | "acorn-jsx": "3.0.1" 1265 | } 1266 | }, 1267 | "esprima": { 1268 | "version": "4.0.0", 1269 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", 1270 | "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", 1271 | "dev": true 1272 | }, 1273 | "esquery": { 1274 | "version": "1.0.1", 1275 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", 1276 | "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", 1277 | "dev": true, 1278 | "requires": { 1279 | "estraverse": "4.2.0" 1280 | } 1281 | }, 1282 | "esrecurse": { 1283 | "version": "4.2.1", 1284 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", 1285 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", 1286 | "dev": true, 1287 | "requires": { 1288 | "estraverse": "4.2.0" 1289 | } 1290 | }, 1291 | "estraverse": { 1292 | "version": "4.2.0", 1293 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 1294 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 1295 | "dev": true 1296 | }, 1297 | "esutils": { 1298 | "version": "2.0.2", 1299 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 1300 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 1301 | "dev": true 1302 | }, 1303 | "exit-hook": { 1304 | "version": "1.1.1", 1305 | "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", 1306 | "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", 1307 | "dev": true 1308 | }, 1309 | "expand-brackets": { 1310 | "version": "0.1.5", 1311 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 1312 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 1313 | "dev": true, 1314 | "requires": { 1315 | "is-posix-bracket": "0.1.1" 1316 | } 1317 | }, 1318 | "expand-range": { 1319 | "version": "1.8.2", 1320 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 1321 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 1322 | "dev": true, 1323 | "requires": { 1324 | "fill-range": "2.2.3" 1325 | } 1326 | }, 1327 | "expand-tilde": { 1328 | "version": "1.2.2", 1329 | "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", 1330 | "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=", 1331 | "dev": true, 1332 | "requires": { 1333 | "os-homedir": "1.0.2" 1334 | } 1335 | }, 1336 | "extend": { 1337 | "version": "3.0.1", 1338 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", 1339 | "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", 1340 | "dev": true 1341 | }, 1342 | "extend-shallow": { 1343 | "version": "2.0.1", 1344 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1345 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1346 | "dev": true, 1347 | "requires": { 1348 | "is-extendable": "0.1.1" 1349 | } 1350 | }, 1351 | "external-editor": { 1352 | "version": "1.1.1", 1353 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz", 1354 | "integrity": "sha1-Etew24UPf/fnCBuvQAVwAGDEYAs=", 1355 | "dev": true, 1356 | "requires": { 1357 | "extend": "3.0.1", 1358 | "spawn-sync": "1.0.15", 1359 | "tmp": "0.0.29" 1360 | } 1361 | }, 1362 | "extglob": { 1363 | "version": "0.3.2", 1364 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 1365 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 1366 | "dev": true, 1367 | "requires": { 1368 | "is-extglob": "1.0.0" 1369 | } 1370 | }, 1371 | "extsprintf": { 1372 | "version": "1.3.0", 1373 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 1374 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 1375 | "dev": true 1376 | }, 1377 | "fast-deep-equal": { 1378 | "version": "1.1.0", 1379 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", 1380 | "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", 1381 | "dev": true 1382 | }, 1383 | "fast-diff": { 1384 | "version": "1.1.2", 1385 | "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", 1386 | "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==", 1387 | "dev": true 1388 | }, 1389 | "fast-json-stable-stringify": { 1390 | "version": "2.0.0", 1391 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 1392 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", 1393 | "dev": true 1394 | }, 1395 | "fast-levenshtein": { 1396 | "version": "2.0.6", 1397 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1398 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 1399 | "dev": true 1400 | }, 1401 | "figures": { 1402 | "version": "1.7.0", 1403 | "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", 1404 | "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", 1405 | "dev": true, 1406 | "requires": { 1407 | "escape-string-regexp": "1.0.5", 1408 | "object-assign": "4.1.1" 1409 | } 1410 | }, 1411 | "file-entry-cache": { 1412 | "version": "2.0.0", 1413 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", 1414 | "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", 1415 | "dev": true, 1416 | "requires": { 1417 | "flat-cache": "1.3.0", 1418 | "object-assign": "4.1.1" 1419 | } 1420 | }, 1421 | "filename-regex": { 1422 | "version": "2.0.1", 1423 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 1424 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", 1425 | "dev": true 1426 | }, 1427 | "fill-range": { 1428 | "version": "2.2.3", 1429 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", 1430 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", 1431 | "dev": true, 1432 | "requires": { 1433 | "is-number": "2.1.0", 1434 | "isobject": "2.1.0", 1435 | "randomatic": "1.1.7", 1436 | "repeat-element": "1.1.2", 1437 | "repeat-string": "1.6.1" 1438 | } 1439 | }, 1440 | "find-node-modules": { 1441 | "version": "1.0.4", 1442 | "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-1.0.4.tgz", 1443 | "integrity": "sha1-tt6zzMtpnIcDdne87eLF9YYrJVA=", 1444 | "dev": true, 1445 | "requires": { 1446 | "findup-sync": "0.4.2", 1447 | "merge": "1.2.0" 1448 | } 1449 | }, 1450 | "find-root": { 1451 | "version": "1.0.0", 1452 | "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.0.0.tgz", 1453 | "integrity": "sha1-li/yEaqyXGUg/u641ih/j26VgHo=", 1454 | "dev": true 1455 | }, 1456 | "find-up": { 1457 | "version": "2.1.0", 1458 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 1459 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 1460 | "dev": true, 1461 | "requires": { 1462 | "locate-path": "2.0.0" 1463 | } 1464 | }, 1465 | "findup-sync": { 1466 | "version": "0.4.2", 1467 | "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.2.tgz", 1468 | "integrity": "sha1-qBF9D3MST1pFRoOVef5S1xKfteU=", 1469 | "dev": true, 1470 | "requires": { 1471 | "detect-file": "0.1.0", 1472 | "is-glob": "2.0.1", 1473 | "micromatch": "2.3.11", 1474 | "resolve-dir": "0.1.1" 1475 | } 1476 | }, 1477 | "flat-cache": { 1478 | "version": "1.3.0", 1479 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", 1480 | "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", 1481 | "dev": true, 1482 | "requires": { 1483 | "circular-json": "0.3.3", 1484 | "del": "2.2.2", 1485 | "graceful-fs": "4.1.11", 1486 | "write": "0.2.1" 1487 | } 1488 | }, 1489 | "for-in": { 1490 | "version": "1.0.2", 1491 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1492 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 1493 | "dev": true 1494 | }, 1495 | "for-own": { 1496 | "version": "0.1.5", 1497 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 1498 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 1499 | "dev": true, 1500 | "requires": { 1501 | "for-in": "1.0.2" 1502 | } 1503 | }, 1504 | "forever-agent": { 1505 | "version": "0.6.1", 1506 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 1507 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 1508 | "dev": true 1509 | }, 1510 | "form-data": { 1511 | "version": "2.3.2", 1512 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", 1513 | "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", 1514 | "dev": true, 1515 | "requires": { 1516 | "asynckit": "0.4.0", 1517 | "combined-stream": "1.0.6", 1518 | "mime-types": "2.1.18" 1519 | } 1520 | }, 1521 | "fs-exists-sync": { 1522 | "version": "0.1.0", 1523 | "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", 1524 | "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=", 1525 | "dev": true 1526 | }, 1527 | "fs-extra": { 1528 | "version": "1.0.0", 1529 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", 1530 | "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", 1531 | "dev": true, 1532 | "requires": { 1533 | "graceful-fs": "4.1.11", 1534 | "jsonfile": "2.4.0", 1535 | "klaw": "1.3.1" 1536 | } 1537 | }, 1538 | "fs.realpath": { 1539 | "version": "1.0.0", 1540 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1541 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1542 | "dev": true 1543 | }, 1544 | "functional-red-black-tree": { 1545 | "version": "1.0.1", 1546 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 1547 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 1548 | "dev": true 1549 | }, 1550 | "get-pkg-repo": { 1551 | "version": "1.4.0", 1552 | "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", 1553 | "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=", 1554 | "dev": true, 1555 | "requires": { 1556 | "hosted-git-info": "2.6.0", 1557 | "meow": "3.7.0", 1558 | "normalize-package-data": "2.4.0", 1559 | "parse-github-repo-url": "1.4.1", 1560 | "through2": "2.0.3" 1561 | }, 1562 | "dependencies": { 1563 | "camelcase": { 1564 | "version": "2.1.1", 1565 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", 1566 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", 1567 | "dev": true 1568 | }, 1569 | "camelcase-keys": { 1570 | "version": "2.1.0", 1571 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", 1572 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", 1573 | "dev": true, 1574 | "requires": { 1575 | "camelcase": "2.1.1", 1576 | "map-obj": "1.0.1" 1577 | } 1578 | }, 1579 | "indent-string": { 1580 | "version": "2.1.0", 1581 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", 1582 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", 1583 | "dev": true, 1584 | "requires": { 1585 | "repeating": "2.0.1" 1586 | } 1587 | }, 1588 | "map-obj": { 1589 | "version": "1.0.1", 1590 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 1591 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", 1592 | "dev": true 1593 | }, 1594 | "meow": { 1595 | "version": "3.7.0", 1596 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", 1597 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", 1598 | "dev": true, 1599 | "requires": { 1600 | "camelcase-keys": "2.1.0", 1601 | "decamelize": "1.2.0", 1602 | "loud-rejection": "1.6.0", 1603 | "map-obj": "1.0.1", 1604 | "minimist": "1.2.0", 1605 | "normalize-package-data": "2.4.0", 1606 | "object-assign": "4.1.1", 1607 | "read-pkg-up": "1.0.1", 1608 | "redent": "1.0.0", 1609 | "trim-newlines": "1.0.0" 1610 | } 1611 | }, 1612 | "redent": { 1613 | "version": "1.0.0", 1614 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", 1615 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", 1616 | "dev": true, 1617 | "requires": { 1618 | "indent-string": "2.1.0", 1619 | "strip-indent": "1.0.1" 1620 | } 1621 | }, 1622 | "strip-indent": { 1623 | "version": "1.0.1", 1624 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", 1625 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", 1626 | "dev": true, 1627 | "requires": { 1628 | "get-stdin": "4.0.1" 1629 | } 1630 | }, 1631 | "trim-newlines": { 1632 | "version": "1.0.0", 1633 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", 1634 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", 1635 | "dev": true 1636 | } 1637 | } 1638 | }, 1639 | "get-stdin": { 1640 | "version": "4.0.1", 1641 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", 1642 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", 1643 | "dev": true 1644 | }, 1645 | "get-value": { 1646 | "version": "2.0.6", 1647 | "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", 1648 | "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", 1649 | "dev": true 1650 | }, 1651 | "getpass": { 1652 | "version": "0.1.7", 1653 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1654 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 1655 | "dev": true, 1656 | "requires": { 1657 | "assert-plus": "1.0.0" 1658 | } 1659 | }, 1660 | "git-raw-commits": { 1661 | "version": "1.3.6", 1662 | "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.3.6.tgz", 1663 | "integrity": "sha512-svsK26tQ8vEKnMshTDatSIQSMDdz8CxIIqKsvPqbtV23Etmw6VNaFAitu8zwZ0VrOne7FztwPyRLxK7/DIUTQg==", 1664 | "dev": true, 1665 | "requires": { 1666 | "dargs": "4.1.0", 1667 | "lodash.template": "4.4.0", 1668 | "meow": "4.0.1", 1669 | "split2": "2.2.0", 1670 | "through2": "2.0.3" 1671 | } 1672 | }, 1673 | "git-remote-origin-url": { 1674 | "version": "2.0.0", 1675 | "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", 1676 | "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", 1677 | "dev": true, 1678 | "requires": { 1679 | "gitconfiglocal": "1.0.0", 1680 | "pify": "2.3.0" 1681 | }, 1682 | "dependencies": { 1683 | "pify": { 1684 | "version": "2.3.0", 1685 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1686 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 1687 | "dev": true 1688 | } 1689 | } 1690 | }, 1691 | "git-semver-tags": { 1692 | "version": "1.3.6", 1693 | "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.3.6.tgz", 1694 | "integrity": "sha512-2jHlJnln4D/ECk9FxGEBh3k44wgYdWjWDtMmJPaecjoRmxKo3Y1Lh8GMYuOPu04CHw86NTAODchYjC5pnpMQig==", 1695 | "dev": true, 1696 | "requires": { 1697 | "meow": "4.0.1", 1698 | "semver": "5.5.0" 1699 | } 1700 | }, 1701 | "gitconfiglocal": { 1702 | "version": "1.0.0", 1703 | "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", 1704 | "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", 1705 | "dev": true, 1706 | "requires": { 1707 | "ini": "1.3.5" 1708 | } 1709 | }, 1710 | "glob": { 1711 | "version": "7.1.1", 1712 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", 1713 | "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", 1714 | "dev": true, 1715 | "requires": { 1716 | "fs.realpath": "1.0.0", 1717 | "inflight": "1.0.6", 1718 | "inherits": "2.0.3", 1719 | "minimatch": "3.0.4", 1720 | "once": "1.4.0", 1721 | "path-is-absolute": "1.0.1" 1722 | } 1723 | }, 1724 | "glob-base": { 1725 | "version": "0.3.0", 1726 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 1727 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 1728 | "dev": true, 1729 | "requires": { 1730 | "glob-parent": "2.0.0", 1731 | "is-glob": "2.0.1" 1732 | } 1733 | }, 1734 | "glob-parent": { 1735 | "version": "2.0.0", 1736 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 1737 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 1738 | "dev": true, 1739 | "requires": { 1740 | "is-glob": "2.0.1" 1741 | } 1742 | }, 1743 | "global-modules": { 1744 | "version": "0.2.3", 1745 | "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", 1746 | "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=", 1747 | "dev": true, 1748 | "requires": { 1749 | "global-prefix": "0.1.5", 1750 | "is-windows": "0.2.0" 1751 | } 1752 | }, 1753 | "global-prefix": { 1754 | "version": "0.1.5", 1755 | "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", 1756 | "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=", 1757 | "dev": true, 1758 | "requires": { 1759 | "homedir-polyfill": "1.0.1", 1760 | "ini": "1.3.5", 1761 | "is-windows": "0.2.0", 1762 | "which": "1.3.0" 1763 | } 1764 | }, 1765 | "globals": { 1766 | "version": "11.5.0", 1767 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.5.0.tgz", 1768 | "integrity": "sha512-hYyf+kI8dm3nORsiiXUQigOU62hDLfJ9G01uyGMxhc6BKsircrUhC4uJPQPUSuq2GrTmiiEt7ewxlMdBewfmKQ==", 1769 | "dev": true 1770 | }, 1771 | "globby": { 1772 | "version": "5.0.0", 1773 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", 1774 | "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", 1775 | "dev": true, 1776 | "requires": { 1777 | "array-union": "1.0.2", 1778 | "arrify": "1.0.1", 1779 | "glob": "7.1.1", 1780 | "object-assign": "4.1.1", 1781 | "pify": "2.3.0", 1782 | "pinkie-promise": "2.0.1" 1783 | }, 1784 | "dependencies": { 1785 | "pify": { 1786 | "version": "2.3.0", 1787 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1788 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 1789 | "dev": true 1790 | } 1791 | } 1792 | }, 1793 | "graceful-fs": { 1794 | "version": "4.1.11", 1795 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 1796 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 1797 | "dev": true 1798 | }, 1799 | "growl": { 1800 | "version": "1.10.3", 1801 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", 1802 | "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", 1803 | "dev": true 1804 | }, 1805 | "handlebars": { 1806 | "version": "4.0.11", 1807 | "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", 1808 | "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", 1809 | "dev": true, 1810 | "requires": { 1811 | "async": "1.5.2", 1812 | "optimist": "0.6.1", 1813 | "source-map": "0.4.4", 1814 | "uglify-js": "2.8.29" 1815 | } 1816 | }, 1817 | "har-schema": { 1818 | "version": "2.0.0", 1819 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 1820 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", 1821 | "dev": true 1822 | }, 1823 | "har-validator": { 1824 | "version": "5.0.3", 1825 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", 1826 | "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", 1827 | "dev": true, 1828 | "requires": { 1829 | "ajv": "5.5.2", 1830 | "har-schema": "2.0.0" 1831 | } 1832 | }, 1833 | "has-ansi": { 1834 | "version": "2.0.0", 1835 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 1836 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 1837 | "dev": true, 1838 | "requires": { 1839 | "ansi-regex": "2.1.1" 1840 | } 1841 | }, 1842 | "has-flag": { 1843 | "version": "3.0.0", 1844 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1845 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 1846 | "dev": true 1847 | }, 1848 | "hawk": { 1849 | "version": "6.0.2", 1850 | "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", 1851 | "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", 1852 | "dev": true, 1853 | "requires": { 1854 | "boom": "4.3.1", 1855 | "cryptiles": "3.1.2", 1856 | "hoek": "4.2.1", 1857 | "sntp": "2.1.0" 1858 | } 1859 | }, 1860 | "he": { 1861 | "version": "1.1.1", 1862 | "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", 1863 | "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", 1864 | "dev": true 1865 | }, 1866 | "hoek": { 1867 | "version": "4.2.1", 1868 | "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", 1869 | "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", 1870 | "dev": true 1871 | }, 1872 | "homedir-polyfill": { 1873 | "version": "1.0.1", 1874 | "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", 1875 | "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", 1876 | "dev": true, 1877 | "requires": { 1878 | "parse-passwd": "1.0.0" 1879 | } 1880 | }, 1881 | "hosted-git-info": { 1882 | "version": "2.6.0", 1883 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", 1884 | "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", 1885 | "dev": true 1886 | }, 1887 | "http-signature": { 1888 | "version": "1.2.0", 1889 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 1890 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 1891 | "dev": true, 1892 | "requires": { 1893 | "assert-plus": "1.0.0", 1894 | "jsprim": "1.4.1", 1895 | "sshpk": "1.14.1" 1896 | } 1897 | }, 1898 | "iconv-lite": { 1899 | "version": "0.4.21", 1900 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", 1901 | "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", 1902 | "dev": true, 1903 | "requires": { 1904 | "safer-buffer": "2.1.2" 1905 | } 1906 | }, 1907 | "ignore": { 1908 | "version": "3.3.8", 1909 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz", 1910 | "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==", 1911 | "dev": true 1912 | }, 1913 | "imurmurhash": { 1914 | "version": "0.1.4", 1915 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1916 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 1917 | "dev": true 1918 | }, 1919 | "indent-string": { 1920 | "version": "3.2.0", 1921 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", 1922 | "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", 1923 | "dev": true 1924 | }, 1925 | "inflight": { 1926 | "version": "1.0.6", 1927 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1928 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1929 | "dev": true, 1930 | "requires": { 1931 | "once": "1.4.0", 1932 | "wrappy": "1.0.2" 1933 | } 1934 | }, 1935 | "inherits": { 1936 | "version": "2.0.3", 1937 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1938 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 1939 | "dev": true 1940 | }, 1941 | "ini": { 1942 | "version": "1.3.5", 1943 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 1944 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", 1945 | "dev": true 1946 | }, 1947 | "inquirer": { 1948 | "version": "1.2.3", 1949 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz", 1950 | "integrity": "sha1-TexvMvN+97sLLtPx0aXD9UUHSRg=", 1951 | "dev": true, 1952 | "requires": { 1953 | "ansi-escapes": "1.4.0", 1954 | "chalk": "1.1.3", 1955 | "cli-cursor": "1.0.2", 1956 | "cli-width": "2.2.0", 1957 | "external-editor": "1.1.1", 1958 | "figures": "1.7.0", 1959 | "lodash": "4.17.2", 1960 | "mute-stream": "0.0.6", 1961 | "pinkie-promise": "2.0.1", 1962 | "run-async": "2.3.0", 1963 | "rx": "4.1.0", 1964 | "string-width": "1.0.2", 1965 | "strip-ansi": "3.0.1", 1966 | "through": "2.3.8" 1967 | } 1968 | }, 1969 | "interpret": { 1970 | "version": "1.1.0", 1971 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", 1972 | "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", 1973 | "dev": true 1974 | }, 1975 | "is-arrayish": { 1976 | "version": "0.2.1", 1977 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 1978 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 1979 | "dev": true 1980 | }, 1981 | "is-buffer": { 1982 | "version": "1.1.6", 1983 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 1984 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 1985 | "dev": true 1986 | }, 1987 | "is-builtin-module": { 1988 | "version": "1.0.0", 1989 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", 1990 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", 1991 | "dev": true, 1992 | "requires": { 1993 | "builtin-modules": "1.1.1" 1994 | } 1995 | }, 1996 | "is-dotfile": { 1997 | "version": "1.0.3", 1998 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 1999 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", 2000 | "dev": true 2001 | }, 2002 | "is-equal-shallow": { 2003 | "version": "0.1.3", 2004 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 2005 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 2006 | "dev": true, 2007 | "requires": { 2008 | "is-primitive": "2.0.0" 2009 | } 2010 | }, 2011 | "is-extendable": { 2012 | "version": "0.1.1", 2013 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 2014 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 2015 | "dev": true 2016 | }, 2017 | "is-extglob": { 2018 | "version": "1.0.0", 2019 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 2020 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 2021 | "dev": true 2022 | }, 2023 | "is-finite": { 2024 | "version": "1.0.2", 2025 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 2026 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 2027 | "dev": true, 2028 | "requires": { 2029 | "number-is-nan": "1.0.1" 2030 | } 2031 | }, 2032 | "is-fullwidth-code-point": { 2033 | "version": "1.0.0", 2034 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 2035 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 2036 | "dev": true, 2037 | "requires": { 2038 | "number-is-nan": "1.0.1" 2039 | } 2040 | }, 2041 | "is-glob": { 2042 | "version": "2.0.1", 2043 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 2044 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 2045 | "dev": true, 2046 | "requires": { 2047 | "is-extglob": "1.0.0" 2048 | } 2049 | }, 2050 | "is-number": { 2051 | "version": "2.1.0", 2052 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 2053 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 2054 | "dev": true, 2055 | "requires": { 2056 | "kind-of": "3.2.2" 2057 | } 2058 | }, 2059 | "is-obj": { 2060 | "version": "1.0.1", 2061 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", 2062 | "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", 2063 | "dev": true 2064 | }, 2065 | "is-path-cwd": { 2066 | "version": "1.0.0", 2067 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 2068 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", 2069 | "dev": true 2070 | }, 2071 | "is-path-in-cwd": { 2072 | "version": "1.0.1", 2073 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", 2074 | "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", 2075 | "dev": true, 2076 | "requires": { 2077 | "is-path-inside": "1.0.1" 2078 | } 2079 | }, 2080 | "is-path-inside": { 2081 | "version": "1.0.1", 2082 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", 2083 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", 2084 | "dev": true, 2085 | "requires": { 2086 | "path-is-inside": "1.0.2" 2087 | } 2088 | }, 2089 | "is-plain-obj": { 2090 | "version": "1.1.0", 2091 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", 2092 | "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", 2093 | "dev": true 2094 | }, 2095 | "is-plain-object": { 2096 | "version": "2.0.4", 2097 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", 2098 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", 2099 | "dev": true, 2100 | "requires": { 2101 | "isobject": "3.0.1" 2102 | }, 2103 | "dependencies": { 2104 | "isobject": { 2105 | "version": "3.0.1", 2106 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", 2107 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", 2108 | "dev": true 2109 | } 2110 | } 2111 | }, 2112 | "is-posix-bracket": { 2113 | "version": "0.1.1", 2114 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 2115 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", 2116 | "dev": true 2117 | }, 2118 | "is-primitive": { 2119 | "version": "2.0.0", 2120 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 2121 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", 2122 | "dev": true 2123 | }, 2124 | "is-promise": { 2125 | "version": "2.1.0", 2126 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", 2127 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", 2128 | "dev": true 2129 | }, 2130 | "is-resolvable": { 2131 | "version": "1.1.0", 2132 | "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", 2133 | "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", 2134 | "dev": true 2135 | }, 2136 | "is-subset": { 2137 | "version": "0.1.1", 2138 | "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", 2139 | "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", 2140 | "dev": true 2141 | }, 2142 | "is-text-path": { 2143 | "version": "1.0.1", 2144 | "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", 2145 | "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", 2146 | "dev": true, 2147 | "requires": { 2148 | "text-extensions": "1.7.0" 2149 | } 2150 | }, 2151 | "is-typedarray": { 2152 | "version": "1.0.0", 2153 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 2154 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 2155 | "dev": true 2156 | }, 2157 | "is-utf8": { 2158 | "version": "0.2.1", 2159 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 2160 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 2161 | "dev": true 2162 | }, 2163 | "is-windows": { 2164 | "version": "0.2.0", 2165 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", 2166 | "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", 2167 | "dev": true 2168 | }, 2169 | "isarray": { 2170 | "version": "1.0.0", 2171 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2172 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 2173 | "dev": true 2174 | }, 2175 | "isexe": { 2176 | "version": "2.0.0", 2177 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2178 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2179 | "dev": true 2180 | }, 2181 | "isobject": { 2182 | "version": "2.1.0", 2183 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 2184 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 2185 | "dev": true, 2186 | "requires": { 2187 | "isarray": "1.0.0" 2188 | } 2189 | }, 2190 | "isstream": { 2191 | "version": "0.1.2", 2192 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 2193 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", 2194 | "dev": true 2195 | }, 2196 | "istanbul": { 2197 | "version": "0.4.5", 2198 | "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", 2199 | "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", 2200 | "dev": true, 2201 | "requires": { 2202 | "abbrev": "1.0.9", 2203 | "async": "1.5.2", 2204 | "escodegen": "1.8.1", 2205 | "esprima": "2.7.3", 2206 | "glob": "5.0.15", 2207 | "handlebars": "4.0.11", 2208 | "js-yaml": "3.11.0", 2209 | "mkdirp": "0.5.1", 2210 | "nopt": "3.0.6", 2211 | "once": "1.4.0", 2212 | "resolve": "1.1.7", 2213 | "supports-color": "3.2.3", 2214 | "which": "1.3.0", 2215 | "wordwrap": "1.0.0" 2216 | }, 2217 | "dependencies": { 2218 | "esprima": { 2219 | "version": "2.7.3", 2220 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", 2221 | "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", 2222 | "dev": true 2223 | }, 2224 | "glob": { 2225 | "version": "5.0.15", 2226 | "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", 2227 | "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", 2228 | "dev": true, 2229 | "requires": { 2230 | "inflight": "1.0.6", 2231 | "inherits": "2.0.3", 2232 | "minimatch": "3.0.4", 2233 | "once": "1.4.0", 2234 | "path-is-absolute": "1.0.1" 2235 | } 2236 | }, 2237 | "has-flag": { 2238 | "version": "1.0.0", 2239 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", 2240 | "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", 2241 | "dev": true 2242 | }, 2243 | "resolve": { 2244 | "version": "1.1.7", 2245 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", 2246 | "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", 2247 | "dev": true 2248 | }, 2249 | "supports-color": { 2250 | "version": "3.2.3", 2251 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", 2252 | "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", 2253 | "dev": true, 2254 | "requires": { 2255 | "has-flag": "1.0.0" 2256 | } 2257 | }, 2258 | "wordwrap": { 2259 | "version": "1.0.0", 2260 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 2261 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 2262 | "dev": true 2263 | } 2264 | } 2265 | }, 2266 | "jest-docblock": { 2267 | "version": "21.2.0", 2268 | "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", 2269 | "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", 2270 | "dev": true 2271 | }, 2272 | "js-tokens": { 2273 | "version": "3.0.2", 2274 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 2275 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 2276 | "dev": true 2277 | }, 2278 | "js-yaml": { 2279 | "version": "3.11.0", 2280 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", 2281 | "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", 2282 | "dev": true, 2283 | "requires": { 2284 | "argparse": "1.0.10", 2285 | "esprima": "4.0.0" 2286 | } 2287 | }, 2288 | "jsbn": { 2289 | "version": "0.1.1", 2290 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 2291 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 2292 | "dev": true, 2293 | "optional": true 2294 | }, 2295 | "json-parse-better-errors": { 2296 | "version": "1.0.2", 2297 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 2298 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 2299 | "dev": true 2300 | }, 2301 | "json-schema": { 2302 | "version": "0.2.3", 2303 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 2304 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", 2305 | "dev": true 2306 | }, 2307 | "json-schema-traverse": { 2308 | "version": "0.3.1", 2309 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", 2310 | "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", 2311 | "dev": true 2312 | }, 2313 | "json-stable-stringify-without-jsonify": { 2314 | "version": "1.0.1", 2315 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 2316 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 2317 | "dev": true 2318 | }, 2319 | "json-stringify-safe": { 2320 | "version": "5.0.1", 2321 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 2322 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 2323 | "dev": true 2324 | }, 2325 | "jsonfile": { 2326 | "version": "2.4.0", 2327 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", 2328 | "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", 2329 | "dev": true, 2330 | "requires": { 2331 | "graceful-fs": "4.1.11" 2332 | } 2333 | }, 2334 | "jsonparse": { 2335 | "version": "1.3.1", 2336 | "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", 2337 | "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", 2338 | "dev": true 2339 | }, 2340 | "jsprim": { 2341 | "version": "1.4.1", 2342 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 2343 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 2344 | "dev": true, 2345 | "requires": { 2346 | "assert-plus": "1.0.0", 2347 | "extsprintf": "1.3.0", 2348 | "json-schema": "0.2.3", 2349 | "verror": "1.10.0" 2350 | } 2351 | }, 2352 | "kind-of": { 2353 | "version": "3.2.2", 2354 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2355 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2356 | "dev": true, 2357 | "requires": { 2358 | "is-buffer": "1.1.6" 2359 | } 2360 | }, 2361 | "klaw": { 2362 | "version": "1.3.1", 2363 | "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", 2364 | "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", 2365 | "dev": true, 2366 | "requires": { 2367 | "graceful-fs": "4.1.11" 2368 | } 2369 | }, 2370 | "knifecycle": { 2371 | "version": "2.5.1", 2372 | "resolved": "https://registry.npmjs.org/knifecycle/-/knifecycle-2.5.1.tgz", 2373 | "integrity": "sha512-kmxrAt+6pEDddS6ztUacfPAAqT4iskwL1xbBYp0emMwPWyYt0QSGh39AJ1HK2GGDYJwF+7uLWwWQTLqVn/M3jA==", 2374 | "dev": true, 2375 | "requires": { 2376 | "debug": "3.1.0", 2377 | "yerror": "2.1.0" 2378 | } 2379 | }, 2380 | "lazy-cache": { 2381 | "version": "1.0.4", 2382 | "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", 2383 | "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", 2384 | "dev": true, 2385 | "optional": true 2386 | }, 2387 | "lcov-parse": { 2388 | "version": "0.0.10", 2389 | "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", 2390 | "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", 2391 | "dev": true 2392 | }, 2393 | "levn": { 2394 | "version": "0.3.0", 2395 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 2396 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 2397 | "dev": true, 2398 | "requires": { 2399 | "prelude-ls": "1.1.2", 2400 | "type-check": "0.3.2" 2401 | } 2402 | }, 2403 | "load-json-file": { 2404 | "version": "4.0.0", 2405 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", 2406 | "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", 2407 | "dev": true, 2408 | "requires": { 2409 | "graceful-fs": "4.1.11", 2410 | "parse-json": "4.0.0", 2411 | "pify": "3.0.0", 2412 | "strip-bom": "3.0.0" 2413 | } 2414 | }, 2415 | "locate-path": { 2416 | "version": "2.0.0", 2417 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 2418 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 2419 | "dev": true, 2420 | "requires": { 2421 | "p-locate": "2.0.0", 2422 | "path-exists": "3.0.0" 2423 | }, 2424 | "dependencies": { 2425 | "path-exists": { 2426 | "version": "3.0.0", 2427 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 2428 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 2429 | "dev": true 2430 | } 2431 | } 2432 | }, 2433 | "lodash": { 2434 | "version": "4.17.2", 2435 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz", 2436 | "integrity": "sha1-NKMFW6vgTOQkZ7YH1wAHLH/2v0I=", 2437 | "dev": true 2438 | }, 2439 | "lodash._reinterpolate": { 2440 | "version": "3.0.0", 2441 | "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", 2442 | "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", 2443 | "dev": true 2444 | }, 2445 | "lodash.map": { 2446 | "version": "4.6.0", 2447 | "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", 2448 | "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", 2449 | "dev": true 2450 | }, 2451 | "lodash.template": { 2452 | "version": "4.4.0", 2453 | "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", 2454 | "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", 2455 | "dev": true, 2456 | "requires": { 2457 | "lodash._reinterpolate": "3.0.0", 2458 | "lodash.templatesettings": "4.1.0" 2459 | } 2460 | }, 2461 | "lodash.templatesettings": { 2462 | "version": "4.1.0", 2463 | "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", 2464 | "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", 2465 | "dev": true, 2466 | "requires": { 2467 | "lodash._reinterpolate": "3.0.0" 2468 | } 2469 | }, 2470 | "log-driver": { 2471 | "version": "1.2.7", 2472 | "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", 2473 | "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", 2474 | "dev": true 2475 | }, 2476 | "longest": { 2477 | "version": "1.0.1", 2478 | "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", 2479 | "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", 2480 | "dev": true 2481 | }, 2482 | "loud-rejection": { 2483 | "version": "1.6.0", 2484 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", 2485 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", 2486 | "dev": true, 2487 | "requires": { 2488 | "currently-unhandled": "0.4.1", 2489 | "signal-exit": "3.0.2" 2490 | } 2491 | }, 2492 | "lru-cache": { 2493 | "version": "4.1.2", 2494 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", 2495 | "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", 2496 | "dev": true, 2497 | "requires": { 2498 | "pseudomap": "1.0.2", 2499 | "yallist": "2.1.2" 2500 | } 2501 | }, 2502 | "map-obj": { 2503 | "version": "2.0.0", 2504 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", 2505 | "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", 2506 | "dev": true 2507 | }, 2508 | "meow": { 2509 | "version": "4.0.1", 2510 | "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", 2511 | "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", 2512 | "dev": true, 2513 | "requires": { 2514 | "camelcase-keys": "4.2.0", 2515 | "decamelize-keys": "1.1.0", 2516 | "loud-rejection": "1.6.0", 2517 | "minimist": "1.2.0", 2518 | "minimist-options": "3.0.2", 2519 | "normalize-package-data": "2.4.0", 2520 | "read-pkg-up": "3.0.0", 2521 | "redent": "2.0.0", 2522 | "trim-newlines": "2.0.0" 2523 | }, 2524 | "dependencies": { 2525 | "read-pkg": { 2526 | "version": "3.0.0", 2527 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", 2528 | "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", 2529 | "dev": true, 2530 | "requires": { 2531 | "load-json-file": "4.0.0", 2532 | "normalize-package-data": "2.4.0", 2533 | "path-type": "3.0.0" 2534 | } 2535 | }, 2536 | "read-pkg-up": { 2537 | "version": "3.0.0", 2538 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", 2539 | "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", 2540 | "dev": true, 2541 | "requires": { 2542 | "find-up": "2.1.0", 2543 | "read-pkg": "3.0.0" 2544 | } 2545 | } 2546 | } 2547 | }, 2548 | "merge": { 2549 | "version": "1.2.0", 2550 | "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", 2551 | "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", 2552 | "dev": true 2553 | }, 2554 | "metapak": { 2555 | "version": "1.0.3", 2556 | "resolved": "https://registry.npmjs.org/metapak/-/metapak-1.0.3.tgz", 2557 | "integrity": "sha512-wS0+o1iVeM/vtuQhTpLtGTlGXtqTAzAVAgtm2DD7cFXGD1DRiwMC3bAkM+uwoIIZvyXGlHY65DDnpXfvrgwmlQ==", 2558 | "dev": true, 2559 | "requires": { 2560 | "bluebird": "3.5.1", 2561 | "commander": "2.15.1", 2562 | "debug": "3.1.0", 2563 | "glob": "7.1.2", 2564 | "knifecycle": "2.5.1", 2565 | "mkdirp": "0.5.1", 2566 | "sort-object": "3.0.2", 2567 | "yerror": "2.1.0" 2568 | }, 2569 | "dependencies": { 2570 | "glob": { 2571 | "version": "7.1.2", 2572 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 2573 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 2574 | "dev": true, 2575 | "requires": { 2576 | "fs.realpath": "1.0.0", 2577 | "inflight": "1.0.6", 2578 | "inherits": "2.0.3", 2579 | "minimatch": "3.0.4", 2580 | "once": "1.4.0", 2581 | "path-is-absolute": "1.0.1" 2582 | } 2583 | } 2584 | } 2585 | }, 2586 | "metapak-nfroidure": { 2587 | "version": "6.0.0", 2588 | "resolved": "https://registry.npmjs.org/metapak-nfroidure/-/metapak-nfroidure-6.0.0.tgz", 2589 | "integrity": "sha512-xvwwSKo8N9+YB5KQpzA9yxEk5Pc8dnkGX9uXdLmlzyWIALlAyfgIGdQMgxlnSLL6nHNrqVRKIJK7L4YSV7a5AQ==", 2590 | "dev": true 2591 | }, 2592 | "micromatch": { 2593 | "version": "2.3.11", 2594 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 2595 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 2596 | "dev": true, 2597 | "requires": { 2598 | "arr-diff": "2.0.0", 2599 | "array-unique": "0.2.1", 2600 | "braces": "1.8.5", 2601 | "expand-brackets": "0.1.5", 2602 | "extglob": "0.3.2", 2603 | "filename-regex": "2.0.1", 2604 | "is-extglob": "1.0.0", 2605 | "is-glob": "2.0.1", 2606 | "kind-of": "3.2.2", 2607 | "normalize-path": "2.1.1", 2608 | "object.omit": "2.0.1", 2609 | "parse-glob": "3.0.4", 2610 | "regex-cache": "0.4.4" 2611 | } 2612 | }, 2613 | "mime-db": { 2614 | "version": "1.33.0", 2615 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", 2616 | "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", 2617 | "dev": true 2618 | }, 2619 | "mime-types": { 2620 | "version": "2.1.18", 2621 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", 2622 | "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", 2623 | "dev": true, 2624 | "requires": { 2625 | "mime-db": "1.33.0" 2626 | } 2627 | }, 2628 | "mimic-fn": { 2629 | "version": "1.2.0", 2630 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 2631 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", 2632 | "dev": true 2633 | }, 2634 | "minimatch": { 2635 | "version": "3.0.4", 2636 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2637 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2638 | "dev": true, 2639 | "requires": { 2640 | "brace-expansion": "1.1.11" 2641 | } 2642 | }, 2643 | "minimist": { 2644 | "version": "1.2.0", 2645 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 2646 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 2647 | "dev": true 2648 | }, 2649 | "minimist-options": { 2650 | "version": "3.0.2", 2651 | "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", 2652 | "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", 2653 | "dev": true, 2654 | "requires": { 2655 | "arrify": "1.0.1", 2656 | "is-plain-obj": "1.1.0" 2657 | } 2658 | }, 2659 | "mkdirp": { 2660 | "version": "0.5.1", 2661 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 2662 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 2663 | "dev": true, 2664 | "requires": { 2665 | "minimist": "0.0.8" 2666 | }, 2667 | "dependencies": { 2668 | "minimist": { 2669 | "version": "0.0.8", 2670 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 2671 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 2672 | "dev": true 2673 | } 2674 | } 2675 | }, 2676 | "mocha": { 2677 | "version": "5.1.1", 2678 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.1.1.tgz", 2679 | "integrity": "sha512-kKKs/H1KrMMQIEsWNxGmb4/BGsmj0dkeyotEvbrAuQ01FcWRLssUNXCEUZk6SZtyJBi6EE7SL0zDDtItw1rGhw==", 2680 | "dev": true, 2681 | "requires": { 2682 | "browser-stdout": "1.3.1", 2683 | "commander": "2.11.0", 2684 | "debug": "3.1.0", 2685 | "diff": "3.5.0", 2686 | "escape-string-regexp": "1.0.5", 2687 | "glob": "7.1.2", 2688 | "growl": "1.10.3", 2689 | "he": "1.1.1", 2690 | "minimatch": "3.0.4", 2691 | "mkdirp": "0.5.1", 2692 | "supports-color": "4.4.0" 2693 | }, 2694 | "dependencies": { 2695 | "commander": { 2696 | "version": "2.11.0", 2697 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", 2698 | "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", 2699 | "dev": true 2700 | }, 2701 | "glob": { 2702 | "version": "7.1.2", 2703 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 2704 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 2705 | "dev": true, 2706 | "requires": { 2707 | "fs.realpath": "1.0.0", 2708 | "inflight": "1.0.6", 2709 | "inherits": "2.0.3", 2710 | "minimatch": "3.0.4", 2711 | "once": "1.4.0", 2712 | "path-is-absolute": "1.0.1" 2713 | } 2714 | }, 2715 | "has-flag": { 2716 | "version": "2.0.0", 2717 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", 2718 | "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", 2719 | "dev": true 2720 | }, 2721 | "supports-color": { 2722 | "version": "4.4.0", 2723 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", 2724 | "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", 2725 | "dev": true, 2726 | "requires": { 2727 | "has-flag": "2.0.0" 2728 | } 2729 | } 2730 | } 2731 | }, 2732 | "mocha-lcov-reporter": { 2733 | "version": "1.3.0", 2734 | "resolved": "https://registry.npmjs.org/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz", 2735 | "integrity": "sha1-Rpve9PivyaEWBW8HnfYYLQr7A4Q=", 2736 | "dev": true 2737 | }, 2738 | "modify-values": { 2739 | "version": "1.0.1", 2740 | "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", 2741 | "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", 2742 | "dev": true 2743 | }, 2744 | "ms": { 2745 | "version": "2.0.0", 2746 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2747 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 2748 | "dev": true 2749 | }, 2750 | "mute-stream": { 2751 | "version": "0.0.6", 2752 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz", 2753 | "integrity": "sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s=", 2754 | "dev": true 2755 | }, 2756 | "natural-compare": { 2757 | "version": "1.4.0", 2758 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 2759 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 2760 | "dev": true 2761 | }, 2762 | "nopt": { 2763 | "version": "3.0.6", 2764 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", 2765 | "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", 2766 | "dev": true, 2767 | "requires": { 2768 | "abbrev": "1.0.9" 2769 | } 2770 | }, 2771 | "normalize-package-data": { 2772 | "version": "2.4.0", 2773 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 2774 | "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", 2775 | "dev": true, 2776 | "requires": { 2777 | "hosted-git-info": "2.6.0", 2778 | "is-builtin-module": "1.0.0", 2779 | "semver": "5.5.0", 2780 | "validate-npm-package-license": "3.0.3" 2781 | } 2782 | }, 2783 | "normalize-path": { 2784 | "version": "2.1.1", 2785 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 2786 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 2787 | "dev": true, 2788 | "requires": { 2789 | "remove-trailing-separator": "1.1.0" 2790 | } 2791 | }, 2792 | "number-is-nan": { 2793 | "version": "1.0.1", 2794 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 2795 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 2796 | "dev": true 2797 | }, 2798 | "oauth-sign": { 2799 | "version": "0.8.2", 2800 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", 2801 | "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", 2802 | "dev": true 2803 | }, 2804 | "object-assign": { 2805 | "version": "4.1.1", 2806 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2807 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 2808 | "dev": true 2809 | }, 2810 | "object.omit": { 2811 | "version": "2.0.1", 2812 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 2813 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 2814 | "dev": true, 2815 | "requires": { 2816 | "for-own": "0.1.5", 2817 | "is-extendable": "0.1.1" 2818 | } 2819 | }, 2820 | "once": { 2821 | "version": "1.4.0", 2822 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2823 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2824 | "dev": true, 2825 | "requires": { 2826 | "wrappy": "1.0.2" 2827 | } 2828 | }, 2829 | "onetime": { 2830 | "version": "1.1.0", 2831 | "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", 2832 | "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", 2833 | "dev": true 2834 | }, 2835 | "optimist": { 2836 | "version": "0.6.1", 2837 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", 2838 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", 2839 | "dev": true, 2840 | "requires": { 2841 | "minimist": "0.0.10", 2842 | "wordwrap": "0.0.3" 2843 | }, 2844 | "dependencies": { 2845 | "minimist": { 2846 | "version": "0.0.10", 2847 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", 2848 | "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", 2849 | "dev": true 2850 | } 2851 | } 2852 | }, 2853 | "optionator": { 2854 | "version": "0.8.2", 2855 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 2856 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 2857 | "dev": true, 2858 | "requires": { 2859 | "deep-is": "0.1.3", 2860 | "fast-levenshtein": "2.0.6", 2861 | "levn": "0.3.0", 2862 | "prelude-ls": "1.1.2", 2863 | "type-check": "0.3.2", 2864 | "wordwrap": "1.0.0" 2865 | }, 2866 | "dependencies": { 2867 | "wordwrap": { 2868 | "version": "1.0.0", 2869 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 2870 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 2871 | "dev": true 2872 | } 2873 | } 2874 | }, 2875 | "os-homedir": { 2876 | "version": "1.0.2", 2877 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 2878 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 2879 | "dev": true 2880 | }, 2881 | "os-shim": { 2882 | "version": "0.1.3", 2883 | "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", 2884 | "integrity": "sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=", 2885 | "dev": true 2886 | }, 2887 | "os-tmpdir": { 2888 | "version": "1.0.2", 2889 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 2890 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 2891 | "dev": true 2892 | }, 2893 | "p-limit": { 2894 | "version": "1.2.0", 2895 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", 2896 | "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", 2897 | "dev": true, 2898 | "requires": { 2899 | "p-try": "1.0.0" 2900 | } 2901 | }, 2902 | "p-locate": { 2903 | "version": "2.0.0", 2904 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 2905 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 2906 | "dev": true, 2907 | "requires": { 2908 | "p-limit": "1.2.0" 2909 | } 2910 | }, 2911 | "p-try": { 2912 | "version": "1.0.0", 2913 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", 2914 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", 2915 | "dev": true 2916 | }, 2917 | "pad-right": { 2918 | "version": "0.2.2", 2919 | "resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz", 2920 | "integrity": "sha1-b7ySQEXSRPKiokRQMGDTv8YAl3Q=", 2921 | "dev": true, 2922 | "requires": { 2923 | "repeat-string": "1.6.1" 2924 | } 2925 | }, 2926 | "parse-github-repo-url": { 2927 | "version": "1.4.1", 2928 | "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz", 2929 | "integrity": "sha1-nn2LslKmy2ukJZUGC3v23z28H1A=", 2930 | "dev": true 2931 | }, 2932 | "parse-glob": { 2933 | "version": "3.0.4", 2934 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 2935 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 2936 | "dev": true, 2937 | "requires": { 2938 | "glob-base": "0.3.0", 2939 | "is-dotfile": "1.0.3", 2940 | "is-extglob": "1.0.0", 2941 | "is-glob": "2.0.1" 2942 | } 2943 | }, 2944 | "parse-json": { 2945 | "version": "4.0.0", 2946 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 2947 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", 2948 | "dev": true, 2949 | "requires": { 2950 | "error-ex": "1.3.1", 2951 | "json-parse-better-errors": "1.0.2" 2952 | } 2953 | }, 2954 | "parse-passwd": { 2955 | "version": "1.0.0", 2956 | "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", 2957 | "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", 2958 | "dev": true 2959 | }, 2960 | "path-exists": { 2961 | "version": "2.1.0", 2962 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 2963 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 2964 | "dev": true, 2965 | "requires": { 2966 | "pinkie-promise": "2.0.1" 2967 | } 2968 | }, 2969 | "path-is-absolute": { 2970 | "version": "1.0.1", 2971 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2972 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2973 | "dev": true 2974 | }, 2975 | "path-is-inside": { 2976 | "version": "1.0.2", 2977 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 2978 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 2979 | "dev": true 2980 | }, 2981 | "path-parse": { 2982 | "version": "1.0.5", 2983 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", 2984 | "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", 2985 | "dev": true 2986 | }, 2987 | "path-type": { 2988 | "version": "3.0.0", 2989 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", 2990 | "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", 2991 | "dev": true, 2992 | "requires": { 2993 | "pify": "3.0.0" 2994 | } 2995 | }, 2996 | "performance-now": { 2997 | "version": "2.1.0", 2998 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 2999 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", 3000 | "dev": true 3001 | }, 3002 | "pify": { 3003 | "version": "3.0.0", 3004 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 3005 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 3006 | "dev": true 3007 | }, 3008 | "pinkie": { 3009 | "version": "2.0.4", 3010 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 3011 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 3012 | "dev": true 3013 | }, 3014 | "pinkie-promise": { 3015 | "version": "2.0.1", 3016 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 3017 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 3018 | "dev": true, 3019 | "requires": { 3020 | "pinkie": "2.0.4" 3021 | } 3022 | }, 3023 | "pluralize": { 3024 | "version": "7.0.0", 3025 | "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", 3026 | "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", 3027 | "dev": true 3028 | }, 3029 | "prelude-ls": { 3030 | "version": "1.1.2", 3031 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 3032 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 3033 | "dev": true 3034 | }, 3035 | "preserve": { 3036 | "version": "0.2.0", 3037 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 3038 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", 3039 | "dev": true 3040 | }, 3041 | "prettier": { 3042 | "version": "1.12.1", 3043 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.12.1.tgz", 3044 | "integrity": "sha1-wa0g6APndJ+vkFpAnSNn4Gu+cyU=", 3045 | "dev": true 3046 | }, 3047 | "process-nextick-args": { 3048 | "version": "2.0.0", 3049 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", 3050 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", 3051 | "dev": true 3052 | }, 3053 | "progress": { 3054 | "version": "2.0.0", 3055 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", 3056 | "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", 3057 | "dev": true 3058 | }, 3059 | "pseudomap": { 3060 | "version": "1.0.2", 3061 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 3062 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 3063 | "dev": true 3064 | }, 3065 | "punycode": { 3066 | "version": "1.4.1", 3067 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 3068 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 3069 | "dev": true 3070 | }, 3071 | "q": { 3072 | "version": "1.5.1", 3073 | "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", 3074 | "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", 3075 | "dev": true 3076 | }, 3077 | "qs": { 3078 | "version": "6.5.1", 3079 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", 3080 | "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", 3081 | "dev": true 3082 | }, 3083 | "quick-lru": { 3084 | "version": "1.1.0", 3085 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", 3086 | "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", 3087 | "dev": true 3088 | }, 3089 | "randomatic": { 3090 | "version": "1.1.7", 3091 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", 3092 | "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", 3093 | "dev": true, 3094 | "requires": { 3095 | "is-number": "3.0.0", 3096 | "kind-of": "4.0.0" 3097 | }, 3098 | "dependencies": { 3099 | "is-number": { 3100 | "version": "3.0.0", 3101 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 3102 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 3103 | "dev": true, 3104 | "requires": { 3105 | "kind-of": "3.2.2" 3106 | }, 3107 | "dependencies": { 3108 | "kind-of": { 3109 | "version": "3.2.2", 3110 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 3111 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3112 | "dev": true, 3113 | "requires": { 3114 | "is-buffer": "1.1.6" 3115 | } 3116 | } 3117 | } 3118 | }, 3119 | "kind-of": { 3120 | "version": "4.0.0", 3121 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 3122 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 3123 | "dev": true, 3124 | "requires": { 3125 | "is-buffer": "1.1.6" 3126 | } 3127 | } 3128 | } 3129 | }, 3130 | "read-pkg": { 3131 | "version": "1.1.0", 3132 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 3133 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 3134 | "dev": true, 3135 | "requires": { 3136 | "load-json-file": "1.1.0", 3137 | "normalize-package-data": "2.4.0", 3138 | "path-type": "1.1.0" 3139 | }, 3140 | "dependencies": { 3141 | "load-json-file": { 3142 | "version": "1.1.0", 3143 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 3144 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 3145 | "dev": true, 3146 | "requires": { 3147 | "graceful-fs": "4.1.11", 3148 | "parse-json": "2.2.0", 3149 | "pify": "2.3.0", 3150 | "pinkie-promise": "2.0.1", 3151 | "strip-bom": "2.0.0" 3152 | } 3153 | }, 3154 | "parse-json": { 3155 | "version": "2.2.0", 3156 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 3157 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 3158 | "dev": true, 3159 | "requires": { 3160 | "error-ex": "1.3.1" 3161 | } 3162 | }, 3163 | "path-type": { 3164 | "version": "1.1.0", 3165 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 3166 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 3167 | "dev": true, 3168 | "requires": { 3169 | "graceful-fs": "4.1.11", 3170 | "pify": "2.3.0", 3171 | "pinkie-promise": "2.0.1" 3172 | } 3173 | }, 3174 | "pify": { 3175 | "version": "2.3.0", 3176 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 3177 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 3178 | "dev": true 3179 | }, 3180 | "strip-bom": { 3181 | "version": "2.0.0", 3182 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 3183 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 3184 | "dev": true, 3185 | "requires": { 3186 | "is-utf8": "0.2.1" 3187 | } 3188 | } 3189 | } 3190 | }, 3191 | "read-pkg-up": { 3192 | "version": "1.0.1", 3193 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 3194 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 3195 | "dev": true, 3196 | "requires": { 3197 | "find-up": "1.1.2", 3198 | "read-pkg": "1.1.0" 3199 | }, 3200 | "dependencies": { 3201 | "find-up": { 3202 | "version": "1.1.2", 3203 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 3204 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 3205 | "dev": true, 3206 | "requires": { 3207 | "path-exists": "2.1.0", 3208 | "pinkie-promise": "2.0.1" 3209 | } 3210 | } 3211 | } 3212 | }, 3213 | "readable-stream": { 3214 | "version": "2.3.6", 3215 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 3216 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 3217 | "dev": true, 3218 | "requires": { 3219 | "core-util-is": "1.0.2", 3220 | "inherits": "2.0.3", 3221 | "isarray": "1.0.0", 3222 | "process-nextick-args": "2.0.0", 3223 | "safe-buffer": "5.1.2", 3224 | "string_decoder": "1.1.1", 3225 | "util-deprecate": "1.0.2" 3226 | } 3227 | }, 3228 | "rechoir": { 3229 | "version": "0.6.2", 3230 | "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", 3231 | "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", 3232 | "dev": true, 3233 | "requires": { 3234 | "resolve": "1.7.1" 3235 | } 3236 | }, 3237 | "redent": { 3238 | "version": "2.0.0", 3239 | "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", 3240 | "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", 3241 | "dev": true, 3242 | "requires": { 3243 | "indent-string": "3.2.0", 3244 | "strip-indent": "2.0.0" 3245 | } 3246 | }, 3247 | "regex-cache": { 3248 | "version": "0.4.4", 3249 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", 3250 | "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", 3251 | "dev": true, 3252 | "requires": { 3253 | "is-equal-shallow": "0.1.3" 3254 | } 3255 | }, 3256 | "regexpp": { 3257 | "version": "1.1.0", 3258 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", 3259 | "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", 3260 | "dev": true 3261 | }, 3262 | "remove-trailing-separator": { 3263 | "version": "1.1.0", 3264 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 3265 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 3266 | "dev": true 3267 | }, 3268 | "repeat-element": { 3269 | "version": "1.1.2", 3270 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 3271 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", 3272 | "dev": true 3273 | }, 3274 | "repeat-string": { 3275 | "version": "1.6.1", 3276 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 3277 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 3278 | "dev": true 3279 | }, 3280 | "repeating": { 3281 | "version": "2.0.1", 3282 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 3283 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 3284 | "dev": true, 3285 | "requires": { 3286 | "is-finite": "1.0.2" 3287 | } 3288 | }, 3289 | "request": { 3290 | "version": "2.85.0", 3291 | "resolved": "https://registry.npmjs.org/request/-/request-2.85.0.tgz", 3292 | "integrity": "sha512-8H7Ehijd4js+s6wuVPLjwORxD4zeuyjYugprdOXlPSqaApmL/QOy+EB/beICHVCHkGMKNh5rvihb5ov+IDw4mg==", 3293 | "dev": true, 3294 | "requires": { 3295 | "aws-sign2": "0.7.0", 3296 | "aws4": "1.7.0", 3297 | "caseless": "0.12.0", 3298 | "combined-stream": "1.0.6", 3299 | "extend": "3.0.1", 3300 | "forever-agent": "0.6.1", 3301 | "form-data": "2.3.2", 3302 | "har-validator": "5.0.3", 3303 | "hawk": "6.0.2", 3304 | "http-signature": "1.2.0", 3305 | "is-typedarray": "1.0.0", 3306 | "isstream": "0.1.2", 3307 | "json-stringify-safe": "5.0.1", 3308 | "mime-types": "2.1.18", 3309 | "oauth-sign": "0.8.2", 3310 | "performance-now": "2.1.0", 3311 | "qs": "6.5.1", 3312 | "safe-buffer": "5.1.2", 3313 | "stringstream": "0.0.5", 3314 | "tough-cookie": "2.3.4", 3315 | "tunnel-agent": "0.6.0", 3316 | "uuid": "3.2.1" 3317 | }, 3318 | "dependencies": { 3319 | "uuid": { 3320 | "version": "3.2.1", 3321 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", 3322 | "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", 3323 | "dev": true 3324 | } 3325 | } 3326 | }, 3327 | "require-uncached": { 3328 | "version": "1.0.3", 3329 | "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", 3330 | "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", 3331 | "dev": true, 3332 | "requires": { 3333 | "caller-path": "0.1.0", 3334 | "resolve-from": "1.0.1" 3335 | } 3336 | }, 3337 | "resolve": { 3338 | "version": "1.7.1", 3339 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", 3340 | "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", 3341 | "dev": true, 3342 | "requires": { 3343 | "path-parse": "1.0.5" 3344 | } 3345 | }, 3346 | "resolve-dir": { 3347 | "version": "0.1.1", 3348 | "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", 3349 | "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=", 3350 | "dev": true, 3351 | "requires": { 3352 | "expand-tilde": "1.2.2", 3353 | "global-modules": "0.2.3" 3354 | } 3355 | }, 3356 | "resolve-from": { 3357 | "version": "1.0.1", 3358 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", 3359 | "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", 3360 | "dev": true 3361 | }, 3362 | "restore-cursor": { 3363 | "version": "1.0.1", 3364 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", 3365 | "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", 3366 | "dev": true, 3367 | "requires": { 3368 | "exit-hook": "1.1.1", 3369 | "onetime": "1.1.0" 3370 | } 3371 | }, 3372 | "right-align": { 3373 | "version": "0.1.3", 3374 | "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", 3375 | "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", 3376 | "dev": true, 3377 | "optional": true, 3378 | "requires": { 3379 | "align-text": "0.1.4" 3380 | } 3381 | }, 3382 | "right-pad": { 3383 | "version": "1.0.1", 3384 | "resolved": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz", 3385 | "integrity": "sha1-jKCMLLtbVedNr6lr9/0aJ9VoyNA=", 3386 | "dev": true 3387 | }, 3388 | "rimraf": { 3389 | "version": "2.6.2", 3390 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", 3391 | "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", 3392 | "dev": true, 3393 | "requires": { 3394 | "glob": "7.1.1" 3395 | } 3396 | }, 3397 | "run-async": { 3398 | "version": "2.3.0", 3399 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", 3400 | "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", 3401 | "dev": true, 3402 | "requires": { 3403 | "is-promise": "2.1.0" 3404 | } 3405 | }, 3406 | "rx": { 3407 | "version": "4.1.0", 3408 | "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", 3409 | "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", 3410 | "dev": true 3411 | }, 3412 | "rx-lite": { 3413 | "version": "4.0.8", 3414 | "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", 3415 | "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", 3416 | "dev": true 3417 | }, 3418 | "rx-lite-aggregates": { 3419 | "version": "4.0.8", 3420 | "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", 3421 | "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", 3422 | "dev": true, 3423 | "requires": { 3424 | "rx-lite": "4.0.8" 3425 | } 3426 | }, 3427 | "safe-buffer": { 3428 | "version": "5.1.2", 3429 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 3430 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 3431 | "dev": true 3432 | }, 3433 | "safer-buffer": { 3434 | "version": "2.1.2", 3435 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 3436 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 3437 | "dev": true 3438 | }, 3439 | "semver": { 3440 | "version": "5.5.0", 3441 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", 3442 | "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", 3443 | "dev": true 3444 | }, 3445 | "set-value": { 3446 | "version": "0.4.3", 3447 | "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", 3448 | "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", 3449 | "dev": true, 3450 | "requires": { 3451 | "extend-shallow": "2.0.1", 3452 | "is-extendable": "0.1.1", 3453 | "is-plain-object": "2.0.4", 3454 | "to-object-path": "0.3.0" 3455 | } 3456 | }, 3457 | "shebang-command": { 3458 | "version": "1.2.0", 3459 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 3460 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 3461 | "dev": true, 3462 | "requires": { 3463 | "shebang-regex": "1.0.0" 3464 | } 3465 | }, 3466 | "shebang-regex": { 3467 | "version": "1.0.0", 3468 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 3469 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 3470 | "dev": true 3471 | }, 3472 | "shelljs": { 3473 | "version": "0.7.6", 3474 | "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.6.tgz", 3475 | "integrity": "sha1-N5zM+1a5HIYB5HkzVutTgpJN6a0=", 3476 | "dev": true, 3477 | "requires": { 3478 | "glob": "7.1.1", 3479 | "interpret": "1.1.0", 3480 | "rechoir": "0.6.2" 3481 | } 3482 | }, 3483 | "signal-exit": { 3484 | "version": "3.0.2", 3485 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 3486 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 3487 | "dev": true 3488 | }, 3489 | "slice-ansi": { 3490 | "version": "1.0.0", 3491 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", 3492 | "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", 3493 | "dev": true, 3494 | "requires": { 3495 | "is-fullwidth-code-point": "2.0.0" 3496 | }, 3497 | "dependencies": { 3498 | "is-fullwidth-code-point": { 3499 | "version": "2.0.0", 3500 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 3501 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 3502 | "dev": true 3503 | } 3504 | } 3505 | }, 3506 | "sntp": { 3507 | "version": "2.1.0", 3508 | "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", 3509 | "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", 3510 | "dev": true, 3511 | "requires": { 3512 | "hoek": "4.2.1" 3513 | } 3514 | }, 3515 | "sort-asc": { 3516 | "version": "0.2.0", 3517 | "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz", 3518 | "integrity": "sha1-AKSelHvCXVEL/eLLuN/9qfUOsvw=", 3519 | "dev": true 3520 | }, 3521 | "sort-desc": { 3522 | "version": "0.2.0", 3523 | "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz", 3524 | "integrity": "sha1-KAwb2vxld4h87brR7S5BwDeXZkY=", 3525 | "dev": true 3526 | }, 3527 | "sort-object": { 3528 | "version": "3.0.2", 3529 | "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.2.tgz", 3530 | "integrity": "sha1-2vK2k/YR990qIbgrgF5OrCMPdV4=", 3531 | "dev": true, 3532 | "requires": { 3533 | "bytewise": "1.1.0", 3534 | "get-value": "2.0.6", 3535 | "is-extendable": "0.1.1", 3536 | "sort-asc": "0.2.0", 3537 | "sort-desc": "0.2.0", 3538 | "union-value": "0.2.4" 3539 | } 3540 | }, 3541 | "source-map": { 3542 | "version": "0.4.4", 3543 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", 3544 | "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", 3545 | "dev": true, 3546 | "requires": { 3547 | "amdefine": "1.0.1" 3548 | } 3549 | }, 3550 | "spawn-sync": { 3551 | "version": "1.0.15", 3552 | "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", 3553 | "integrity": "sha1-sAeZVX63+wyDdsKdROih6mfldHY=", 3554 | "dev": true, 3555 | "requires": { 3556 | "concat-stream": "1.6.2", 3557 | "os-shim": "0.1.3" 3558 | } 3559 | }, 3560 | "spdx-correct": { 3561 | "version": "3.0.0", 3562 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", 3563 | "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", 3564 | "dev": true, 3565 | "requires": { 3566 | "spdx-expression-parse": "3.0.0", 3567 | "spdx-license-ids": "3.0.0" 3568 | } 3569 | }, 3570 | "spdx-exceptions": { 3571 | "version": "2.1.0", 3572 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", 3573 | "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", 3574 | "dev": true 3575 | }, 3576 | "spdx-expression-parse": { 3577 | "version": "3.0.0", 3578 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", 3579 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", 3580 | "dev": true, 3581 | "requires": { 3582 | "spdx-exceptions": "2.1.0", 3583 | "spdx-license-ids": "3.0.0" 3584 | } 3585 | }, 3586 | "spdx-license-ids": { 3587 | "version": "3.0.0", 3588 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", 3589 | "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", 3590 | "dev": true 3591 | }, 3592 | "split": { 3593 | "version": "1.0.1", 3594 | "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", 3595 | "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", 3596 | "dev": true, 3597 | "requires": { 3598 | "through": "2.3.8" 3599 | } 3600 | }, 3601 | "split2": { 3602 | "version": "2.2.0", 3603 | "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", 3604 | "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", 3605 | "dev": true, 3606 | "requires": { 3607 | "through2": "2.0.3" 3608 | } 3609 | }, 3610 | "sprintf-js": { 3611 | "version": "1.0.3", 3612 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 3613 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 3614 | "dev": true 3615 | }, 3616 | "sshpk": { 3617 | "version": "1.14.1", 3618 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", 3619 | "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", 3620 | "dev": true, 3621 | "requires": { 3622 | "asn1": "0.2.3", 3623 | "assert-plus": "1.0.0", 3624 | "bcrypt-pbkdf": "1.0.1", 3625 | "dashdash": "1.14.1", 3626 | "ecc-jsbn": "0.1.1", 3627 | "getpass": "0.1.7", 3628 | "jsbn": "0.1.1", 3629 | "tweetnacl": "0.14.5" 3630 | } 3631 | }, 3632 | "string-width": { 3633 | "version": "1.0.2", 3634 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 3635 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 3636 | "dev": true, 3637 | "requires": { 3638 | "code-point-at": "1.1.0", 3639 | "is-fullwidth-code-point": "1.0.0", 3640 | "strip-ansi": "3.0.1" 3641 | } 3642 | }, 3643 | "string_decoder": { 3644 | "version": "1.1.1", 3645 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 3646 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 3647 | "dev": true, 3648 | "requires": { 3649 | "safe-buffer": "5.1.2" 3650 | } 3651 | }, 3652 | "stringstream": { 3653 | "version": "0.0.5", 3654 | "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", 3655 | "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", 3656 | "dev": true 3657 | }, 3658 | "strip-ansi": { 3659 | "version": "3.0.1", 3660 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 3661 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 3662 | "dev": true, 3663 | "requires": { 3664 | "ansi-regex": "2.1.1" 3665 | } 3666 | }, 3667 | "strip-bom": { 3668 | "version": "3.0.0", 3669 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 3670 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 3671 | "dev": true 3672 | }, 3673 | "strip-indent": { 3674 | "version": "2.0.0", 3675 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", 3676 | "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", 3677 | "dev": true 3678 | }, 3679 | "strip-json-comments": { 3680 | "version": "2.0.1", 3681 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 3682 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 3683 | "dev": true 3684 | }, 3685 | "supports-color": { 3686 | "version": "2.0.0", 3687 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 3688 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 3689 | "dev": true 3690 | }, 3691 | "table": { 3692 | "version": "4.0.2", 3693 | "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", 3694 | "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", 3695 | "dev": true, 3696 | "requires": { 3697 | "ajv": "5.5.2", 3698 | "ajv-keywords": "2.1.1", 3699 | "chalk": "2.4.1", 3700 | "lodash": "4.17.10", 3701 | "slice-ansi": "1.0.0", 3702 | "string-width": "2.1.1" 3703 | }, 3704 | "dependencies": { 3705 | "ansi-regex": { 3706 | "version": "3.0.0", 3707 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 3708 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 3709 | "dev": true 3710 | }, 3711 | "ansi-styles": { 3712 | "version": "3.2.1", 3713 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 3714 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 3715 | "dev": true, 3716 | "requires": { 3717 | "color-convert": "1.9.1" 3718 | } 3719 | }, 3720 | "chalk": { 3721 | "version": "2.4.1", 3722 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", 3723 | "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", 3724 | "dev": true, 3725 | "requires": { 3726 | "ansi-styles": "3.2.1", 3727 | "escape-string-regexp": "1.0.5", 3728 | "supports-color": "5.4.0" 3729 | } 3730 | }, 3731 | "is-fullwidth-code-point": { 3732 | "version": "2.0.0", 3733 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 3734 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 3735 | "dev": true 3736 | }, 3737 | "lodash": { 3738 | "version": "4.17.10", 3739 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", 3740 | "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", 3741 | "dev": true 3742 | }, 3743 | "string-width": { 3744 | "version": "2.1.1", 3745 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 3746 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 3747 | "dev": true, 3748 | "requires": { 3749 | "is-fullwidth-code-point": "2.0.0", 3750 | "strip-ansi": "4.0.0" 3751 | } 3752 | }, 3753 | "strip-ansi": { 3754 | "version": "4.0.0", 3755 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 3756 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 3757 | "dev": true, 3758 | "requires": { 3759 | "ansi-regex": "3.0.0" 3760 | } 3761 | }, 3762 | "supports-color": { 3763 | "version": "5.4.0", 3764 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", 3765 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", 3766 | "dev": true, 3767 | "requires": { 3768 | "has-flag": "3.0.0" 3769 | } 3770 | } 3771 | } 3772 | }, 3773 | "tempfile": { 3774 | "version": "1.1.1", 3775 | "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz", 3776 | "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=", 3777 | "dev": true, 3778 | "requires": { 3779 | "os-tmpdir": "1.0.2", 3780 | "uuid": "2.0.3" 3781 | } 3782 | }, 3783 | "text-extensions": { 3784 | "version": "1.7.0", 3785 | "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.7.0.tgz", 3786 | "integrity": "sha512-AKXZeDq230UaSzaO5s3qQUZOaC7iKbzq0jOFL614R7d9R593HLqAOL0cYoqLdkNrjBSOdmoQI06yigq1TSBXAg==", 3787 | "dev": true 3788 | }, 3789 | "text-table": { 3790 | "version": "0.2.0", 3791 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 3792 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 3793 | "dev": true 3794 | }, 3795 | "through": { 3796 | "version": "2.3.8", 3797 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 3798 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 3799 | "dev": true 3800 | }, 3801 | "through2": { 3802 | "version": "2.0.3", 3803 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", 3804 | "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", 3805 | "dev": true, 3806 | "requires": { 3807 | "readable-stream": "2.3.6", 3808 | "xtend": "4.0.1" 3809 | } 3810 | }, 3811 | "tmp": { 3812 | "version": "0.0.29", 3813 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", 3814 | "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=", 3815 | "dev": true, 3816 | "requires": { 3817 | "os-tmpdir": "1.0.2" 3818 | } 3819 | }, 3820 | "to-object-path": { 3821 | "version": "0.3.0", 3822 | "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", 3823 | "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", 3824 | "dev": true, 3825 | "requires": { 3826 | "kind-of": "3.2.2" 3827 | } 3828 | }, 3829 | "tough-cookie": { 3830 | "version": "2.3.4", 3831 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", 3832 | "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", 3833 | "dev": true, 3834 | "requires": { 3835 | "punycode": "1.4.1" 3836 | } 3837 | }, 3838 | "trim-newlines": { 3839 | "version": "2.0.0", 3840 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", 3841 | "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", 3842 | "dev": true 3843 | }, 3844 | "trim-off-newlines": { 3845 | "version": "1.0.1", 3846 | "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", 3847 | "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", 3848 | "dev": true 3849 | }, 3850 | "tunnel-agent": { 3851 | "version": "0.6.0", 3852 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 3853 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 3854 | "dev": true, 3855 | "requires": { 3856 | "safe-buffer": "5.1.2" 3857 | } 3858 | }, 3859 | "tweetnacl": { 3860 | "version": "0.14.5", 3861 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 3862 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 3863 | "dev": true, 3864 | "optional": true 3865 | }, 3866 | "type-check": { 3867 | "version": "0.3.2", 3868 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 3869 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 3870 | "dev": true, 3871 | "requires": { 3872 | "prelude-ls": "1.1.2" 3873 | } 3874 | }, 3875 | "typedarray": { 3876 | "version": "0.0.6", 3877 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 3878 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 3879 | "dev": true 3880 | }, 3881 | "typewise": { 3882 | "version": "1.0.3", 3883 | "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", 3884 | "integrity": "sha1-EGeTZUCvl5N8xdz5kiSG6fooRlE=", 3885 | "dev": true, 3886 | "requires": { 3887 | "typewise-core": "1.2.0" 3888 | } 3889 | }, 3890 | "typewise-core": { 3891 | "version": "1.2.0", 3892 | "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz", 3893 | "integrity": "sha1-l+uRgFx/VdL5QXSPpQ0xXZke8ZU=", 3894 | "dev": true 3895 | }, 3896 | "uglify-js": { 3897 | "version": "2.8.29", 3898 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", 3899 | "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", 3900 | "dev": true, 3901 | "optional": true, 3902 | "requires": { 3903 | "source-map": "0.5.7", 3904 | "uglify-to-browserify": "1.0.2", 3905 | "yargs": "3.10.0" 3906 | }, 3907 | "dependencies": { 3908 | "source-map": { 3909 | "version": "0.5.7", 3910 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 3911 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 3912 | "dev": true, 3913 | "optional": true 3914 | } 3915 | } 3916 | }, 3917 | "uglify-to-browserify": { 3918 | "version": "1.0.2", 3919 | "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", 3920 | "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", 3921 | "dev": true, 3922 | "optional": true 3923 | }, 3924 | "union-value": { 3925 | "version": "0.2.4", 3926 | "resolved": "https://registry.npmjs.org/union-value/-/union-value-0.2.4.tgz", 3927 | "integrity": "sha1-c3UVJ4ZnkFfns3qmdug0aPwCdPA=", 3928 | "dev": true, 3929 | "requires": { 3930 | "arr-union": "3.1.0", 3931 | "get-value": "2.0.6", 3932 | "is-extendable": "0.1.1", 3933 | "set-value": "0.4.3" 3934 | } 3935 | }, 3936 | "util-deprecate": { 3937 | "version": "1.0.2", 3938 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 3939 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 3940 | "dev": true 3941 | }, 3942 | "uuid": { 3943 | "version": "2.0.3", 3944 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", 3945 | "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", 3946 | "dev": true 3947 | }, 3948 | "validate-npm-package-license": { 3949 | "version": "3.0.3", 3950 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", 3951 | "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", 3952 | "dev": true, 3953 | "requires": { 3954 | "spdx-correct": "3.0.0", 3955 | "spdx-expression-parse": "3.0.0" 3956 | } 3957 | }, 3958 | "verror": { 3959 | "version": "1.10.0", 3960 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 3961 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 3962 | "dev": true, 3963 | "requires": { 3964 | "assert-plus": "1.0.0", 3965 | "core-util-is": "1.0.2", 3966 | "extsprintf": "1.3.0" 3967 | } 3968 | }, 3969 | "which": { 3970 | "version": "1.3.0", 3971 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", 3972 | "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", 3973 | "dev": true, 3974 | "requires": { 3975 | "isexe": "2.0.0" 3976 | } 3977 | }, 3978 | "window-size": { 3979 | "version": "0.1.0", 3980 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", 3981 | "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", 3982 | "dev": true, 3983 | "optional": true 3984 | }, 3985 | "word-wrap": { 3986 | "version": "1.2.3", 3987 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 3988 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 3989 | "dev": true 3990 | }, 3991 | "wordwrap": { 3992 | "version": "0.0.3", 3993 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", 3994 | "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", 3995 | "dev": true 3996 | }, 3997 | "wrappy": { 3998 | "version": "1.0.2", 3999 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4000 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 4001 | "dev": true 4002 | }, 4003 | "write": { 4004 | "version": "0.2.1", 4005 | "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", 4006 | "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", 4007 | "dev": true, 4008 | "requires": { 4009 | "mkdirp": "0.5.1" 4010 | } 4011 | }, 4012 | "xtend": { 4013 | "version": "4.0.1", 4014 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 4015 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 4016 | "dev": true 4017 | }, 4018 | "yallist": { 4019 | "version": "2.1.2", 4020 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 4021 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 4022 | "dev": true 4023 | }, 4024 | "yargs": { 4025 | "version": "3.10.0", 4026 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", 4027 | "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", 4028 | "dev": true, 4029 | "optional": true, 4030 | "requires": { 4031 | "camelcase": "1.2.1", 4032 | "cliui": "2.1.0", 4033 | "decamelize": "1.2.0", 4034 | "window-size": "0.1.0" 4035 | } 4036 | }, 4037 | "yerror": { 4038 | "version": "2.1.0", 4039 | "resolved": "https://registry.npmjs.org/yerror/-/yerror-2.1.0.tgz", 4040 | "integrity": "sha1-xE70OdVaqOe/CMa3014T6tudH/Y=", 4041 | "dev": true 4042 | } 4043 | } 4044 | } 4045 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "midievents", 3 | "version": "2.0.0", 4 | "description": "Decode/encode MIDI events.", 5 | "main": "src/midievents", 6 | "author": "Nicolas Froidure", 7 | "repository": { 8 | "type": "git", 9 | "url": "http://github.com/nfroidure/midievents.git" 10 | }, 11 | "metapak": { 12 | "data": { 13 | "files": "src/*.js", 14 | "testsFiles": "src/*.mocha.js" 15 | }, 16 | "configs": [ 17 | "readme", 18 | "mocha", 19 | "eslint", 20 | "codeclimate", 21 | "travis" 22 | ] 23 | }, 24 | "license": "MIT", 25 | "engines": { 26 | "node": ">=6.9.5" 27 | }, 28 | "devDependencies": { 29 | "commitizen": "^2.9.6", 30 | "conventional-changelog-cli": "^1.3.8", 31 | "coveralls": "^3.0.0", 32 | "cz-conventional-changelog": "^2.1.0", 33 | "eslint": "^4.19.0", 34 | "eslint-plugin-prettier": "^2.6.0", 35 | "istanbul": "^0.4.5", 36 | "metapak": "1.0.3", 37 | "metapak-nfroidure": "6.0.0", 38 | "mocha": "^5.0.0", 39 | "mocha-lcov-reporter": "^1.3.0", 40 | "prettier": "^1.11.1" 41 | }, 42 | "scripts": { 43 | "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s", 44 | "cli": "env NODE_ENV=${NODE_ENV:-cli}", 45 | "cover": "istanbul cover _mocha --report html -- src/*.mocha.js -R spec -t 5000", 46 | "coveralls": "istanbul cover _mocha --report lcovonly -- src/*.mocha.js -R spec -t 5000 && cat ./coverage/lcov.info | coveralls && rm -rf ./coverage", 47 | "cz": "env NODE_ENV=${NODE_ENV:-cli} git cz", 48 | "lint": "eslint src/*.js", 49 | "metapak": "metapak", 50 | "mocha": "mocha src/*.mocha.js", 51 | "prettier": "prettier --write src/*.js", 52 | "preversion": "npm t && npm run lint && npm run metapak -s", 53 | "test": "npm run mocha", 54 | "version": "npm run changelog && git add CHANGELOG.md" 55 | }, 56 | "keywords": [ 57 | "sound", 58 | "music", 59 | "midi", 60 | "event", 61 | "events", 62 | "encode", 63 | "decode" 64 | ], 65 | "config": { 66 | "commitizen": { 67 | "path": "./node_modules/cz-conventional-changelog" 68 | } 69 | }, 70 | "greenkeeper": { 71 | "ignore": [ 72 | "commitizen", 73 | "cz-conventional-changelog", 74 | "conventional-changelog-cli", 75 | "mocha", 76 | "mocha-lcov-reporter", 77 | "coveralls", 78 | "istanbul", 79 | "eslint", 80 | "eslint-config-prettier", 81 | "prettier" 82 | ] 83 | } 84 | } -------------------------------------------------------------------------------- /src/midievents.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // MIDIEvents : Read and edit events from various sources (ArrayBuffer, Stream) 4 | function MIDIEvents() { 5 | throw new Error('MIDIEvents function not intended to be run.'); 6 | } 7 | 8 | // Static constants 9 | // Event types 10 | MIDIEvents.EVENT_META = 0xff; 11 | MIDIEvents.EVENT_SYSEX = 0xf0; 12 | MIDIEvents.EVENT_DIVSYSEX = 0xf7; 13 | MIDIEvents.EVENT_MIDI = 0x8; 14 | // Meta event types 15 | MIDIEvents.EVENT_META_SEQUENCE_NUMBER = 0x00; 16 | MIDIEvents.EVENT_META_TEXT = 0x01; 17 | MIDIEvents.EVENT_META_COPYRIGHT_NOTICE = 0x02; 18 | MIDIEvents.EVENT_META_TRACK_NAME = 0x03; 19 | MIDIEvents.EVENT_META_INSTRUMENT_NAME = 0x04; 20 | MIDIEvents.EVENT_META_LYRICS = 0x05; 21 | MIDIEvents.EVENT_META_MARKER = 0x06; 22 | MIDIEvents.EVENT_META_CUE_POINT = 0x07; 23 | MIDIEvents.EVENT_META_MIDI_CHANNEL_PREFIX = 0x20; 24 | MIDIEvents.EVENT_META_END_OF_TRACK = 0x2f; 25 | MIDIEvents.EVENT_META_SET_TEMPO = 0x51; 26 | MIDIEvents.EVENT_META_SMTPE_OFFSET = 0x54; 27 | MIDIEvents.EVENT_META_TIME_SIGNATURE = 0x58; 28 | MIDIEvents.EVENT_META_KEY_SIGNATURE = 0x59; 29 | MIDIEvents.EVENT_META_SEQUENCER_SPECIFIC = 0x7f; 30 | // MIDI event types 31 | MIDIEvents.EVENT_MIDI_NOTE_OFF = 0x8; 32 | MIDIEvents.EVENT_MIDI_NOTE_ON = 0x9; 33 | MIDIEvents.EVENT_MIDI_NOTE_AFTERTOUCH = 0xa; 34 | MIDIEvents.EVENT_MIDI_CONTROLLER = 0xb; 35 | MIDIEvents.EVENT_MIDI_PROGRAM_CHANGE = 0xc; 36 | MIDIEvents.EVENT_MIDI_CHANNEL_AFTERTOUCH = 0xd; 37 | MIDIEvents.EVENT_MIDI_PITCH_BEND = 0xe; 38 | // MIDI event sizes 39 | MIDIEvents.MIDI_1PARAM_EVENTS = [ 40 | MIDIEvents.EVENT_MIDI_PROGRAM_CHANGE, 41 | MIDIEvents.EVENT_MIDI_CHANNEL_AFTERTOUCH, 42 | ]; 43 | MIDIEvents.MIDI_2PARAMS_EVENTS = [ 44 | MIDIEvents.EVENT_MIDI_NOTE_OFF, 45 | MIDIEvents.EVENT_MIDI_NOTE_ON, 46 | MIDIEvents.EVENT_MIDI_NOTE_AFTERTOUCH, 47 | MIDIEvents.EVENT_MIDI_CONTROLLER, 48 | MIDIEvents.EVENT_MIDI_PITCH_BEND, 49 | ]; 50 | 51 | // Create an event stream parser 52 | MIDIEvents.createParser = function midiEventsCreateParser( 53 | stream, 54 | startAt, 55 | strictMode 56 | ) { 57 | // Private vars 58 | // Common vars 59 | var eventTypeByte; 60 | var event; 61 | // MIDI events vars 62 | var MIDIEventType; 63 | var MIDIEventChannel; 64 | var MIDIEventParam1; 65 | 66 | // Wrap DataView into a data stream 67 | if (stream instanceof DataView) { 68 | stream = { 69 | position: startAt || 0, 70 | buffer: stream, 71 | readInt8: function() { 72 | return this.buffer.getInt8(this.position++); 73 | }, 74 | readUint8: function() { 75 | return this.buffer.getUint8(this.position++); 76 | }, 77 | readVarInt: function() { 78 | var v = 0; 79 | var i = 0; 80 | var b; 81 | 82 | while (4 > i++) { 83 | b = this.readUint8(); 84 | 85 | if (b & 0x80) { 86 | v += b & 0x7f; 87 | v <<= 7; 88 | } else { 89 | return v + b; 90 | } 91 | } 92 | throw new Error( 93 | '0x' + 94 | this.position.toString(16) + 95 | ':' + 96 | ' Variable integer length cannot exceed 4 bytes' 97 | ); 98 | }, 99 | readBytes: function(length) { 100 | var bytes = []; 101 | 102 | for (; 0 < length; length--) { 103 | bytes.push(this.readUint8()); 104 | } 105 | return bytes; 106 | }, 107 | pos: function() { 108 | return '0x' + (this.buffer.byteOffset + this.position).toString(16); 109 | }, 110 | end: function() { 111 | return this.position === this.buffer.byteLength; 112 | }, 113 | }; 114 | startAt = 0; 115 | } 116 | // Consume stream till not at start index 117 | if (0 < startAt) { 118 | while (startAt--) { 119 | stream.readUint8(); 120 | } 121 | } 122 | // creating the parser object 123 | return { 124 | // Read the next event 125 | next: function() { 126 | // Check available datas 127 | if (stream.end()) { 128 | return null; 129 | } 130 | // Creating the event 131 | event = { 132 | // Memoize the event index 133 | index: stream.pos(), 134 | // Read the delta time 135 | delta: stream.readVarInt(), 136 | }; 137 | // Read the eventTypeByte 138 | eventTypeByte = stream.readUint8(); 139 | if (0xf0 === (eventTypeByte & 0xf0)) { 140 | // Meta events 141 | if (eventTypeByte === MIDIEvents.EVENT_META) { 142 | event.type = MIDIEvents.EVENT_META; 143 | event.subtype = stream.readUint8(); 144 | event.length = stream.readVarInt(); 145 | switch (event.subtype) { 146 | case MIDIEvents.EVENT_META_SEQUENCE_NUMBER: 147 | if (strictMode && 2 !== event.length) { 148 | throw new Error(stream.pos() + ' Bad metaevent length.'); 149 | } 150 | event.msb = stream.readUint8(); 151 | event.lsb = stream.readUint8(); 152 | return event; 153 | case MIDIEvents.EVENT_META_TEXT: 154 | case MIDIEvents.EVENT_META_COPYRIGHT_NOTICE: 155 | case MIDIEvents.EVENT_META_TRACK_NAME: 156 | case MIDIEvents.EVENT_META_INSTRUMENT_NAME: 157 | case MIDIEvents.EVENT_META_LYRICS: 158 | case MIDIEvents.EVENT_META_MARKER: 159 | case MIDIEvents.EVENT_META_CUE_POINT: 160 | event.data = stream.readBytes(event.length); 161 | return event; 162 | case MIDIEvents.EVENT_META_MIDI_CHANNEL_PREFIX: 163 | if (strictMode && 1 !== event.length) { 164 | throw new Error(stream.pos() + ' Bad metaevent length.'); 165 | } 166 | event.prefix = stream.readUint8(); 167 | return event; 168 | case MIDIEvents.EVENT_META_END_OF_TRACK: 169 | if (strictMode && 0 !== event.length) { 170 | throw new Error(stream.pos() + ' Bad metaevent length.'); 171 | } 172 | return event; 173 | case MIDIEvents.EVENT_META_SET_TEMPO: 174 | if (strictMode && 3 !== event.length) { 175 | throw new Error( 176 | stream.pos() + ' Tempo meta event length must be 3.' 177 | ); 178 | } 179 | event.tempo = 180 | (stream.readUint8() << 16) + 181 | (stream.readUint8() << 8) + 182 | stream.readUint8(); 183 | event.tempoBPM = 60000000 / event.tempo; 184 | return event; 185 | case MIDIEvents.EVENT_META_SMTPE_OFFSET: 186 | if (strictMode && 5 !== event.length) { 187 | throw new Error(stream.pos() + ' Bad metaevent length.'); 188 | } 189 | event.hour = stream.readUint8(); 190 | if (strictMode && 23 < event.hour) { 191 | throw new Error( 192 | stream.pos() + 193 | ' SMTPE offset hour value must' + 194 | ' be part of 0-23.' 195 | ); 196 | } 197 | event.minutes = stream.readUint8(); 198 | if (strictMode && 59 < event.minutes) { 199 | throw new Error( 200 | stream.pos() + 201 | ' SMTPE offset minutes value' + 202 | ' must be part of 0-59.' 203 | ); 204 | } 205 | event.seconds = stream.readUint8(); 206 | if (strictMode && 59 < event.seconds) { 207 | throw new Error( 208 | stream.pos() + 209 | ' SMTPE offset seconds value' + 210 | ' must be part of 0-59.' 211 | ); 212 | } 213 | event.frames = stream.readUint8(); 214 | if (strictMode && 30 < event.frames) { 215 | throw new Error( 216 | stream.pos() + 217 | ' SMTPE offset frames value must' + 218 | ' be part of 0-30.' 219 | ); 220 | } 221 | event.subframes = stream.readUint8(); 222 | if (strictMode && 99 < event.subframes) { 223 | throw new Error( 224 | stream.pos() + 225 | ' SMTPE offset subframes value' + 226 | ' must be part of 0-99.' 227 | ); 228 | } 229 | return event; 230 | case MIDIEvents.EVENT_META_KEY_SIGNATURE: 231 | if (strictMode && 2 !== event.length) { 232 | throw new Error(stream.pos() + ' Bad metaevent length.'); 233 | } 234 | event.key = stream.readInt8(); 235 | if (strictMode && (-7 > event.key || 7 < event.key)) { 236 | throw new Error(stream.pos() + ' Bad metaevent length.'); 237 | } 238 | event.scale = stream.readUint8(); 239 | if (strictMode && 0 !== event.scale && 1 !== event.scale) { 240 | throw new Error( 241 | stream.pos() + 242 | ' Key signature scale value must' + 243 | ' be 0 or 1.' 244 | ); 245 | } 246 | return event; 247 | case MIDIEvents.EVENT_META_TIME_SIGNATURE: 248 | if (strictMode && 4 !== event.length) { 249 | throw new Error(stream.pos() + ' Bad metaevent length.'); 250 | } 251 | event.data = stream.readBytes(event.length); 252 | event.param1 = event.data[0]; 253 | event.param2 = event.data[1]; 254 | event.param3 = event.data[2]; 255 | event.param4 = event.data[3]; 256 | return event; 257 | case MIDIEvents.EVENT_META_SEQUENCER_SPECIFIC: 258 | event.data = stream.readBytes(event.length); 259 | return event; 260 | default: 261 | if (strictMode) { 262 | throw new Error( 263 | stream.pos() + 264 | ' Unknown meta event type ' + 265 | '(' + 266 | event.subtype.toString(16) + 267 | ').' 268 | ); 269 | } 270 | event.data = stream.readBytes(event.length); 271 | return event; 272 | } 273 | // System events 274 | } else if ( 275 | eventTypeByte === MIDIEvents.EVENT_SYSEX || 276 | eventTypeByte === MIDIEvents.EVENT_DIVSYSEX 277 | ) { 278 | event.type = eventTypeByte; 279 | event.length = stream.readVarInt(); 280 | event.data = stream.readBytes(event.length); 281 | return event; 282 | // Unknown event, assuming it's system like event 283 | } else { 284 | if (strictMode) { 285 | throw new Error( 286 | stream.pos() + 287 | ' Unknown event type ' + 288 | eventTypeByte.toString(16) + 289 | ', Delta: ' + 290 | event.delta + 291 | '.' 292 | ); 293 | } 294 | event.type = eventTypeByte; 295 | event.badsubtype = stream.readVarInt(); 296 | event.length = stream.readUint8(); 297 | event.data = stream.readBytes(event.length); 298 | return event; 299 | } 300 | // MIDI eventsdestination[index++] 301 | } else { 302 | // running status 303 | if (0 === (eventTypeByte & 0x80)) { 304 | if (!MIDIEventType) { 305 | throw new Error( 306 | stream.pos() + ' Running status without previous event' 307 | ); 308 | } 309 | MIDIEventParam1 = eventTypeByte; 310 | } else { 311 | MIDIEventType = eventTypeByte >> 4; 312 | MIDIEventChannel = eventTypeByte & 0x0f; 313 | MIDIEventParam1 = stream.readUint8(); 314 | } 315 | event.type = MIDIEvents.EVENT_MIDI; 316 | event.subtype = MIDIEventType; 317 | event.channel = MIDIEventChannel; 318 | event.param1 = MIDIEventParam1; 319 | switch (MIDIEventType) { 320 | case MIDIEvents.EVENT_MIDI_NOTE_OFF: 321 | event.param2 = stream.readUint8(); 322 | return event; 323 | case MIDIEvents.EVENT_MIDI_NOTE_ON: 324 | event.param2 = stream.readUint8(); 325 | 326 | // If velocity is 0, it's a note off event in fact 327 | if (!event.param2) { 328 | event.subtype = MIDIEvents.EVENT_MIDI_NOTE_OFF; 329 | event.param2 = 127; // Find a standard telling what to do here 330 | } 331 | return event; 332 | case MIDIEvents.EVENT_MIDI_NOTE_AFTERTOUCH: 333 | event.param2 = stream.readUint8(); 334 | return event; 335 | case MIDIEvents.EVENT_MIDI_CONTROLLER: 336 | event.param2 = stream.readUint8(); 337 | return event; 338 | case MIDIEvents.EVENT_MIDI_PROGRAM_CHANGE: 339 | return event; 340 | case MIDIEvents.EVENT_MIDI_CHANNEL_AFTERTOUCH: 341 | return event; 342 | case MIDIEvents.EVENT_MIDI_PITCH_BEND: 343 | event.param2 = stream.readUint8(); 344 | return event; 345 | default: 346 | if (strictMode) { 347 | throw new Error( 348 | stream.pos() + 349 | ' Unknown MIDI event type ' + 350 | '(' + 351 | MIDIEventType.toString(16) + 352 | ').' 353 | ); 354 | } 355 | return event; 356 | } 357 | } 358 | }, 359 | }; 360 | }; 361 | 362 | // Return the buffer length needed to encode the given events 363 | MIDIEvents.writeToTrack = function midiEventsWriteToTrack( 364 | events, 365 | destination, 366 | strictMode 367 | ) { 368 | var index = 0; 369 | var i; 370 | var j; 371 | var k; 372 | var l; 373 | 374 | // Converting each event to binary MIDI datas 375 | for (i = 0, j = events.length; i < j; i++) { 376 | // Writing delta value 377 | if (events[i].delta >>> 28) { 378 | throw Error( 379 | 'Event #' + 380 | i + 381 | ': Maximum delta time value reached (' + 382 | events[i].delta + 383 | '/134217728 max)' 384 | ); 385 | } 386 | if (events[i].delta >>> 21) { 387 | destination[index++] = ((events[i].delta >>> 21) & 0x7f) | 0x80; 388 | } 389 | if (events[i].delta >>> 14) { 390 | destination[index++] = ((events[i].delta >>> 14) & 0x7f) | 0x80; 391 | } 392 | if (events[i].delta >>> 7) { 393 | destination[index++] = ((events[i].delta >>> 7) & 0x7f) | 0x80; 394 | } 395 | destination[index++] = events[i].delta & 0x7f; 396 | // MIDI Events encoding 397 | if (events[i].type === MIDIEvents.EVENT_MIDI) { 398 | // Adding the byte of subtype + channel 399 | destination[index++] = (events[i].subtype << 4) + events[i].channel; 400 | // Adding the byte of the first params 401 | destination[index++] = events[i].param1; 402 | // Adding a byte for the optionnal second param 403 | if (-1 !== MIDIEvents.MIDI_2PARAMS_EVENTS.indexOf(events[i].subtype)) { 404 | destination[index++] = events[i].param2; 405 | } 406 | // META / SYSEX events encoding 407 | } else { 408 | // Adding the event type byte 409 | destination[index++] = events[i].type; 410 | // Adding the META event subtype byte 411 | if (events[i].type === MIDIEvents.EVENT_META) { 412 | destination[index++] = events[i].subtype; 413 | } 414 | // Writing the event length bytes 415 | if (events[i].length >>> 28) { 416 | throw Error( 417 | 'Event #' + 418 | i + 419 | ': Maximum length reached (' + 420 | events[i].length + 421 | '/134217728 max)' 422 | ); 423 | } 424 | if (events[i].length >>> 21) { 425 | destination[index++] = ((events[i].length >>> 21) & 0x7f) | 0x80; 426 | } 427 | if (events[i].length >>> 14) { 428 | destination[index++] = ((events[i].length >>> 14) & 0x7f) | 0x80; 429 | } 430 | if (events[i].length >>> 7) { 431 | destination[index++] = ((events[i].length >>> 7) & 0x7f) | 0x80; 432 | } 433 | destination[index++] = events[i].length & 0x7f; 434 | if (events[i].type === MIDIEvents.EVENT_META) { 435 | switch (events[i].subtype) { 436 | case MIDIEvents.EVENT_META_SEQUENCE_NUMBER: 437 | destination[index++] = events[i].msb; 438 | destination[index++] = events[i].lsb; 439 | break; 440 | case MIDIEvents.EVENT_META_TEXT: 441 | case MIDIEvents.EVENT_META_COPYRIGHT_NOTICE: 442 | case MIDIEvents.EVENT_META_TRACK_NAME: 443 | case MIDIEvents.EVENT_META_INSTRUMENT_NAME: 444 | case MIDIEvents.EVENT_META_LYRICS: 445 | case MIDIEvents.EVENT_META_MARKER: 446 | case MIDIEvents.EVENT_META_CUE_POINT: 447 | for (k = 0, l = events[i].length; k < l; k++) { 448 | destination[index++] = events[i].data[k]; 449 | } 450 | break; 451 | case MIDIEvents.EVENT_META_MIDI_CHANNEL_PREFIX: 452 | destination[index++] = events[i].prefix; 453 | break; 454 | case MIDIEvents.EVENT_META_END_OF_TRACK: 455 | break; 456 | case MIDIEvents.EVENT_META_SET_TEMPO: 457 | destination[index++] = events[i].tempo >> 16; 458 | destination[index++] = (events[i].tempo >> 8) & 0xff; 459 | destination[index++] = events[i].tempo & 0xff; 460 | break; 461 | case MIDIEvents.EVENT_META_SMTPE_OFFSET: 462 | if (strictMode && 23 < events[i].hour) { 463 | throw new Error( 464 | 'Event #' + 465 | i + 466 | ': SMTPE offset hour value must be' + 467 | ' part of 0-23.' 468 | ); 469 | } 470 | destination[index++] = events[i].hour; 471 | if (strictMode && 59 < events[i].minutes) { 472 | throw new Error( 473 | 'Event #' + 474 | i + 475 | ': SMTPE offset minutes value must' + 476 | ' be part of 0-59.' 477 | ); 478 | } 479 | destination[index++] = events[i].minutes; 480 | if (strictMode && 59 < events[i].seconds) { 481 | throw new Error( 482 | 'Event #' + 483 | i + 484 | ': SMTPE offset seconds value must' + 485 | ' be part of 0-59.' 486 | ); 487 | } 488 | destination[index++] = events[i].seconds; 489 | if (strictMode && 30 < events[i].frames) { 490 | throw new Error( 491 | 'Event #' + 492 | i + 493 | ': SMTPE offset frames amount must' + 494 | ' be part of 0-30.' 495 | ); 496 | } 497 | destination[index++] = events[i].frames; 498 | if (strictMode && 99 < events[i].subframes) { 499 | throw new Error( 500 | 'Event #' + 501 | i + 502 | ': SMTPE offset subframes amount' + 503 | ' must be part of 0-99.' 504 | ); 505 | } 506 | destination[index++] = events[i].subframes; 507 | break; 508 | case MIDIEvents.EVENT_META_KEY_SIGNATURE: 509 | if ( 510 | 'number' != typeof events[i].key || 511 | -7 > events[i].key || 512 | 7 < events[i].scale 513 | ) { 514 | throw new Error( 515 | 'Event #' + 516 | i + 517 | ':The key signature key must be' + 518 | ' between -7 and 7' 519 | ); 520 | } 521 | if ( 522 | 'number' !== typeof events[i].scale || 523 | 0 > events[i].scale || 524 | 1 < events[i].scale 525 | ) { 526 | throw new Error( 527 | 'Event #' + i + ':' + 'The key signature scale must be 0 or 1' 528 | ); 529 | } 530 | destination[index++] = events[i].key; 531 | destination[index++] = events[i].scale; 532 | break; 533 | // Not implemented 534 | case MIDIEvents.EVENT_META_TIME_SIGNATURE: 535 | case MIDIEvents.EVENT_META_SEQUENCER_SPECIFIC: 536 | default: 537 | for (k = 0, l = events[i].length; k < l; k++) { 538 | destination[index++] = events[i].data[k]; 539 | } 540 | break; 541 | } 542 | // Adding bytes corresponding to the sysex event datas 543 | } else { 544 | for (k = 0, l = events[i].length; k < l; k++) { 545 | destination[index++] = events[i].data[k]; 546 | } 547 | } 548 | } 549 | } 550 | }; 551 | 552 | // Return the buffer length needed to encode the given events 553 | MIDIEvents.getRequiredBufferLength = function(events) { 554 | var bufferLength = 0; 555 | var i = 0; 556 | var j; 557 | 558 | // Calculating the track size by adding events lengths 559 | for (i = 0, j = events.length; i < j; i++) { 560 | // Computing necessary bytes to encode the delta value 561 | bufferLength += 562 | events[i].delta >>> 21 563 | ? 4 564 | : events[i].delta >>> 14 565 | ? 3 566 | : events[i].delta >>> 7 567 | ? 2 568 | : 1; 569 | // MIDI Events have various fixed lengths 570 | if (events[i].type === MIDIEvents.EVENT_MIDI) { 571 | // Adding a byte for subtype + channel 572 | bufferLength++; 573 | // Adding a byte for the first params 574 | bufferLength++; 575 | // Adding a byte for the optionnal second param 576 | if (-1 !== MIDIEvents.MIDI_2PARAMS_EVENTS.indexOf(events[i].subtype)) { 577 | bufferLength++; 578 | } 579 | // META / SYSEX events lengths are self defined 580 | } else { 581 | // Adding a byte for the event type 582 | bufferLength++; 583 | // Adding a byte for META events subtype 584 | if (events[i].type === MIDIEvents.EVENT_META) { 585 | bufferLength++; 586 | } 587 | // Adding necessary bytes to encode the length 588 | bufferLength += 589 | events[i].length >>> 21 590 | ? 4 591 | : events[i].length >>> 14 592 | ? 3 593 | : events[i].length >>> 7 594 | ? 2 595 | : 1; 596 | // Adding bytes corresponding to the event length 597 | bufferLength += events[i].length; 598 | } 599 | } 600 | return bufferLength; 601 | }; 602 | 603 | module.exports = MIDIEvents; 604 | -------------------------------------------------------------------------------- /src/midievents.mocha.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var assert = require('assert'); 4 | var MIDIEvents = require('../src/midievents'); 5 | 6 | // Tests 7 | describe('Reading well formed MIDI events', function() { 8 | var trackContent = new Uint8Array([ 9 | 0, 10 | 255, 11 | 88, 12 | 4, 13 | 4, 14 | 2, 15 | 24, 16 | 8, 17 | 0, 18 | 255, 19 | 81, 20 | 3, 21 | 7, 22 | 161, 23 | 32, 24 | 0, 25 | 192, 26 | 5, 27 | 0, 28 | 193, 29 | 46, 30 | 0, 31 | 194, 32 | 70, 33 | 0, 34 | 146, 35 | 48, 36 | 96, 37 | 0, 38 | 60, 39 | 96, 40 | 96, 41 | 145, 42 | 67, 43 | 64, 44 | 96, 45 | 144, 46 | 76, 47 | 32, 48 | 129, 49 | 64, 50 | 130, 51 | 48, 52 | 64, 53 | 0, 54 | 60, 55 | 64, 56 | 0, 57 | 129, 58 | 67, 59 | 64, 60 | 0, 61 | 128, 62 | 76, 63 | 64, 64 | 0, 65 | 255, 66 | 47, 67 | 0, 68 | ]); 69 | 70 | it('Should work', function() { 71 | var events = []; 72 | var parser = MIDIEvents.createParser( 73 | new DataView(trackContent.buffer), 74 | 0, 75 | false 76 | ); 77 | var event = parser.next(); 78 | 79 | do { 80 | events.push(event); 81 | event = parser.next(); 82 | } while (event); 83 | 84 | assert.equal(events.length, 14); 85 | assert.equal(events[0].type, MIDIEvents.EVENT_META); 86 | assert.equal(events[0].subtype, MIDIEvents.EVENT_META_TIME_SIGNATURE); 87 | assert.equal(events[0].index, 0); 88 | assert.equal(events[1].type, MIDIEvents.EVENT_META); 89 | assert.equal(events[1].subtype, MIDIEvents.EVENT_META_SET_TEMPO); 90 | assert.equal(events[1].index, 8); 91 | assert.equal(events[2].type, MIDIEvents.EVENT_MIDI); 92 | assert.equal(events[2].subtype, MIDIEvents.EVENT_MIDI_PROGRAM_CHANGE); 93 | assert.equal(events[2].index, 0xf); 94 | assert.equal(events[2].delta, 0); 95 | assert.equal(events[2].channel, 0); 96 | assert.equal(events[2].param1, 0x5); 97 | assert.equal(events[3].type, MIDIEvents.EVENT_MIDI); 98 | assert.equal(events[3].subtype, MIDIEvents.EVENT_MIDI_PROGRAM_CHANGE); 99 | assert.equal(events[3].index, 0x12); 100 | assert.equal(events[3].delta, 0); 101 | assert.equal(events[3].channel, 1); 102 | assert.equal(events[3].param1, 46); 103 | assert.equal(events[4].type, MIDIEvents.EVENT_MIDI); 104 | assert.equal(events[4].subtype, MIDIEvents.EVENT_MIDI_PROGRAM_CHANGE); 105 | assert.equal(events[4].index, 0x15); 106 | assert.equal(events[4].delta, 0); 107 | assert.equal(events[4].channel, 2); 108 | assert.equal(events[4].param1, 0x46); 109 | assert.equal(events[5].type, MIDIEvents.EVENT_MIDI); 110 | assert.equal(events[5].subtype, MIDIEvents.EVENT_MIDI_NOTE_ON); 111 | assert.equal(events[5].index, 0x18); 112 | assert.equal(events[5].delta, 0); 113 | assert.equal(events[5].channel, 2); 114 | assert.equal(events[5].param1, 0x30); 115 | assert.equal(events[5].param2, 0x60); 116 | assert.equal(events[6].type, MIDIEvents.EVENT_MIDI); 117 | assert.equal(events[6].subtype, MIDIEvents.EVENT_MIDI_NOTE_ON); 118 | assert.equal(events[6].index, 0x1c); 119 | assert.equal(events[6].delta, 0); 120 | assert.equal(events[6].channel, 2); 121 | assert.equal(events[6].param1, 0x3c); 122 | assert.equal(events[6].param2, 0x60); 123 | assert.equal(events[7].type, MIDIEvents.EVENT_MIDI); 124 | assert.equal(events[7].subtype, MIDIEvents.EVENT_MIDI_NOTE_ON); 125 | assert.equal(events[7].index, 0x1f); 126 | assert.equal(events[7].delta, 0x60); 127 | assert.equal(events[7].channel, 1); 128 | assert.equal(events[7].param1, 0x43); 129 | assert.equal(events[7].param2, 0x40); 130 | assert.equal(events[8].type, MIDIEvents.EVENT_MIDI); 131 | assert.equal(events[8].subtype, MIDIEvents.EVENT_MIDI_NOTE_ON); 132 | assert.equal(events[8].index, 0x23); 133 | assert.equal(events[8].delta, 0x60); 134 | assert.equal(events[8].channel, 0); 135 | assert.equal(events[8].param1, 0x4c); 136 | assert.equal(events[8].param2, 0x20); 137 | assert.equal(events[9].type, MIDIEvents.EVENT_MIDI); 138 | assert.equal(events[9].subtype, MIDIEvents.EVENT_MIDI_NOTE_OFF); 139 | assert.equal(events[9].index, 0x27); 140 | assert.equal(events[9].delta, 192); // 2 bytes delta time 141 | assert.equal(events[9].channel, 2); 142 | assert.equal(events[9].param1, 0x30); 143 | assert.equal(events[9].param2, 0x40); 144 | assert.equal(events[10].type, MIDIEvents.EVENT_MIDI); 145 | assert.equal(events[10].subtype, MIDIEvents.EVENT_MIDI_NOTE_OFF); 146 | assert.equal(events[10].index, 0x2c); 147 | assert.equal(events[10].delta, 0x00); 148 | assert.equal(events[10].channel, 2); 149 | assert.equal(events[10].param1, 0x3c); 150 | assert.equal(events[10].param2, 0x40); 151 | assert.equal(events[11].type, MIDIEvents.EVENT_MIDI); 152 | assert.equal(events[11].subtype, MIDIEvents.EVENT_MIDI_NOTE_OFF); 153 | assert.equal(events[11].index, 0x2f); 154 | assert.equal(events[11].delta, 0x00); 155 | assert.equal(events[11].channel, 1); 156 | assert.equal(events[11].param1, 0x43); 157 | assert.equal(events[11].param2, 0x40); 158 | assert.equal(events[12].type, MIDIEvents.EVENT_MIDI); 159 | assert.equal(events[12].subtype, MIDIEvents.EVENT_MIDI_NOTE_OFF); 160 | assert.equal(events[12].index, 0x33); 161 | assert.equal(events[12].delta, 0x00); 162 | assert.equal(events[12].channel, 0); 163 | assert.equal(events[12].param1, 0x4c); 164 | assert.equal(events[12].param2, 0x40); 165 | assert.equal(events[13].type, MIDIEvents.EVENT_META); 166 | assert.equal(events[13].subtype, MIDIEvents.EVENT_META_END_OF_TRACK); 167 | assert.equal(events[13].index, 0x37); 168 | assert.equal(events[13].delta, 0x00); 169 | }); 170 | 171 | it('Should parse time signature', function() { 172 | var events = [0x00, 0xff, 0x58, 0x04, 0x04, 0x02, 0x08, 0x08]; 173 | var parser = MIDIEvents.createParser( 174 | new DataView(new Uint8Array(events).buffer), 175 | 0, 176 | false 177 | ); 178 | var event = parser.next(); 179 | 180 | assert.equal(event.type, MIDIEvents.EVENT_META); 181 | assert.equal(event.subtype, MIDIEvents.EVENT_META_TIME_SIGNATURE); 182 | assert.equal(event.index, 0); 183 | assert.equal(event.param1, 4); 184 | assert.equal(event.param2, 2); 185 | assert.equal(event.param3, 8); 186 | assert.equal(event.param4, 8); 187 | }); 188 | }); 189 | 190 | describe('For events write', function() { 191 | var events = [ 192 | { 193 | index: '0x0', 194 | delta: 0, 195 | type: 255, 196 | subtype: 88, 197 | length: 4, 198 | data: [4, 2, 24, 8], 199 | param1: 4, 200 | param2: 2, 201 | param3: 24, 202 | param4: 8, 203 | }, 204 | { 205 | index: '0x8', 206 | delta: 0, 207 | type: 255, 208 | subtype: 81, 209 | length: 3, 210 | tempo: 500000, 211 | tempoBPM: 120, 212 | }, 213 | { 214 | index: '0xf', 215 | delta: 0, 216 | type: 8, 217 | subtype: 12, 218 | channel: 0, 219 | param1: 5, 220 | }, 221 | { 222 | index: '0x12', 223 | delta: 0, 224 | type: 8, 225 | subtype: 12, 226 | channel: 1, 227 | param1: 46, 228 | }, 229 | { 230 | index: '0x15', 231 | delta: 0, 232 | type: 8, 233 | subtype: 12, 234 | channel: 2, 235 | param1: 70, 236 | }, 237 | { 238 | index: '0x18', 239 | delta: 0, 240 | type: 8, 241 | subtype: 9, 242 | channel: 2, 243 | param1: 48, 244 | param2: 96, 245 | }, 246 | { 247 | index: '0x1c', 248 | delta: 0, 249 | type: 8, 250 | subtype: 9, 251 | channel: 2, 252 | param1: 60, 253 | param2: 96, 254 | }, 255 | { 256 | index: '0x1f', 257 | delta: 96, 258 | type: 8, 259 | subtype: 9, 260 | channel: 1, 261 | param1: 67, 262 | param2: 64, 263 | }, 264 | { 265 | index: '0x23', 266 | delta: 96, 267 | type: 8, 268 | subtype: 9, 269 | channel: 0, 270 | param1: 76, 271 | param2: 32, 272 | }, 273 | { 274 | index: '0x27', 275 | delta: 192, 276 | type: 8, 277 | subtype: 8, 278 | channel: 2, 279 | param1: 48, 280 | param2: 64, 281 | }, 282 | { 283 | index: '0x2c', 284 | delta: 0, 285 | type: 8, 286 | subtype: 8, 287 | channel: 2, 288 | param1: 60, 289 | param2: 64, 290 | }, 291 | { 292 | index: '0x2f', 293 | delta: 0, 294 | type: 8, 295 | subtype: 8, 296 | channel: 1, 297 | param1: 67, 298 | param2: 64, 299 | }, 300 | { 301 | index: '0x33', 302 | delta: 0, 303 | type: 8, 304 | subtype: 8, 305 | channel: 0, 306 | param1: 76, 307 | param2: 64, 308 | }, 309 | { 310 | index: '0x37', 311 | delta: 0, 312 | type: 255, 313 | subtype: 47, 314 | length: 0, 315 | }, 316 | ]; 317 | 318 | it('Should write midi events well', function() { 319 | assert.equal(MIDIEvents.getRequiredBufferLength(events), 61); 320 | }); 321 | 322 | it('Should write midi events well', function() { 323 | var newTrackContent = new Uint8Array(61); 324 | var trackContent = new Uint8Array([ 325 | 0, 326 | 255, 327 | 88, 328 | 4, 329 | 4, 330 | 2, 331 | 24, 332 | 8, 333 | 0, 334 | 255, 335 | 81, 336 | 3, 337 | 7, 338 | 161, 339 | 32, 340 | 0, 341 | 192, 342 | 5, 343 | 0, 344 | 193, 345 | 46, 346 | 0, 347 | 194, 348 | 70, 349 | 0, 350 | 146, 351 | 48, 352 | 96, 353 | 0, 354 | 146, 355 | 60, 356 | 96, 357 | 96, 358 | 145, 359 | 67, 360 | 64, 361 | 96, 362 | 144, 363 | 76, 364 | 32, 365 | 129, 366 | 64, 367 | 130, 368 | 48, 369 | 64, 370 | 0, 371 | 130, 372 | 60, 373 | 64, 374 | 0, 375 | 129, 376 | 67, 377 | 64, 378 | 0, 379 | 128, 380 | 76, 381 | 64, 382 | 0, 383 | 255, 384 | 47, 385 | 0, 386 | ]); 387 | var arr = []; 388 | var i; 389 | 390 | MIDIEvents.writeToTrack(events, newTrackContent); 391 | for (i = 0; 61 > i; i++) { 392 | arr[i] = newTrackContent[i]; 393 | assert.equal( 394 | newTrackContent[i], 395 | trackContent[i], 396 | 'Index "' + 397 | i + 398 | '"' + 399 | ' index values differs (' + 400 | newTrackContent[i] + 401 | ',' + 402 | trackContent[i] + 403 | ').' 404 | ); 405 | } 406 | }); 407 | }); 408 | --------------------------------------------------------------------------------