├── .env.example ├── .eslintrc.json ├── .gitignore ├── README.md ├── package-lock.json ├── package.json └── src ├── http └── routes.js ├── index.js ├── server ├── cors.js ├── index.js └── jwtMiddleware.js └── services └── mysql ├── auth.js ├── categories.js ├── index.js ├── tests ├── auth.test.js ├── categories.test.js ├── setup.js └── users.test.js └── users.js /.env.example: -------------------------------------------------------------------------------- 1 | MYSQL_HOST= 2 | MYSQL_USERNAME= 3 | MYSQL_PASSWORD= 4 | MYSQL_DATABASE= 5 | MYSQL_TEST_DATABASE= 6 | 7 | JWT_SECRET= -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "standard" 3 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | node_modules -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # RESTful com Node.js, Restify e MySQL 2 | 3 | > Este projeto foi desenvolvido durante a gravação da série de screencasts disponível em [https://www.youtube.com/playlist?list=PLFJmwzuHdBRTBbkyH0gATtDhj6ikOIkMy](https://www.youtube.com/playlist?list=PLFJmwzuHdBRTBbkyH0gATtDhj6ikOIkMy) e é pré-requisito para o curso **Single Page Application com Vue.js** [http://www.treinatom.com.br/pt/edukee/detalhes-do-evento/190edc6b7593e3081a858f55652abd92a9d07353](http://www.treinatom.com.br/pt/edukee/detalhes-do-evento/190edc6b7593e3081a858f55652abd92a9d07353) 4 | 5 | ### Pré-requisitos 6 | 7 | - **Node.js** versão 8 ou superior; 8 | - **Nodemon** - `npm i -g nodemon`. 9 | 10 | ### Instalação e Execução 11 | 12 | 1. Faça o clone do repositório e no terminal navegue até a pasta; 13 | 2. Instale as dependências do projeto com `npm install`; 14 | 3. Faça uma cópia do **.env.example** com o nome **.env** e adicione as informações de conexão com seu banco de dados MySQL (produção e teste). Não se esqueça de criar as tabelas: 15 | ```create table categories (id INT(11) unsigned not null auto_increment, name VARCHAR(255), primary key(id));CREATE TABLE `users` ( 16 | `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 17 | `email` varchar(255) NOT NULL DEFAULT '', 18 | `password` varchar(40) NOT NULL DEFAULT '', 19 | PRIMARY KEY (`id`) 20 | ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;``` 21 | 4. Rode o servidor de desenvolvimento com `npm run dev`; 22 | 5. Rode os testes com `npm test`. Para observar os arquivos durante o desenvolvimento utilize `npm test -- --watch`; 23 | 6. O *endpoint* do serviço estará disponível em http://localhost:3456 . 24 | 25 | ### Sugestão 26 | 27 | Utilize o Postman para testar suas chamadas. [https://www.getpostman.com/](https://www.getpostman.com/). -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "restful-ws", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@ava/babel-plugin-throws-helper": { 8 | "version": "2.0.0", 9 | "resolved": "https://registry.npmjs.org/@ava/babel-plugin-throws-helper/-/babel-plugin-throws-helper-2.0.0.tgz", 10 | "integrity": "sha1-L8H+PCEacQcaTsp7j3r1hCzRrnw=", 11 | "dev": true 12 | }, 13 | "@ava/babel-preset-stage-4": { 14 | "version": "1.1.0", 15 | "resolved": "https://registry.npmjs.org/@ava/babel-preset-stage-4/-/babel-preset-stage-4-1.1.0.tgz", 16 | "integrity": "sha512-oWqTnIGXW3k72UFidXzW0ONlO7hnO9x02S/QReJ7NBGeiBH9cUHY9+EfV6C8PXC6YJH++WrliEq03wMSJGNZFg==", 17 | "dev": true, 18 | "requires": { 19 | "babel-plugin-check-es2015-constants": "6.22.0", 20 | "babel-plugin-syntax-trailing-function-commas": "6.22.0", 21 | "babel-plugin-transform-async-to-generator": "6.24.1", 22 | "babel-plugin-transform-es2015-destructuring": "6.23.0", 23 | "babel-plugin-transform-es2015-function-name": "6.24.1", 24 | "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", 25 | "babel-plugin-transform-es2015-parameters": "6.24.1", 26 | "babel-plugin-transform-es2015-spread": "6.22.0", 27 | "babel-plugin-transform-es2015-sticky-regex": "6.24.1", 28 | "babel-plugin-transform-es2015-unicode-regex": "6.24.1", 29 | "babel-plugin-transform-exponentiation-operator": "6.24.1", 30 | "package-hash": "1.2.0" 31 | }, 32 | "dependencies": { 33 | "md5-hex": { 34 | "version": "1.3.0", 35 | "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", 36 | "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", 37 | "dev": true, 38 | "requires": { 39 | "md5-o-matic": "0.1.1" 40 | } 41 | }, 42 | "package-hash": { 43 | "version": "1.2.0", 44 | "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-1.2.0.tgz", 45 | "integrity": "sha1-AD5WzVe3NqbtYRTMK4FUJnJ3DkQ=", 46 | "dev": true, 47 | "requires": { 48 | "md5-hex": "1.3.0" 49 | } 50 | } 51 | } 52 | }, 53 | "@ava/babel-preset-transform-test-files": { 54 | "version": "3.0.0", 55 | "resolved": "https://registry.npmjs.org/@ava/babel-preset-transform-test-files/-/babel-preset-transform-test-files-3.0.0.tgz", 56 | "integrity": "sha1-ze0RlqjY2TgaUJJAq5LpGl7Aafc=", 57 | "dev": true, 58 | "requires": { 59 | "@ava/babel-plugin-throws-helper": "2.0.0", 60 | "babel-plugin-espower": "2.3.2" 61 | } 62 | }, 63 | "@ava/write-file-atomic": { 64 | "version": "2.2.0", 65 | "resolved": "https://registry.npmjs.org/@ava/write-file-atomic/-/write-file-atomic-2.2.0.tgz", 66 | "integrity": "sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==", 67 | "dev": true, 68 | "requires": { 69 | "graceful-fs": "4.1.11", 70 | "imurmurhash": "0.1.4", 71 | "slide": "1.1.6" 72 | } 73 | }, 74 | "@concordance/react": { 75 | "version": "1.0.0", 76 | "resolved": "https://registry.npmjs.org/@concordance/react/-/react-1.0.0.tgz", 77 | "integrity": "sha512-htrsRaQX8Iixlsek8zQU7tE8wcsTQJ5UhZkSPEA8slCDAisKpC/2VgU/ucPn32M5/LjGGXRaUEKvEw1Wiuu4zQ==", 78 | "dev": true, 79 | "requires": { 80 | "arrify": "1.0.1" 81 | } 82 | }, 83 | "acorn": { 84 | "version": "5.1.1", 85 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz", 86 | "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==", 87 | "dev": true 88 | }, 89 | "acorn-jsx": { 90 | "version": "3.0.1", 91 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", 92 | "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", 93 | "dev": true, 94 | "requires": { 95 | "acorn": "3.3.0" 96 | }, 97 | "dependencies": { 98 | "acorn": { 99 | "version": "3.3.0", 100 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", 101 | "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", 102 | "dev": true 103 | } 104 | } 105 | }, 106 | "ajv": { 107 | "version": "5.2.2", 108 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz", 109 | "integrity": "sha1-R8aNaehvXZUxA7AHSpQw3GPaXjk=", 110 | "dev": true, 111 | "requires": { 112 | "co": "4.6.0", 113 | "fast-deep-equal": "1.0.0", 114 | "json-schema-traverse": "0.3.1", 115 | "json-stable-stringify": "1.0.1" 116 | } 117 | }, 118 | "ajv-keywords": { 119 | "version": "1.5.1", 120 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", 121 | "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", 122 | "dev": true 123 | }, 124 | "ansi-align": { 125 | "version": "2.0.0", 126 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", 127 | "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", 128 | "dev": true, 129 | "requires": { 130 | "string-width": "2.1.1" 131 | } 132 | }, 133 | "ansi-escapes": { 134 | "version": "2.0.0", 135 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz", 136 | "integrity": "sha1-W65SvkJIeN2Xg+iRDj/Cki6DyBs=", 137 | "dev": true 138 | }, 139 | "ansi-regex": { 140 | "version": "2.1.1", 141 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 142 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 143 | "dev": true 144 | }, 145 | "ansi-styles": { 146 | "version": "2.2.1", 147 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 148 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 149 | "dev": true 150 | }, 151 | "anymatch": { 152 | "version": "1.3.2", 153 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", 154 | "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", 155 | "dev": true, 156 | "requires": { 157 | "micromatch": "2.3.11", 158 | "normalize-path": "2.1.1" 159 | } 160 | }, 161 | "argparse": { 162 | "version": "1.0.9", 163 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", 164 | "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", 165 | "dev": true, 166 | "requires": { 167 | "sprintf-js": "1.0.3" 168 | } 169 | }, 170 | "arr-diff": { 171 | "version": "2.0.0", 172 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 173 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 174 | "dev": true, 175 | "requires": { 176 | "arr-flatten": "1.1.0" 177 | } 178 | }, 179 | "arr-exclude": { 180 | "version": "1.0.0", 181 | "resolved": "https://registry.npmjs.org/arr-exclude/-/arr-exclude-1.0.0.tgz", 182 | "integrity": "sha1-38fC5VKicHI8zaBM8xKMjL/lxjE=", 183 | "dev": true 184 | }, 185 | "arr-flatten": { 186 | "version": "1.1.0", 187 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 188 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 189 | "dev": true 190 | }, 191 | "array-differ": { 192 | "version": "1.0.0", 193 | "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", 194 | "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", 195 | "dev": true 196 | }, 197 | "array-find-index": { 198 | "version": "1.0.2", 199 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", 200 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", 201 | "dev": true 202 | }, 203 | "array-union": { 204 | "version": "1.0.2", 205 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 206 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 207 | "dev": true, 208 | "requires": { 209 | "array-uniq": "1.0.3" 210 | } 211 | }, 212 | "array-uniq": { 213 | "version": "1.0.3", 214 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 215 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 216 | "dev": true 217 | }, 218 | "array-unique": { 219 | "version": "0.2.1", 220 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 221 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", 222 | "dev": true 223 | }, 224 | "arrify": { 225 | "version": "1.0.1", 226 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 227 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 228 | "dev": true 229 | }, 230 | "asn1": { 231 | "version": "0.2.3", 232 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", 233 | "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", 234 | "dev": true 235 | }, 236 | "assert-plus": { 237 | "version": "1.0.0", 238 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 239 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 240 | "dev": true 241 | }, 242 | "async-each": { 243 | "version": "1.0.1", 244 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", 245 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", 246 | "dev": true 247 | }, 248 | "auto-bind": { 249 | "version": "1.1.0", 250 | "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-1.1.0.tgz", 251 | "integrity": "sha1-k7hk3H7gGjJigXddXHXKCnUeWWE=", 252 | "dev": true 253 | }, 254 | "ava": { 255 | "version": "0.22.0", 256 | "resolved": "https://registry.npmjs.org/ava/-/ava-0.22.0.tgz", 257 | "integrity": "sha512-dYxvVDL9CeIcgaQ/FojaBVaL/rnIsXdgPVliDOMe1O5nSsIZEsPYDIzmZ1KnO/cuxeQx1PQbtW6qziiEwQZusg==", 258 | "dev": true, 259 | "requires": { 260 | "@ava/babel-preset-stage-4": "1.1.0", 261 | "@ava/babel-preset-transform-test-files": "3.0.0", 262 | "@ava/write-file-atomic": "2.2.0", 263 | "@concordance/react": "1.0.0", 264 | "ansi-escapes": "2.0.0", 265 | "ansi-styles": "3.2.0", 266 | "arr-flatten": "1.1.0", 267 | "array-union": "1.0.2", 268 | "array-uniq": "1.0.3", 269 | "arrify": "1.0.1", 270 | "auto-bind": "1.1.0", 271 | "ava-init": "0.2.1", 272 | "babel-core": "6.26.0", 273 | "bluebird": "3.5.0", 274 | "caching-transform": "1.0.1", 275 | "chalk": "2.1.0", 276 | "chokidar": "1.7.0", 277 | "clean-stack": "1.3.0", 278 | "clean-yaml-object": "0.1.0", 279 | "cli-cursor": "2.1.0", 280 | "cli-spinners": "1.0.0", 281 | "cli-truncate": "1.1.0", 282 | "co-with-promise": "4.6.0", 283 | "code-excerpt": "2.1.0", 284 | "common-path-prefix": "1.0.0", 285 | "concordance": "3.0.0", 286 | "convert-source-map": "1.5.0", 287 | "core-assert": "0.2.1", 288 | "currently-unhandled": "0.4.1", 289 | "debug": "2.6.8", 290 | "dot-prop": "4.2.0", 291 | "empower-core": "0.6.2", 292 | "equal-length": "1.0.1", 293 | "figures": "2.0.0", 294 | "find-cache-dir": "1.0.0", 295 | "fn-name": "2.0.1", 296 | "get-port": "3.2.0", 297 | "globby": "6.1.0", 298 | "has-flag": "2.0.0", 299 | "hullabaloo-config-manager": "1.1.1", 300 | "ignore-by-default": "1.0.1", 301 | "import-local": "0.1.1", 302 | "indent-string": "3.2.0", 303 | "is-ci": "1.0.10", 304 | "is-generator-fn": "1.0.0", 305 | "is-obj": "1.0.1", 306 | "is-observable": "0.2.0", 307 | "is-promise": "2.1.0", 308 | "js-yaml": "3.9.1", 309 | "last-line-stream": "1.0.0", 310 | "lodash.clonedeepwith": "4.5.0", 311 | "lodash.debounce": "4.0.8", 312 | "lodash.difference": "4.5.0", 313 | "lodash.flatten": "4.4.0", 314 | "loud-rejection": "1.6.0", 315 | "make-dir": "1.0.0", 316 | "matcher": "1.0.0", 317 | "md5-hex": "2.0.0", 318 | "meow": "3.7.0", 319 | "ms": "2.0.0", 320 | "multimatch": "2.1.0", 321 | "observable-to-promise": "0.5.0", 322 | "option-chain": "1.0.0", 323 | "package-hash": "2.0.0", 324 | "pkg-conf": "2.0.0", 325 | "plur": "2.1.2", 326 | "pretty-ms": "2.1.0", 327 | "require-precompiled": "0.1.0", 328 | "resolve-cwd": "2.0.0", 329 | "safe-buffer": "5.1.1", 330 | "slash": "1.0.0", 331 | "source-map-support": "0.4.18", 332 | "stack-utils": "1.0.1", 333 | "strip-ansi": "4.0.0", 334 | "strip-bom-buf": "1.0.0", 335 | "supports-color": "4.4.0", 336 | "time-require": "0.1.2", 337 | "trim-off-newlines": "1.0.1", 338 | "unique-temp-dir": "1.0.0", 339 | "update-notifier": "2.2.0" 340 | }, 341 | "dependencies": { 342 | "ansi-regex": { 343 | "version": "3.0.0", 344 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 345 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 346 | "dev": true 347 | }, 348 | "ansi-styles": { 349 | "version": "3.2.0", 350 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", 351 | "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", 352 | "dev": true, 353 | "requires": { 354 | "color-convert": "1.9.0" 355 | } 356 | }, 357 | "chalk": { 358 | "version": "2.1.0", 359 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", 360 | "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", 361 | "dev": true, 362 | "requires": { 363 | "ansi-styles": "3.2.0", 364 | "escape-string-regexp": "1.0.5", 365 | "supports-color": "4.4.0" 366 | } 367 | }, 368 | "globby": { 369 | "version": "6.1.0", 370 | "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", 371 | "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", 372 | "dev": true, 373 | "requires": { 374 | "array-union": "1.0.2", 375 | "glob": "7.1.2", 376 | "object-assign": "4.1.1", 377 | "pify": "2.3.0", 378 | "pinkie-promise": "2.0.1" 379 | } 380 | }, 381 | "strip-ansi": { 382 | "version": "4.0.0", 383 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 384 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 385 | "dev": true, 386 | "requires": { 387 | "ansi-regex": "3.0.0" 388 | } 389 | }, 390 | "supports-color": { 391 | "version": "4.4.0", 392 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", 393 | "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", 394 | "dev": true, 395 | "requires": { 396 | "has-flag": "2.0.0" 397 | } 398 | } 399 | } 400 | }, 401 | "ava-init": { 402 | "version": "0.2.1", 403 | "resolved": "https://registry.npmjs.org/ava-init/-/ava-init-0.2.1.tgz", 404 | "integrity": "sha512-lXwK5LM+2g1euDRqW1mcSX/tqzY1QU7EjKpqayFPPtNRmbSYZ8RzPO5tqluTToijmtjp2M+pNpVdbcHssC4glg==", 405 | "dev": true, 406 | "requires": { 407 | "arr-exclude": "1.0.0", 408 | "execa": "0.7.0", 409 | "has-yarn": "1.0.0", 410 | "read-pkg-up": "2.0.0", 411 | "write-pkg": "3.1.0" 412 | } 413 | }, 414 | "babel-code-frame": { 415 | "version": "6.22.0", 416 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", 417 | "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", 418 | "dev": true, 419 | "requires": { 420 | "chalk": "1.1.3", 421 | "esutils": "2.0.2", 422 | "js-tokens": "3.0.2" 423 | } 424 | }, 425 | "babel-core": { 426 | "version": "6.26.0", 427 | "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", 428 | "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", 429 | "dev": true, 430 | "requires": { 431 | "babel-code-frame": "6.26.0", 432 | "babel-generator": "6.26.0", 433 | "babel-helpers": "6.24.1", 434 | "babel-messages": "6.23.0", 435 | "babel-register": "6.26.0", 436 | "babel-runtime": "6.26.0", 437 | "babel-template": "6.26.0", 438 | "babel-traverse": "6.26.0", 439 | "babel-types": "6.26.0", 440 | "babylon": "6.18.0", 441 | "convert-source-map": "1.5.0", 442 | "debug": "2.6.8", 443 | "json5": "0.5.1", 444 | "lodash": "4.17.4", 445 | "minimatch": "3.0.4", 446 | "path-is-absolute": "1.0.1", 447 | "private": "0.1.7", 448 | "slash": "1.0.0", 449 | "source-map": "0.5.7" 450 | }, 451 | "dependencies": { 452 | "babel-code-frame": { 453 | "version": "6.26.0", 454 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 455 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 456 | "dev": true, 457 | "requires": { 458 | "chalk": "1.1.3", 459 | "esutils": "2.0.2", 460 | "js-tokens": "3.0.2" 461 | } 462 | } 463 | } 464 | }, 465 | "babel-generator": { 466 | "version": "6.26.0", 467 | "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", 468 | "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", 469 | "dev": true, 470 | "requires": { 471 | "babel-messages": "6.23.0", 472 | "babel-runtime": "6.26.0", 473 | "babel-types": "6.26.0", 474 | "detect-indent": "4.0.0", 475 | "jsesc": "1.3.0", 476 | "lodash": "4.17.4", 477 | "source-map": "0.5.7", 478 | "trim-right": "1.0.1" 479 | }, 480 | "dependencies": { 481 | "jsesc": { 482 | "version": "1.3.0", 483 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", 484 | "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", 485 | "dev": true 486 | } 487 | } 488 | }, 489 | "babel-helper-builder-binary-assignment-operator-visitor": { 490 | "version": "6.24.1", 491 | "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", 492 | "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", 493 | "dev": true, 494 | "requires": { 495 | "babel-helper-explode-assignable-expression": "6.24.1", 496 | "babel-runtime": "6.26.0", 497 | "babel-types": "6.26.0" 498 | } 499 | }, 500 | "babel-helper-call-delegate": { 501 | "version": "6.24.1", 502 | "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", 503 | "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", 504 | "dev": true, 505 | "requires": { 506 | "babel-helper-hoist-variables": "6.24.1", 507 | "babel-runtime": "6.26.0", 508 | "babel-traverse": "6.26.0", 509 | "babel-types": "6.26.0" 510 | } 511 | }, 512 | "babel-helper-explode-assignable-expression": { 513 | "version": "6.24.1", 514 | "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", 515 | "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", 516 | "dev": true, 517 | "requires": { 518 | "babel-runtime": "6.26.0", 519 | "babel-traverse": "6.26.0", 520 | "babel-types": "6.26.0" 521 | } 522 | }, 523 | "babel-helper-function-name": { 524 | "version": "6.24.1", 525 | "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", 526 | "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", 527 | "dev": true, 528 | "requires": { 529 | "babel-helper-get-function-arity": "6.24.1", 530 | "babel-runtime": "6.26.0", 531 | "babel-template": "6.26.0", 532 | "babel-traverse": "6.26.0", 533 | "babel-types": "6.26.0" 534 | } 535 | }, 536 | "babel-helper-get-function-arity": { 537 | "version": "6.24.1", 538 | "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", 539 | "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", 540 | "dev": true, 541 | "requires": { 542 | "babel-runtime": "6.26.0", 543 | "babel-types": "6.26.0" 544 | } 545 | }, 546 | "babel-helper-hoist-variables": { 547 | "version": "6.24.1", 548 | "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", 549 | "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", 550 | "dev": true, 551 | "requires": { 552 | "babel-runtime": "6.26.0", 553 | "babel-types": "6.26.0" 554 | } 555 | }, 556 | "babel-helper-regex": { 557 | "version": "6.26.0", 558 | "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", 559 | "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", 560 | "dev": true, 561 | "requires": { 562 | "babel-runtime": "6.26.0", 563 | "babel-types": "6.26.0", 564 | "lodash": "4.17.4" 565 | } 566 | }, 567 | "babel-helper-remap-async-to-generator": { 568 | "version": "6.24.1", 569 | "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", 570 | "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", 571 | "dev": true, 572 | "requires": { 573 | "babel-helper-function-name": "6.24.1", 574 | "babel-runtime": "6.26.0", 575 | "babel-template": "6.26.0", 576 | "babel-traverse": "6.26.0", 577 | "babel-types": "6.26.0" 578 | } 579 | }, 580 | "babel-helpers": { 581 | "version": "6.24.1", 582 | "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", 583 | "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", 584 | "dev": true, 585 | "requires": { 586 | "babel-runtime": "6.26.0", 587 | "babel-template": "6.26.0" 588 | } 589 | }, 590 | "babel-messages": { 591 | "version": "6.23.0", 592 | "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", 593 | "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", 594 | "dev": true, 595 | "requires": { 596 | "babel-runtime": "6.26.0" 597 | } 598 | }, 599 | "babel-plugin-check-es2015-constants": { 600 | "version": "6.22.0", 601 | "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", 602 | "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", 603 | "dev": true, 604 | "requires": { 605 | "babel-runtime": "6.26.0" 606 | } 607 | }, 608 | "babel-plugin-espower": { 609 | "version": "2.3.2", 610 | "resolved": "https://registry.npmjs.org/babel-plugin-espower/-/babel-plugin-espower-2.3.2.tgz", 611 | "integrity": "sha1-VRa4/NsmyfDh2BYHSfbkxl5xJx4=", 612 | "dev": true, 613 | "requires": { 614 | "babel-generator": "6.26.0", 615 | "babylon": "6.18.0", 616 | "call-matcher": "1.0.1", 617 | "core-js": "2.5.1", 618 | "espower-location-detector": "1.0.0", 619 | "espurify": "1.7.0", 620 | "estraverse": "4.2.0" 621 | } 622 | }, 623 | "babel-plugin-syntax-async-functions": { 624 | "version": "6.13.0", 625 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", 626 | "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", 627 | "dev": true 628 | }, 629 | "babel-plugin-syntax-exponentiation-operator": { 630 | "version": "6.13.0", 631 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", 632 | "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", 633 | "dev": true 634 | }, 635 | "babel-plugin-syntax-trailing-function-commas": { 636 | "version": "6.22.0", 637 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", 638 | "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", 639 | "dev": true 640 | }, 641 | "babel-plugin-transform-async-to-generator": { 642 | "version": "6.24.1", 643 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", 644 | "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", 645 | "dev": true, 646 | "requires": { 647 | "babel-helper-remap-async-to-generator": "6.24.1", 648 | "babel-plugin-syntax-async-functions": "6.13.0", 649 | "babel-runtime": "6.26.0" 650 | } 651 | }, 652 | "babel-plugin-transform-es2015-destructuring": { 653 | "version": "6.23.0", 654 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", 655 | "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", 656 | "dev": true, 657 | "requires": { 658 | "babel-runtime": "6.26.0" 659 | } 660 | }, 661 | "babel-plugin-transform-es2015-function-name": { 662 | "version": "6.24.1", 663 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", 664 | "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", 665 | "dev": true, 666 | "requires": { 667 | "babel-helper-function-name": "6.24.1", 668 | "babel-runtime": "6.26.0", 669 | "babel-types": "6.26.0" 670 | } 671 | }, 672 | "babel-plugin-transform-es2015-modules-commonjs": { 673 | "version": "6.26.0", 674 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", 675 | "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", 676 | "dev": true, 677 | "requires": { 678 | "babel-plugin-transform-strict-mode": "6.24.1", 679 | "babel-runtime": "6.26.0", 680 | "babel-template": "6.26.0", 681 | "babel-types": "6.26.0" 682 | } 683 | }, 684 | "babel-plugin-transform-es2015-parameters": { 685 | "version": "6.24.1", 686 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", 687 | "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", 688 | "dev": true, 689 | "requires": { 690 | "babel-helper-call-delegate": "6.24.1", 691 | "babel-helper-get-function-arity": "6.24.1", 692 | "babel-runtime": "6.26.0", 693 | "babel-template": "6.26.0", 694 | "babel-traverse": "6.26.0", 695 | "babel-types": "6.26.0" 696 | } 697 | }, 698 | "babel-plugin-transform-es2015-spread": { 699 | "version": "6.22.0", 700 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", 701 | "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", 702 | "dev": true, 703 | "requires": { 704 | "babel-runtime": "6.26.0" 705 | } 706 | }, 707 | "babel-plugin-transform-es2015-sticky-regex": { 708 | "version": "6.24.1", 709 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", 710 | "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", 711 | "dev": true, 712 | "requires": { 713 | "babel-helper-regex": "6.26.0", 714 | "babel-runtime": "6.26.0", 715 | "babel-types": "6.26.0" 716 | } 717 | }, 718 | "babel-plugin-transform-es2015-unicode-regex": { 719 | "version": "6.24.1", 720 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", 721 | "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", 722 | "dev": true, 723 | "requires": { 724 | "babel-helper-regex": "6.26.0", 725 | "babel-runtime": "6.26.0", 726 | "regexpu-core": "2.0.0" 727 | } 728 | }, 729 | "babel-plugin-transform-exponentiation-operator": { 730 | "version": "6.24.1", 731 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", 732 | "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", 733 | "dev": true, 734 | "requires": { 735 | "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", 736 | "babel-plugin-syntax-exponentiation-operator": "6.13.0", 737 | "babel-runtime": "6.26.0" 738 | } 739 | }, 740 | "babel-plugin-transform-strict-mode": { 741 | "version": "6.24.1", 742 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", 743 | "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", 744 | "dev": true, 745 | "requires": { 746 | "babel-runtime": "6.26.0", 747 | "babel-types": "6.26.0" 748 | } 749 | }, 750 | "babel-register": { 751 | "version": "6.26.0", 752 | "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", 753 | "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", 754 | "dev": true, 755 | "requires": { 756 | "babel-core": "6.26.0", 757 | "babel-runtime": "6.26.0", 758 | "core-js": "2.5.1", 759 | "home-or-tmp": "2.0.0", 760 | "lodash": "4.17.4", 761 | "mkdirp": "0.5.1", 762 | "source-map-support": "0.4.18" 763 | } 764 | }, 765 | "babel-runtime": { 766 | "version": "6.26.0", 767 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 768 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 769 | "dev": true, 770 | "requires": { 771 | "core-js": "2.5.1", 772 | "regenerator-runtime": "0.11.0" 773 | } 774 | }, 775 | "babel-template": { 776 | "version": "6.26.0", 777 | "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", 778 | "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", 779 | "dev": true, 780 | "requires": { 781 | "babel-runtime": "6.26.0", 782 | "babel-traverse": "6.26.0", 783 | "babel-types": "6.26.0", 784 | "babylon": "6.18.0", 785 | "lodash": "4.17.4" 786 | } 787 | }, 788 | "babel-traverse": { 789 | "version": "6.26.0", 790 | "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", 791 | "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", 792 | "dev": true, 793 | "requires": { 794 | "babel-code-frame": "6.26.0", 795 | "babel-messages": "6.23.0", 796 | "babel-runtime": "6.26.0", 797 | "babel-types": "6.26.0", 798 | "babylon": "6.18.0", 799 | "debug": "2.6.8", 800 | "globals": "9.18.0", 801 | "invariant": "2.2.2", 802 | "lodash": "4.17.4" 803 | }, 804 | "dependencies": { 805 | "babel-code-frame": { 806 | "version": "6.26.0", 807 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 808 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 809 | "dev": true, 810 | "requires": { 811 | "chalk": "1.1.3", 812 | "esutils": "2.0.2", 813 | "js-tokens": "3.0.2" 814 | } 815 | } 816 | } 817 | }, 818 | "babel-types": { 819 | "version": "6.26.0", 820 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", 821 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", 822 | "dev": true, 823 | "requires": { 824 | "babel-runtime": "6.26.0", 825 | "esutils": "2.0.2", 826 | "lodash": "4.17.4", 827 | "to-fast-properties": "1.0.3" 828 | } 829 | }, 830 | "babylon": { 831 | "version": "6.18.0", 832 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", 833 | "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", 834 | "dev": true 835 | }, 836 | "balanced-match": { 837 | "version": "1.0.0", 838 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 839 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 840 | "dev": true 841 | }, 842 | "base64url": { 843 | "version": "2.0.0", 844 | "resolved": "https://registry.npmjs.org/base64url/-/base64url-2.0.0.tgz", 845 | "integrity": "sha1-6sFuA+oUOO/5Qj1puqNiYu0fcLs=", 846 | "dev": true 847 | }, 848 | "bcrypt-pbkdf": { 849 | "version": "1.0.1", 850 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", 851 | "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", 852 | "dev": true, 853 | "optional": true, 854 | "requires": { 855 | "tweetnacl": "0.14.5" 856 | } 857 | }, 858 | "bignumber.js": { 859 | "version": "4.0.2", 860 | "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.0.2.tgz", 861 | "integrity": "sha1-LR3DfuWWiGfs6pC22k0W5oYI0h0=", 862 | "dev": true 863 | }, 864 | "binary-extensions": { 865 | "version": "1.10.0", 866 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", 867 | "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=", 868 | "dev": true 869 | }, 870 | "bluebird": { 871 | "version": "3.5.0", 872 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", 873 | "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", 874 | "dev": true 875 | }, 876 | "boxen": { 877 | "version": "1.2.1", 878 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.2.1.tgz", 879 | "integrity": "sha1-DxHn/jRO25OXl3/BPt5/ZNlWSB0=", 880 | "dev": true, 881 | "requires": { 882 | "ansi-align": "2.0.0", 883 | "camelcase": "4.1.0", 884 | "chalk": "2.1.0", 885 | "cli-boxes": "1.0.0", 886 | "string-width": "2.1.1", 887 | "term-size": "1.2.0", 888 | "widest-line": "1.0.0" 889 | }, 890 | "dependencies": { 891 | "ansi-styles": { 892 | "version": "3.2.0", 893 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", 894 | "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", 895 | "dev": true, 896 | "requires": { 897 | "color-convert": "1.9.0" 898 | } 899 | }, 900 | "camelcase": { 901 | "version": "4.1.0", 902 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 903 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", 904 | "dev": true 905 | }, 906 | "chalk": { 907 | "version": "2.1.0", 908 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", 909 | "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", 910 | "dev": true, 911 | "requires": { 912 | "ansi-styles": "3.2.0", 913 | "escape-string-regexp": "1.0.5", 914 | "supports-color": "4.4.0" 915 | } 916 | }, 917 | "supports-color": { 918 | "version": "4.4.0", 919 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", 920 | "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", 921 | "dev": true, 922 | "requires": { 923 | "has-flag": "2.0.0" 924 | } 925 | } 926 | } 927 | }, 928 | "brace-expansion": { 929 | "version": "1.1.8", 930 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 931 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 932 | "dev": true, 933 | "requires": { 934 | "balanced-match": "1.0.0", 935 | "concat-map": "0.0.1" 936 | } 937 | }, 938 | "braces": { 939 | "version": "1.8.5", 940 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 941 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 942 | "dev": true, 943 | "requires": { 944 | "expand-range": "1.8.2", 945 | "preserve": "0.2.0", 946 | "repeat-element": "1.1.2" 947 | } 948 | }, 949 | "buf-compare": { 950 | "version": "1.0.1", 951 | "resolved": "https://registry.npmjs.org/buf-compare/-/buf-compare-1.0.1.tgz", 952 | "integrity": "sha1-/vKNqLgROgoNtEMLC2Rntpcws0o=", 953 | "dev": true 954 | }, 955 | "buffer-equal-constant-time": { 956 | "version": "1.0.1", 957 | "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", 958 | "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", 959 | "dev": true 960 | }, 961 | "builtin-modules": { 962 | "version": "1.1.1", 963 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 964 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 965 | "dev": true 966 | }, 967 | "bunyan": { 968 | "version": "1.8.12", 969 | "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz", 970 | "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", 971 | "dev": true, 972 | "requires": { 973 | "dtrace-provider": "0.8.5", 974 | "moment": "2.18.1", 975 | "mv": "2.1.1", 976 | "safe-json-stringify": "1.0.4" 977 | } 978 | }, 979 | "caching-transform": { 980 | "version": "1.0.1", 981 | "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", 982 | "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", 983 | "dev": true, 984 | "requires": { 985 | "md5-hex": "1.3.0", 986 | "mkdirp": "0.5.1", 987 | "write-file-atomic": "1.3.4" 988 | }, 989 | "dependencies": { 990 | "md5-hex": { 991 | "version": "1.3.0", 992 | "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", 993 | "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", 994 | "dev": true, 995 | "requires": { 996 | "md5-o-matic": "0.1.1" 997 | } 998 | }, 999 | "write-file-atomic": { 1000 | "version": "1.3.4", 1001 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", 1002 | "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", 1003 | "dev": true, 1004 | "requires": { 1005 | "graceful-fs": "4.1.11", 1006 | "imurmurhash": "0.1.4", 1007 | "slide": "1.1.6" 1008 | } 1009 | } 1010 | } 1011 | }, 1012 | "call-matcher": { 1013 | "version": "1.0.1", 1014 | "resolved": "https://registry.npmjs.org/call-matcher/-/call-matcher-1.0.1.tgz", 1015 | "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", 1016 | "dev": true, 1017 | "requires": { 1018 | "core-js": "2.5.1", 1019 | "deep-equal": "1.0.1", 1020 | "espurify": "1.7.0", 1021 | "estraverse": "4.2.0" 1022 | } 1023 | }, 1024 | "call-signature": { 1025 | "version": "0.0.2", 1026 | "resolved": "https://registry.npmjs.org/call-signature/-/call-signature-0.0.2.tgz", 1027 | "integrity": "sha1-qEq8glpV70yysCi9dOIFpluaSZY=", 1028 | "dev": true 1029 | }, 1030 | "caller-path": { 1031 | "version": "0.1.0", 1032 | "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", 1033 | "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", 1034 | "dev": true, 1035 | "requires": { 1036 | "callsites": "0.2.0" 1037 | } 1038 | }, 1039 | "callsites": { 1040 | "version": "0.2.0", 1041 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", 1042 | "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", 1043 | "dev": true 1044 | }, 1045 | "camelcase": { 1046 | "version": "2.1.1", 1047 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", 1048 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", 1049 | "dev": true 1050 | }, 1051 | "camelcase-keys": { 1052 | "version": "2.1.0", 1053 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", 1054 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", 1055 | "dev": true, 1056 | "requires": { 1057 | "camelcase": "2.1.1", 1058 | "map-obj": "1.0.1" 1059 | } 1060 | }, 1061 | "capture-stack-trace": { 1062 | "version": "1.0.0", 1063 | "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", 1064 | "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", 1065 | "dev": true 1066 | }, 1067 | "chalk": { 1068 | "version": "1.1.3", 1069 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 1070 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 1071 | "dev": true, 1072 | "requires": { 1073 | "ansi-styles": "2.2.1", 1074 | "escape-string-regexp": "1.0.5", 1075 | "has-ansi": "2.0.0", 1076 | "strip-ansi": "3.0.1", 1077 | "supports-color": "2.0.0" 1078 | } 1079 | }, 1080 | "charenc": { 1081 | "version": "0.0.2", 1082 | "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", 1083 | "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", 1084 | "dev": true 1085 | }, 1086 | "chokidar": { 1087 | "version": "1.7.0", 1088 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", 1089 | "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", 1090 | "dev": true, 1091 | "requires": { 1092 | "anymatch": "1.3.2", 1093 | "async-each": "1.0.1", 1094 | "fsevents": "1.1.2", 1095 | "glob-parent": "2.0.0", 1096 | "inherits": "2.0.3", 1097 | "is-binary-path": "1.0.1", 1098 | "is-glob": "2.0.1", 1099 | "path-is-absolute": "1.0.1", 1100 | "readdirp": "2.1.0" 1101 | } 1102 | }, 1103 | "ci-info": { 1104 | "version": "1.1.1", 1105 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.1.tgz", 1106 | "integrity": "sha512-vHDDF/bP9RYpTWtUhpJRhCFdvvp3iDWvEbuDbWgvjUrNGV1MXJrE0MPcwGtEled04m61iwdBLUIHZtDgzWS4ZQ==", 1107 | "dev": true 1108 | }, 1109 | "circular-json": { 1110 | "version": "0.3.3", 1111 | "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", 1112 | "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", 1113 | "dev": true 1114 | }, 1115 | "clean-stack": { 1116 | "version": "1.3.0", 1117 | "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz", 1118 | "integrity": "sha1-noIVAa6XmYbEax1m0tQy2y/UrjE=", 1119 | "dev": true 1120 | }, 1121 | "clean-yaml-object": { 1122 | "version": "0.1.0", 1123 | "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", 1124 | "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=", 1125 | "dev": true 1126 | }, 1127 | "cli-boxes": { 1128 | "version": "1.0.0", 1129 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", 1130 | "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", 1131 | "dev": true 1132 | }, 1133 | "cli-cursor": { 1134 | "version": "2.1.0", 1135 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 1136 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", 1137 | "dev": true, 1138 | "requires": { 1139 | "restore-cursor": "2.0.0" 1140 | } 1141 | }, 1142 | "cli-spinners": { 1143 | "version": "1.0.0", 1144 | "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.0.0.tgz", 1145 | "integrity": "sha1-75h+09SDkaw9q5GAtAanQhgNbmo=", 1146 | "dev": true 1147 | }, 1148 | "cli-truncate": { 1149 | "version": "1.1.0", 1150 | "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-1.1.0.tgz", 1151 | "integrity": "sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==", 1152 | "dev": true, 1153 | "requires": { 1154 | "slice-ansi": "1.0.0", 1155 | "string-width": "2.1.1" 1156 | }, 1157 | "dependencies": { 1158 | "slice-ansi": { 1159 | "version": "1.0.0", 1160 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", 1161 | "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", 1162 | "dev": true, 1163 | "requires": { 1164 | "is-fullwidth-code-point": "2.0.0" 1165 | } 1166 | } 1167 | } 1168 | }, 1169 | "cli-width": { 1170 | "version": "2.1.0", 1171 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", 1172 | "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=", 1173 | "dev": true 1174 | }, 1175 | "clone-regexp": { 1176 | "version": "1.0.0", 1177 | "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.0.tgz", 1178 | "integrity": "sha1-6uCiQT9VwJQvgYwin+/OhF1/Oxw=", 1179 | "dev": true, 1180 | "requires": { 1181 | "is-regexp": "1.0.0", 1182 | "is-supported-regexp-flag": "1.0.0" 1183 | } 1184 | }, 1185 | "co": { 1186 | "version": "4.6.0", 1187 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 1188 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 1189 | "dev": true 1190 | }, 1191 | "co-with-promise": { 1192 | "version": "4.6.0", 1193 | "resolved": "https://registry.npmjs.org/co-with-promise/-/co-with-promise-4.6.0.tgz", 1194 | "integrity": "sha1-QT59tvWJOmC5Qs9JLEvsk9tBWrc=", 1195 | "dev": true, 1196 | "requires": { 1197 | "pinkie-promise": "1.0.0" 1198 | }, 1199 | "dependencies": { 1200 | "pinkie": { 1201 | "version": "1.0.0", 1202 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz", 1203 | "integrity": "sha1-Wkfyi6EBXQIBvae/DzWOR77Ix+Q=", 1204 | "dev": true 1205 | }, 1206 | "pinkie-promise": { 1207 | "version": "1.0.0", 1208 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz", 1209 | "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", 1210 | "dev": true, 1211 | "requires": { 1212 | "pinkie": "1.0.0" 1213 | } 1214 | } 1215 | } 1216 | }, 1217 | "code-excerpt": { 1218 | "version": "2.1.0", 1219 | "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-2.1.0.tgz", 1220 | "integrity": "sha1-XcwIHoj0p+O1VOnjXX7yMtR/gUc=", 1221 | "dev": true, 1222 | "requires": { 1223 | "convert-to-spaces": "1.0.2" 1224 | } 1225 | }, 1226 | "code-point-at": { 1227 | "version": "1.1.0", 1228 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 1229 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 1230 | "dev": true 1231 | }, 1232 | "color-convert": { 1233 | "version": "1.9.0", 1234 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", 1235 | "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", 1236 | "dev": true, 1237 | "requires": { 1238 | "color-name": "1.1.3" 1239 | } 1240 | }, 1241 | "color-name": { 1242 | "version": "1.1.3", 1243 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1244 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 1245 | "dev": true 1246 | }, 1247 | "common-path-prefix": { 1248 | "version": "1.0.0", 1249 | "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-1.0.0.tgz", 1250 | "integrity": "sha1-zVL28HEuC6q5fW+XModPIvR3UsA=", 1251 | "dev": true 1252 | }, 1253 | "commondir": { 1254 | "version": "1.0.1", 1255 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 1256 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 1257 | "dev": true 1258 | }, 1259 | "concat-map": { 1260 | "version": "0.0.1", 1261 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1262 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1263 | "dev": true 1264 | }, 1265 | "concat-stream": { 1266 | "version": "1.6.0", 1267 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", 1268 | "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", 1269 | "dev": true, 1270 | "requires": { 1271 | "inherits": "2.0.3", 1272 | "readable-stream": "2.3.3", 1273 | "typedarray": "0.0.6" 1274 | } 1275 | }, 1276 | "concordance": { 1277 | "version": "3.0.0", 1278 | "resolved": "https://registry.npmjs.org/concordance/-/concordance-3.0.0.tgz", 1279 | "integrity": "sha512-CZBzJ3/l5QJjlZM20WY7+5GP5pMTw+1UEbThcpMw8/rojsi5sBCiD8ZbBLtD+jYpRGAkwuKuqk108c154V9eyQ==", 1280 | "dev": true, 1281 | "requires": { 1282 | "date-time": "2.1.0", 1283 | "esutils": "2.0.2", 1284 | "fast-diff": "1.1.1", 1285 | "function-name-support": "0.2.0", 1286 | "js-string-escape": "1.0.1", 1287 | "lodash.clonedeep": "4.5.0", 1288 | "lodash.flattendeep": "4.4.0", 1289 | "lodash.merge": "4.6.0", 1290 | "md5-hex": "2.0.0", 1291 | "semver": "5.4.1", 1292 | "well-known-symbols": "1.0.0" 1293 | } 1294 | }, 1295 | "configstore": { 1296 | "version": "3.1.1", 1297 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz", 1298 | "integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==", 1299 | "dev": true, 1300 | "requires": { 1301 | "dot-prop": "4.2.0", 1302 | "graceful-fs": "4.1.11", 1303 | "make-dir": "1.0.0", 1304 | "unique-string": "1.0.0", 1305 | "write-file-atomic": "2.3.0", 1306 | "xdg-basedir": "3.0.0" 1307 | } 1308 | }, 1309 | "contains-path": { 1310 | "version": "0.1.0", 1311 | "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", 1312 | "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", 1313 | "dev": true 1314 | }, 1315 | "convert-source-map": { 1316 | "version": "1.5.0", 1317 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", 1318 | "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", 1319 | "dev": true 1320 | }, 1321 | "convert-to-spaces": { 1322 | "version": "1.0.2", 1323 | "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz", 1324 | "integrity": "sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU=", 1325 | "dev": true 1326 | }, 1327 | "core-assert": { 1328 | "version": "0.2.1", 1329 | "resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz", 1330 | "integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=", 1331 | "dev": true, 1332 | "requires": { 1333 | "buf-compare": "1.0.1", 1334 | "is-error": "2.2.1" 1335 | } 1336 | }, 1337 | "core-js": { 1338 | "version": "2.5.1", 1339 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", 1340 | "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", 1341 | "dev": true 1342 | }, 1343 | "core-util-is": { 1344 | "version": "1.0.2", 1345 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 1346 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 1347 | "dev": true 1348 | }, 1349 | "create-error-class": { 1350 | "version": "3.0.2", 1351 | "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", 1352 | "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", 1353 | "dev": true, 1354 | "requires": { 1355 | "capture-stack-trace": "1.0.0" 1356 | } 1357 | }, 1358 | "cross-spawn": { 1359 | "version": "5.1.0", 1360 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 1361 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 1362 | "dev": true, 1363 | "requires": { 1364 | "lru-cache": "4.1.1", 1365 | "shebang-command": "1.2.0", 1366 | "which": "1.3.0" 1367 | } 1368 | }, 1369 | "crypt": { 1370 | "version": "0.0.2", 1371 | "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", 1372 | "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", 1373 | "dev": true 1374 | }, 1375 | "crypto-random-string": { 1376 | "version": "1.0.0", 1377 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", 1378 | "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", 1379 | "dev": true 1380 | }, 1381 | "csv": { 1382 | "version": "1.1.1", 1383 | "resolved": "https://registry.npmjs.org/csv/-/csv-1.1.1.tgz", 1384 | "integrity": "sha1-2ZUtWbH5ZKevvN2ATWgYpzGZpHc=", 1385 | "dev": true, 1386 | "requires": { 1387 | "csv-generate": "1.0.0", 1388 | "csv-parse": "1.2.1", 1389 | "csv-stringify": "1.0.4", 1390 | "stream-transform": "0.1.2" 1391 | } 1392 | }, 1393 | "csv-generate": { 1394 | "version": "1.0.0", 1395 | "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-1.0.0.tgz", 1396 | "integrity": "sha1-vVKIaFnQySXz5R9g86vtJi+hXK8=", 1397 | "dev": true 1398 | }, 1399 | "csv-parse": { 1400 | "version": "1.2.1", 1401 | "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-1.2.1.tgz", 1402 | "integrity": "sha1-kZnCPySQ2YxNmrKgFnsGknSYyd8=", 1403 | "dev": true 1404 | }, 1405 | "csv-stringify": { 1406 | "version": "1.0.4", 1407 | "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-1.0.4.tgz", 1408 | "integrity": "sha1-vBi6ua1M7zGV/SV5gLWLR5xC0+U=", 1409 | "dev": true, 1410 | "requires": { 1411 | "lodash.get": "4.4.2" 1412 | } 1413 | }, 1414 | "currently-unhandled": { 1415 | "version": "0.4.1", 1416 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", 1417 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", 1418 | "dev": true, 1419 | "requires": { 1420 | "array-find-index": "1.0.2" 1421 | } 1422 | }, 1423 | "dashdash": { 1424 | "version": "1.14.1", 1425 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 1426 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 1427 | "dev": true, 1428 | "requires": { 1429 | "assert-plus": "1.0.0" 1430 | } 1431 | }, 1432 | "date-time": { 1433 | "version": "2.1.0", 1434 | "resolved": "https://registry.npmjs.org/date-time/-/date-time-2.1.0.tgz", 1435 | "integrity": "sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==", 1436 | "dev": true, 1437 | "requires": { 1438 | "time-zone": "1.0.0" 1439 | } 1440 | }, 1441 | "debug": { 1442 | "version": "2.6.8", 1443 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", 1444 | "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", 1445 | "dev": true, 1446 | "requires": { 1447 | "ms": "2.0.0" 1448 | } 1449 | }, 1450 | "decamelize": { 1451 | "version": "1.2.0", 1452 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 1453 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 1454 | "dev": true 1455 | }, 1456 | "deep-equal": { 1457 | "version": "1.0.1", 1458 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", 1459 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", 1460 | "dev": true 1461 | }, 1462 | "deep-extend": { 1463 | "version": "0.4.2", 1464 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", 1465 | "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", 1466 | "dev": true 1467 | }, 1468 | "deep-is": { 1469 | "version": "0.1.3", 1470 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 1471 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 1472 | "dev": true 1473 | }, 1474 | "del": { 1475 | "version": "2.2.2", 1476 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", 1477 | "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", 1478 | "dev": true, 1479 | "requires": { 1480 | "globby": "5.0.0", 1481 | "is-path-cwd": "1.0.0", 1482 | "is-path-in-cwd": "1.0.0", 1483 | "object-assign": "4.1.1", 1484 | "pify": "2.3.0", 1485 | "pinkie-promise": "2.0.1", 1486 | "rimraf": "2.6.1" 1487 | } 1488 | }, 1489 | "detect-indent": { 1490 | "version": "4.0.0", 1491 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", 1492 | "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", 1493 | "dev": true, 1494 | "requires": { 1495 | "repeating": "2.0.1" 1496 | } 1497 | }, 1498 | "detect-node": { 1499 | "version": "2.0.3", 1500 | "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", 1501 | "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", 1502 | "dev": true 1503 | }, 1504 | "doctrine": { 1505 | "version": "2.0.0", 1506 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", 1507 | "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", 1508 | "dev": true, 1509 | "requires": { 1510 | "esutils": "2.0.2", 1511 | "isarray": "1.0.0" 1512 | } 1513 | }, 1514 | "dot-prop": { 1515 | "version": "4.2.0", 1516 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", 1517 | "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", 1518 | "dev": true, 1519 | "requires": { 1520 | "is-obj": "1.0.1" 1521 | } 1522 | }, 1523 | "dotenv": { 1524 | "version": "4.0.0", 1525 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", 1526 | "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=", 1527 | "dev": true 1528 | }, 1529 | "dtrace-provider": { 1530 | "version": "0.8.5", 1531 | "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.5.tgz", 1532 | "integrity": "sha1-mOu6Ihr6xG4cOf02hY2Pk2dSS5I=", 1533 | "dev": true, 1534 | "optional": true, 1535 | "requires": { 1536 | "nan": "2.6.2" 1537 | } 1538 | }, 1539 | "duplexer3": { 1540 | "version": "0.1.4", 1541 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", 1542 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", 1543 | "dev": true 1544 | }, 1545 | "ecc-jsbn": { 1546 | "version": "0.1.1", 1547 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", 1548 | "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", 1549 | "dev": true, 1550 | "optional": true, 1551 | "requires": { 1552 | "jsbn": "0.1.1" 1553 | } 1554 | }, 1555 | "ecdsa-sig-formatter": { 1556 | "version": "1.0.9", 1557 | "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz", 1558 | "integrity": "sha1-S8kmJ07Dtau1AW5+HWCSGsJisqE=", 1559 | "dev": true, 1560 | "requires": { 1561 | "base64url": "2.0.0", 1562 | "safe-buffer": "5.1.1" 1563 | } 1564 | }, 1565 | "empower-core": { 1566 | "version": "0.6.2", 1567 | "resolved": "https://registry.npmjs.org/empower-core/-/empower-core-0.6.2.tgz", 1568 | "integrity": "sha1-Wt71ZgiOMfuoC6CjbfR9cJQWkUQ=", 1569 | "dev": true, 1570 | "requires": { 1571 | "call-signature": "0.0.2", 1572 | "core-js": "2.5.1" 1573 | } 1574 | }, 1575 | "equal-length": { 1576 | "version": "1.0.1", 1577 | "resolved": "https://registry.npmjs.org/equal-length/-/equal-length-1.0.1.tgz", 1578 | "integrity": "sha1-IcoRLUirJLTh5//A5TOdMf38J0w=", 1579 | "dev": true 1580 | }, 1581 | "error-ex": { 1582 | "version": "1.3.1", 1583 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", 1584 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", 1585 | "dev": true, 1586 | "requires": { 1587 | "is-arrayish": "0.2.1" 1588 | } 1589 | }, 1590 | "es6-error": { 1591 | "version": "4.0.2", 1592 | "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.0.2.tgz", 1593 | "integrity": "sha1-7sXHJurO9Rt/a3PCDbbhsTsGnJg=", 1594 | "dev": true 1595 | }, 1596 | "escape-regexp-component": { 1597 | "version": "1.0.2", 1598 | "resolved": "https://registry.npmjs.org/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz", 1599 | "integrity": "sha1-nGO20LJf8qiMOtvRjFthrMO5+qI=", 1600 | "dev": true 1601 | }, 1602 | "escape-string-regexp": { 1603 | "version": "1.0.5", 1604 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1605 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1606 | "dev": true 1607 | }, 1608 | "eslint": { 1609 | "version": "4.4.1", 1610 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.4.1.tgz", 1611 | "integrity": "sha1-mc1+r8/8ov+Zpcj18qR01jZLS9M=", 1612 | "dev": true, 1613 | "requires": { 1614 | "ajv": "5.2.2", 1615 | "babel-code-frame": "6.22.0", 1616 | "chalk": "1.1.3", 1617 | "concat-stream": "1.6.0", 1618 | "cross-spawn": "5.1.0", 1619 | "debug": "2.6.8", 1620 | "doctrine": "2.0.0", 1621 | "eslint-scope": "3.7.1", 1622 | "espree": "3.5.0", 1623 | "esquery": "1.0.0", 1624 | "estraverse": "4.2.0", 1625 | "esutils": "2.0.2", 1626 | "file-entry-cache": "2.0.0", 1627 | "functional-red-black-tree": "1.0.1", 1628 | "glob": "7.1.2", 1629 | "globals": "9.18.0", 1630 | "ignore": "3.3.3", 1631 | "imurmurhash": "0.1.4", 1632 | "inquirer": "3.2.1", 1633 | "is-resolvable": "1.0.0", 1634 | "js-yaml": "3.9.1", 1635 | "json-stable-stringify": "1.0.1", 1636 | "levn": "0.3.0", 1637 | "lodash": "4.17.4", 1638 | "minimatch": "3.0.4", 1639 | "mkdirp": "0.5.1", 1640 | "natural-compare": "1.4.0", 1641 | "optionator": "0.8.2", 1642 | "path-is-inside": "1.0.2", 1643 | "pluralize": "4.0.0", 1644 | "progress": "2.0.0", 1645 | "require-uncached": "1.0.3", 1646 | "semver": "5.4.1", 1647 | "strip-json-comments": "2.0.1", 1648 | "table": "4.0.1", 1649 | "text-table": "0.2.0" 1650 | } 1651 | }, 1652 | "eslint-config-standard": { 1653 | "version": "10.2.1", 1654 | "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz", 1655 | "integrity": "sha1-wGHk0GbzedwXzVYsZOgZtN1FRZE=", 1656 | "dev": true 1657 | }, 1658 | "eslint-import-resolver-node": { 1659 | "version": "0.3.1", 1660 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz", 1661 | "integrity": "sha512-yUtXS15gIcij68NmXmP9Ni77AQuCN0itXbCc/jWd8C6/yKZaSNXicpC8cgvjnxVdmfsosIXrjpzFq7GcDryb6A==", 1662 | "dev": true, 1663 | "requires": { 1664 | "debug": "2.6.8", 1665 | "resolve": "1.4.0" 1666 | } 1667 | }, 1668 | "eslint-module-utils": { 1669 | "version": "2.1.1", 1670 | "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz", 1671 | "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==", 1672 | "dev": true, 1673 | "requires": { 1674 | "debug": "2.6.8", 1675 | "pkg-dir": "1.0.0" 1676 | } 1677 | }, 1678 | "eslint-plugin-import": { 1679 | "version": "2.7.0", 1680 | "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.7.0.tgz", 1681 | "integrity": "sha512-HGYmpU9f/zJaQiKNQOVfHUh2oLWW3STBrCgH0sHTX1xtsxYlH1zjLh8FlQGEIdZSdTbUMaV36WaZ6ImXkenGxQ==", 1682 | "dev": true, 1683 | "requires": { 1684 | "builtin-modules": "1.1.1", 1685 | "contains-path": "0.1.0", 1686 | "debug": "2.6.8", 1687 | "doctrine": "1.5.0", 1688 | "eslint-import-resolver-node": "0.3.1", 1689 | "eslint-module-utils": "2.1.1", 1690 | "has": "1.0.1", 1691 | "lodash.cond": "4.5.2", 1692 | "minimatch": "3.0.4", 1693 | "read-pkg-up": "2.0.0" 1694 | }, 1695 | "dependencies": { 1696 | "doctrine": { 1697 | "version": "1.5.0", 1698 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", 1699 | "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", 1700 | "dev": true, 1701 | "requires": { 1702 | "esutils": "2.0.2", 1703 | "isarray": "1.0.0" 1704 | } 1705 | } 1706 | } 1707 | }, 1708 | "eslint-plugin-node": { 1709 | "version": "5.1.1", 1710 | "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-5.1.1.tgz", 1711 | "integrity": "sha512-3xdoEbPyyQNyGhhqttjgSO3cU/non8QDBJF8ttGaHM2h8CaY5zFIngtqW6ZbLEIvhpoFPDVwiQg61b8zanx5zQ==", 1712 | "dev": true, 1713 | "requires": { 1714 | "ignore": "3.3.3", 1715 | "minimatch": "3.0.4", 1716 | "resolve": "1.4.0", 1717 | "semver": "5.3.0" 1718 | }, 1719 | "dependencies": { 1720 | "semver": { 1721 | "version": "5.3.0", 1722 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", 1723 | "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", 1724 | "dev": true 1725 | } 1726 | } 1727 | }, 1728 | "eslint-plugin-promise": { 1729 | "version": "3.5.0", 1730 | "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.5.0.tgz", 1731 | "integrity": "sha1-ePu2/+BHIBYnVp6FpsU3OvKmj8o=", 1732 | "dev": true 1733 | }, 1734 | "eslint-plugin-standard": { 1735 | "version": "3.0.1", 1736 | "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", 1737 | "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=", 1738 | "dev": true 1739 | }, 1740 | "eslint-scope": { 1741 | "version": "3.7.1", 1742 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", 1743 | "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", 1744 | "dev": true, 1745 | "requires": { 1746 | "esrecurse": "4.2.0", 1747 | "estraverse": "4.2.0" 1748 | } 1749 | }, 1750 | "espower-location-detector": { 1751 | "version": "1.0.0", 1752 | "resolved": "https://registry.npmjs.org/espower-location-detector/-/espower-location-detector-1.0.0.tgz", 1753 | "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", 1754 | "dev": true, 1755 | "requires": { 1756 | "is-url": "1.2.2", 1757 | "path-is-absolute": "1.0.1", 1758 | "source-map": "0.5.7", 1759 | "xtend": "4.0.1" 1760 | } 1761 | }, 1762 | "espree": { 1763 | "version": "3.5.0", 1764 | "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.0.tgz", 1765 | "integrity": "sha1-mDWGJb3QVYYeon4oZ+pyn69GPY0=", 1766 | "dev": true, 1767 | "requires": { 1768 | "acorn": "5.1.1", 1769 | "acorn-jsx": "3.0.1" 1770 | } 1771 | }, 1772 | "esprima": { 1773 | "version": "4.0.0", 1774 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", 1775 | "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", 1776 | "dev": true 1777 | }, 1778 | "espurify": { 1779 | "version": "1.7.0", 1780 | "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.7.0.tgz", 1781 | "integrity": "sha1-HFz2y8zDLm9jk4C9T5kfq5up0iY=", 1782 | "dev": true, 1783 | "requires": { 1784 | "core-js": "2.5.1" 1785 | } 1786 | }, 1787 | "esquery": { 1788 | "version": "1.0.0", 1789 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", 1790 | "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", 1791 | "dev": true, 1792 | "requires": { 1793 | "estraverse": "4.2.0" 1794 | } 1795 | }, 1796 | "esrecurse": { 1797 | "version": "4.2.0", 1798 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", 1799 | "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", 1800 | "dev": true, 1801 | "requires": { 1802 | "estraverse": "4.2.0", 1803 | "object-assign": "4.1.1" 1804 | } 1805 | }, 1806 | "estraverse": { 1807 | "version": "4.2.0", 1808 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 1809 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 1810 | "dev": true 1811 | }, 1812 | "esutils": { 1813 | "version": "2.0.2", 1814 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 1815 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 1816 | "dev": true 1817 | }, 1818 | "execa": { 1819 | "version": "0.7.0", 1820 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", 1821 | "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", 1822 | "dev": true, 1823 | "requires": { 1824 | "cross-spawn": "5.1.0", 1825 | "get-stream": "3.0.0", 1826 | "is-stream": "1.1.0", 1827 | "npm-run-path": "2.0.2", 1828 | "p-finally": "1.0.0", 1829 | "signal-exit": "3.0.2", 1830 | "strip-eof": "1.0.0" 1831 | } 1832 | }, 1833 | "expand-brackets": { 1834 | "version": "0.1.5", 1835 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 1836 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 1837 | "dev": true, 1838 | "requires": { 1839 | "is-posix-bracket": "0.1.1" 1840 | } 1841 | }, 1842 | "expand-range": { 1843 | "version": "1.8.2", 1844 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 1845 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 1846 | "dev": true, 1847 | "requires": { 1848 | "fill-range": "2.2.3" 1849 | } 1850 | }, 1851 | "external-editor": { 1852 | "version": "2.0.4", 1853 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz", 1854 | "integrity": "sha1-HtkZnanL/i7y96MbL96LDRI2iXI=", 1855 | "dev": true, 1856 | "requires": { 1857 | "iconv-lite": "0.4.18", 1858 | "jschardet": "1.5.1", 1859 | "tmp": "0.0.31" 1860 | } 1861 | }, 1862 | "extglob": { 1863 | "version": "0.3.2", 1864 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 1865 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 1866 | "dev": true, 1867 | "requires": { 1868 | "is-extglob": "1.0.0" 1869 | } 1870 | }, 1871 | "extsprintf": { 1872 | "version": "1.3.0", 1873 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 1874 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 1875 | "dev": true 1876 | }, 1877 | "fast-deep-equal": { 1878 | "version": "1.0.0", 1879 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", 1880 | "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", 1881 | "dev": true 1882 | }, 1883 | "fast-diff": { 1884 | "version": "1.1.1", 1885 | "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.1.tgz", 1886 | "integrity": "sha1-CuoOTmBbaiGJ8Ok21Lf7rxt8/Zs=", 1887 | "dev": true 1888 | }, 1889 | "fast-levenshtein": { 1890 | "version": "2.0.6", 1891 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1892 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 1893 | "dev": true 1894 | }, 1895 | "figures": { 1896 | "version": "2.0.0", 1897 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 1898 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 1899 | "dev": true, 1900 | "requires": { 1901 | "escape-string-regexp": "1.0.5" 1902 | } 1903 | }, 1904 | "file-entry-cache": { 1905 | "version": "2.0.0", 1906 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", 1907 | "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", 1908 | "dev": true, 1909 | "requires": { 1910 | "flat-cache": "1.2.2", 1911 | "object-assign": "4.1.1" 1912 | } 1913 | }, 1914 | "filename-regex": { 1915 | "version": "2.0.1", 1916 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 1917 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", 1918 | "dev": true 1919 | }, 1920 | "fill-range": { 1921 | "version": "2.2.3", 1922 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", 1923 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", 1924 | "dev": true, 1925 | "requires": { 1926 | "is-number": "2.1.0", 1927 | "isobject": "2.1.0", 1928 | "randomatic": "1.1.7", 1929 | "repeat-element": "1.1.2", 1930 | "repeat-string": "1.6.1" 1931 | } 1932 | }, 1933 | "find-cache-dir": { 1934 | "version": "1.0.0", 1935 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", 1936 | "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", 1937 | "dev": true, 1938 | "requires": { 1939 | "commondir": "1.0.1", 1940 | "make-dir": "1.0.0", 1941 | "pkg-dir": "2.0.0" 1942 | }, 1943 | "dependencies": { 1944 | "find-up": { 1945 | "version": "2.1.0", 1946 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 1947 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 1948 | "dev": true, 1949 | "requires": { 1950 | "locate-path": "2.0.0" 1951 | } 1952 | }, 1953 | "pkg-dir": { 1954 | "version": "2.0.0", 1955 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", 1956 | "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", 1957 | "dev": true, 1958 | "requires": { 1959 | "find-up": "2.1.0" 1960 | } 1961 | } 1962 | } 1963 | }, 1964 | "find-up": { 1965 | "version": "1.1.2", 1966 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 1967 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 1968 | "dev": true, 1969 | "requires": { 1970 | "path-exists": "2.1.0", 1971 | "pinkie-promise": "2.0.1" 1972 | } 1973 | }, 1974 | "flat-cache": { 1975 | "version": "1.2.2", 1976 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", 1977 | "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", 1978 | "dev": true, 1979 | "requires": { 1980 | "circular-json": "0.3.3", 1981 | "del": "2.2.2", 1982 | "graceful-fs": "4.1.11", 1983 | "write": "0.2.1" 1984 | } 1985 | }, 1986 | "fn-name": { 1987 | "version": "2.0.1", 1988 | "resolved": "https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz", 1989 | "integrity": "sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=", 1990 | "dev": true 1991 | }, 1992 | "for-in": { 1993 | "version": "1.0.2", 1994 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1995 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 1996 | "dev": true 1997 | }, 1998 | "for-own": { 1999 | "version": "0.1.5", 2000 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 2001 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 2002 | "dev": true, 2003 | "requires": { 2004 | "for-in": "1.0.2" 2005 | } 2006 | }, 2007 | "formidable": { 2008 | "version": "1.1.1", 2009 | "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz", 2010 | "integrity": "sha1-lriIb3w8NQi5Mta9cMTTqI818ak=", 2011 | "dev": true 2012 | }, 2013 | "fs.realpath": { 2014 | "version": "1.0.0", 2015 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 2016 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 2017 | "dev": true 2018 | }, 2019 | "fsevents": { 2020 | "version": "1.1.2", 2021 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", 2022 | "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", 2023 | "dev": true, 2024 | "optional": true, 2025 | "requires": { 2026 | "nan": "2.6.2", 2027 | "node-pre-gyp": "0.6.36" 2028 | }, 2029 | "dependencies": { 2030 | "abbrev": { 2031 | "version": "1.1.0", 2032 | "bundled": true, 2033 | "dev": true, 2034 | "optional": true 2035 | }, 2036 | "ajv": { 2037 | "version": "4.11.8", 2038 | "bundled": true, 2039 | "dev": true, 2040 | "optional": true, 2041 | "requires": { 2042 | "co": "4.6.0", 2043 | "json-stable-stringify": "1.0.1" 2044 | } 2045 | }, 2046 | "ansi-regex": { 2047 | "version": "2.1.1", 2048 | "bundled": true, 2049 | "dev": true 2050 | }, 2051 | "aproba": { 2052 | "version": "1.1.1", 2053 | "bundled": true, 2054 | "dev": true, 2055 | "optional": true 2056 | }, 2057 | "are-we-there-yet": { 2058 | "version": "1.1.4", 2059 | "bundled": true, 2060 | "dev": true, 2061 | "optional": true, 2062 | "requires": { 2063 | "delegates": "1.0.0", 2064 | "readable-stream": "2.2.9" 2065 | } 2066 | }, 2067 | "asn1": { 2068 | "version": "0.2.3", 2069 | "bundled": true, 2070 | "dev": true, 2071 | "optional": true 2072 | }, 2073 | "assert-plus": { 2074 | "version": "0.2.0", 2075 | "bundled": true, 2076 | "dev": true, 2077 | "optional": true 2078 | }, 2079 | "asynckit": { 2080 | "version": "0.4.0", 2081 | "bundled": true, 2082 | "dev": true, 2083 | "optional": true 2084 | }, 2085 | "aws-sign2": { 2086 | "version": "0.6.0", 2087 | "bundled": true, 2088 | "dev": true, 2089 | "optional": true 2090 | }, 2091 | "aws4": { 2092 | "version": "1.6.0", 2093 | "bundled": true, 2094 | "dev": true, 2095 | "optional": true 2096 | }, 2097 | "balanced-match": { 2098 | "version": "0.4.2", 2099 | "bundled": true, 2100 | "dev": true 2101 | }, 2102 | "bcrypt-pbkdf": { 2103 | "version": "1.0.1", 2104 | "bundled": true, 2105 | "dev": true, 2106 | "optional": true, 2107 | "requires": { 2108 | "tweetnacl": "0.14.5" 2109 | } 2110 | }, 2111 | "block-stream": { 2112 | "version": "0.0.9", 2113 | "bundled": true, 2114 | "dev": true, 2115 | "requires": { 2116 | "inherits": "2.0.3" 2117 | } 2118 | }, 2119 | "boom": { 2120 | "version": "2.10.1", 2121 | "bundled": true, 2122 | "dev": true, 2123 | "requires": { 2124 | "hoek": "2.16.3" 2125 | } 2126 | }, 2127 | "brace-expansion": { 2128 | "version": "1.1.7", 2129 | "bundled": true, 2130 | "dev": true, 2131 | "requires": { 2132 | "balanced-match": "0.4.2", 2133 | "concat-map": "0.0.1" 2134 | } 2135 | }, 2136 | "buffer-shims": { 2137 | "version": "1.0.0", 2138 | "bundled": true, 2139 | "dev": true 2140 | }, 2141 | "caseless": { 2142 | "version": "0.12.0", 2143 | "bundled": true, 2144 | "dev": true, 2145 | "optional": true 2146 | }, 2147 | "co": { 2148 | "version": "4.6.0", 2149 | "bundled": true, 2150 | "dev": true, 2151 | "optional": true 2152 | }, 2153 | "code-point-at": { 2154 | "version": "1.1.0", 2155 | "bundled": true, 2156 | "dev": true 2157 | }, 2158 | "combined-stream": { 2159 | "version": "1.0.5", 2160 | "bundled": true, 2161 | "dev": true, 2162 | "requires": { 2163 | "delayed-stream": "1.0.0" 2164 | } 2165 | }, 2166 | "concat-map": { 2167 | "version": "0.0.1", 2168 | "bundled": true, 2169 | "dev": true 2170 | }, 2171 | "console-control-strings": { 2172 | "version": "1.1.0", 2173 | "bundled": true, 2174 | "dev": true 2175 | }, 2176 | "core-util-is": { 2177 | "version": "1.0.2", 2178 | "bundled": true, 2179 | "dev": true 2180 | }, 2181 | "cryptiles": { 2182 | "version": "2.0.5", 2183 | "bundled": true, 2184 | "dev": true, 2185 | "optional": true, 2186 | "requires": { 2187 | "boom": "2.10.1" 2188 | } 2189 | }, 2190 | "dashdash": { 2191 | "version": "1.14.1", 2192 | "bundled": true, 2193 | "dev": true, 2194 | "optional": true, 2195 | "requires": { 2196 | "assert-plus": "1.0.0" 2197 | }, 2198 | "dependencies": { 2199 | "assert-plus": { 2200 | "version": "1.0.0", 2201 | "bundled": true, 2202 | "dev": true, 2203 | "optional": true 2204 | } 2205 | } 2206 | }, 2207 | "debug": { 2208 | "version": "2.6.8", 2209 | "bundled": true, 2210 | "dev": true, 2211 | "optional": true, 2212 | "requires": { 2213 | "ms": "2.0.0" 2214 | } 2215 | }, 2216 | "deep-extend": { 2217 | "version": "0.4.2", 2218 | "bundled": true, 2219 | "dev": true, 2220 | "optional": true 2221 | }, 2222 | "delayed-stream": { 2223 | "version": "1.0.0", 2224 | "bundled": true, 2225 | "dev": true 2226 | }, 2227 | "delegates": { 2228 | "version": "1.0.0", 2229 | "bundled": true, 2230 | "dev": true, 2231 | "optional": true 2232 | }, 2233 | "ecc-jsbn": { 2234 | "version": "0.1.1", 2235 | "bundled": true, 2236 | "dev": true, 2237 | "optional": true, 2238 | "requires": { 2239 | "jsbn": "0.1.1" 2240 | } 2241 | }, 2242 | "extend": { 2243 | "version": "3.0.1", 2244 | "bundled": true, 2245 | "dev": true, 2246 | "optional": true 2247 | }, 2248 | "extsprintf": { 2249 | "version": "1.0.2", 2250 | "bundled": true, 2251 | "dev": true 2252 | }, 2253 | "forever-agent": { 2254 | "version": "0.6.1", 2255 | "bundled": true, 2256 | "dev": true, 2257 | "optional": true 2258 | }, 2259 | "form-data": { 2260 | "version": "2.1.4", 2261 | "bundled": true, 2262 | "dev": true, 2263 | "optional": true, 2264 | "requires": { 2265 | "asynckit": "0.4.0", 2266 | "combined-stream": "1.0.5", 2267 | "mime-types": "2.1.15" 2268 | } 2269 | }, 2270 | "fs.realpath": { 2271 | "version": "1.0.0", 2272 | "bundled": true, 2273 | "dev": true 2274 | }, 2275 | "fstream": { 2276 | "version": "1.0.11", 2277 | "bundled": true, 2278 | "dev": true, 2279 | "requires": { 2280 | "graceful-fs": "4.1.11", 2281 | "inherits": "2.0.3", 2282 | "mkdirp": "0.5.1", 2283 | "rimraf": "2.6.1" 2284 | } 2285 | }, 2286 | "fstream-ignore": { 2287 | "version": "1.0.5", 2288 | "bundled": true, 2289 | "dev": true, 2290 | "optional": true, 2291 | "requires": { 2292 | "fstream": "1.0.11", 2293 | "inherits": "2.0.3", 2294 | "minimatch": "3.0.4" 2295 | } 2296 | }, 2297 | "gauge": { 2298 | "version": "2.7.4", 2299 | "bundled": true, 2300 | "dev": true, 2301 | "optional": true, 2302 | "requires": { 2303 | "aproba": "1.1.1", 2304 | "console-control-strings": "1.1.0", 2305 | "has-unicode": "2.0.1", 2306 | "object-assign": "4.1.1", 2307 | "signal-exit": "3.0.2", 2308 | "string-width": "1.0.2", 2309 | "strip-ansi": "3.0.1", 2310 | "wide-align": "1.1.2" 2311 | } 2312 | }, 2313 | "getpass": { 2314 | "version": "0.1.7", 2315 | "bundled": true, 2316 | "dev": true, 2317 | "optional": true, 2318 | "requires": { 2319 | "assert-plus": "1.0.0" 2320 | }, 2321 | "dependencies": { 2322 | "assert-plus": { 2323 | "version": "1.0.0", 2324 | "bundled": true, 2325 | "dev": true, 2326 | "optional": true 2327 | } 2328 | } 2329 | }, 2330 | "glob": { 2331 | "version": "7.1.2", 2332 | "bundled": true, 2333 | "dev": true, 2334 | "requires": { 2335 | "fs.realpath": "1.0.0", 2336 | "inflight": "1.0.6", 2337 | "inherits": "2.0.3", 2338 | "minimatch": "3.0.4", 2339 | "once": "1.4.0", 2340 | "path-is-absolute": "1.0.1" 2341 | } 2342 | }, 2343 | "graceful-fs": { 2344 | "version": "4.1.11", 2345 | "bundled": true, 2346 | "dev": true 2347 | }, 2348 | "har-schema": { 2349 | "version": "1.0.5", 2350 | "bundled": true, 2351 | "dev": true, 2352 | "optional": true 2353 | }, 2354 | "har-validator": { 2355 | "version": "4.2.1", 2356 | "bundled": true, 2357 | "dev": true, 2358 | "optional": true, 2359 | "requires": { 2360 | "ajv": "4.11.8", 2361 | "har-schema": "1.0.5" 2362 | } 2363 | }, 2364 | "has-unicode": { 2365 | "version": "2.0.1", 2366 | "bundled": true, 2367 | "dev": true, 2368 | "optional": true 2369 | }, 2370 | "hawk": { 2371 | "version": "3.1.3", 2372 | "bundled": true, 2373 | "dev": true, 2374 | "optional": true, 2375 | "requires": { 2376 | "boom": "2.10.1", 2377 | "cryptiles": "2.0.5", 2378 | "hoek": "2.16.3", 2379 | "sntp": "1.0.9" 2380 | } 2381 | }, 2382 | "hoek": { 2383 | "version": "2.16.3", 2384 | "bundled": true, 2385 | "dev": true 2386 | }, 2387 | "http-signature": { 2388 | "version": "1.1.1", 2389 | "bundled": true, 2390 | "dev": true, 2391 | "optional": true, 2392 | "requires": { 2393 | "assert-plus": "0.2.0", 2394 | "jsprim": "1.4.0", 2395 | "sshpk": "1.13.0" 2396 | } 2397 | }, 2398 | "inflight": { 2399 | "version": "1.0.6", 2400 | "bundled": true, 2401 | "dev": true, 2402 | "requires": { 2403 | "once": "1.4.0", 2404 | "wrappy": "1.0.2" 2405 | } 2406 | }, 2407 | "inherits": { 2408 | "version": "2.0.3", 2409 | "bundled": true, 2410 | "dev": true 2411 | }, 2412 | "ini": { 2413 | "version": "1.3.4", 2414 | "bundled": true, 2415 | "dev": true, 2416 | "optional": true 2417 | }, 2418 | "is-fullwidth-code-point": { 2419 | "version": "1.0.0", 2420 | "bundled": true, 2421 | "dev": true, 2422 | "requires": { 2423 | "number-is-nan": "1.0.1" 2424 | } 2425 | }, 2426 | "is-typedarray": { 2427 | "version": "1.0.0", 2428 | "bundled": true, 2429 | "dev": true, 2430 | "optional": true 2431 | }, 2432 | "isarray": { 2433 | "version": "1.0.0", 2434 | "bundled": true, 2435 | "dev": true 2436 | }, 2437 | "isstream": { 2438 | "version": "0.1.2", 2439 | "bundled": true, 2440 | "dev": true, 2441 | "optional": true 2442 | }, 2443 | "jodid25519": { 2444 | "version": "1.0.2", 2445 | "bundled": true, 2446 | "dev": true, 2447 | "optional": true, 2448 | "requires": { 2449 | "jsbn": "0.1.1" 2450 | } 2451 | }, 2452 | "jsbn": { 2453 | "version": "0.1.1", 2454 | "bundled": true, 2455 | "dev": true, 2456 | "optional": true 2457 | }, 2458 | "json-schema": { 2459 | "version": "0.2.3", 2460 | "bundled": true, 2461 | "dev": true, 2462 | "optional": true 2463 | }, 2464 | "json-stable-stringify": { 2465 | "version": "1.0.1", 2466 | "bundled": true, 2467 | "dev": true, 2468 | "optional": true, 2469 | "requires": { 2470 | "jsonify": "0.0.0" 2471 | } 2472 | }, 2473 | "json-stringify-safe": { 2474 | "version": "5.0.1", 2475 | "bundled": true, 2476 | "dev": true, 2477 | "optional": true 2478 | }, 2479 | "jsonify": { 2480 | "version": "0.0.0", 2481 | "bundled": true, 2482 | "dev": true, 2483 | "optional": true 2484 | }, 2485 | "jsprim": { 2486 | "version": "1.4.0", 2487 | "bundled": true, 2488 | "dev": true, 2489 | "optional": true, 2490 | "requires": { 2491 | "assert-plus": "1.0.0", 2492 | "extsprintf": "1.0.2", 2493 | "json-schema": "0.2.3", 2494 | "verror": "1.3.6" 2495 | }, 2496 | "dependencies": { 2497 | "assert-plus": { 2498 | "version": "1.0.0", 2499 | "bundled": true, 2500 | "dev": true, 2501 | "optional": true 2502 | } 2503 | } 2504 | }, 2505 | "mime-db": { 2506 | "version": "1.27.0", 2507 | "bundled": true, 2508 | "dev": true 2509 | }, 2510 | "mime-types": { 2511 | "version": "2.1.15", 2512 | "bundled": true, 2513 | "dev": true, 2514 | "requires": { 2515 | "mime-db": "1.27.0" 2516 | } 2517 | }, 2518 | "minimatch": { 2519 | "version": "3.0.4", 2520 | "bundled": true, 2521 | "dev": true, 2522 | "requires": { 2523 | "brace-expansion": "1.1.7" 2524 | } 2525 | }, 2526 | "minimist": { 2527 | "version": "0.0.8", 2528 | "bundled": true, 2529 | "dev": true 2530 | }, 2531 | "mkdirp": { 2532 | "version": "0.5.1", 2533 | "bundled": true, 2534 | "dev": true, 2535 | "requires": { 2536 | "minimist": "0.0.8" 2537 | } 2538 | }, 2539 | "ms": { 2540 | "version": "2.0.0", 2541 | "bundled": true, 2542 | "dev": true, 2543 | "optional": true 2544 | }, 2545 | "node-pre-gyp": { 2546 | "version": "0.6.36", 2547 | "bundled": true, 2548 | "dev": true, 2549 | "optional": true, 2550 | "requires": { 2551 | "mkdirp": "0.5.1", 2552 | "nopt": "4.0.1", 2553 | "npmlog": "4.1.0", 2554 | "rc": "1.2.1", 2555 | "request": "2.81.0", 2556 | "rimraf": "2.6.1", 2557 | "semver": "5.3.0", 2558 | "tar": "2.2.1", 2559 | "tar-pack": "3.4.0" 2560 | } 2561 | }, 2562 | "nopt": { 2563 | "version": "4.0.1", 2564 | "bundled": true, 2565 | "dev": true, 2566 | "optional": true, 2567 | "requires": { 2568 | "abbrev": "1.1.0", 2569 | "osenv": "0.1.4" 2570 | } 2571 | }, 2572 | "npmlog": { 2573 | "version": "4.1.0", 2574 | "bundled": true, 2575 | "dev": true, 2576 | "optional": true, 2577 | "requires": { 2578 | "are-we-there-yet": "1.1.4", 2579 | "console-control-strings": "1.1.0", 2580 | "gauge": "2.7.4", 2581 | "set-blocking": "2.0.0" 2582 | } 2583 | }, 2584 | "number-is-nan": { 2585 | "version": "1.0.1", 2586 | "bundled": true, 2587 | "dev": true 2588 | }, 2589 | "oauth-sign": { 2590 | "version": "0.8.2", 2591 | "bundled": true, 2592 | "dev": true, 2593 | "optional": true 2594 | }, 2595 | "object-assign": { 2596 | "version": "4.1.1", 2597 | "bundled": true, 2598 | "dev": true, 2599 | "optional": true 2600 | }, 2601 | "once": { 2602 | "version": "1.4.0", 2603 | "bundled": true, 2604 | "dev": true, 2605 | "requires": { 2606 | "wrappy": "1.0.2" 2607 | } 2608 | }, 2609 | "os-homedir": { 2610 | "version": "1.0.2", 2611 | "bundled": true, 2612 | "dev": true, 2613 | "optional": true 2614 | }, 2615 | "os-tmpdir": { 2616 | "version": "1.0.2", 2617 | "bundled": true, 2618 | "dev": true, 2619 | "optional": true 2620 | }, 2621 | "osenv": { 2622 | "version": "0.1.4", 2623 | "bundled": true, 2624 | "dev": true, 2625 | "optional": true, 2626 | "requires": { 2627 | "os-homedir": "1.0.2", 2628 | "os-tmpdir": "1.0.2" 2629 | } 2630 | }, 2631 | "path-is-absolute": { 2632 | "version": "1.0.1", 2633 | "bundled": true, 2634 | "dev": true 2635 | }, 2636 | "performance-now": { 2637 | "version": "0.2.0", 2638 | "bundled": true, 2639 | "dev": true, 2640 | "optional": true 2641 | }, 2642 | "process-nextick-args": { 2643 | "version": "1.0.7", 2644 | "bundled": true, 2645 | "dev": true 2646 | }, 2647 | "punycode": { 2648 | "version": "1.4.1", 2649 | "bundled": true, 2650 | "dev": true, 2651 | "optional": true 2652 | }, 2653 | "qs": { 2654 | "version": "6.4.0", 2655 | "bundled": true, 2656 | "dev": true, 2657 | "optional": true 2658 | }, 2659 | "rc": { 2660 | "version": "1.2.1", 2661 | "bundled": true, 2662 | "dev": true, 2663 | "optional": true, 2664 | "requires": { 2665 | "deep-extend": "0.4.2", 2666 | "ini": "1.3.4", 2667 | "minimist": "1.2.0", 2668 | "strip-json-comments": "2.0.1" 2669 | }, 2670 | "dependencies": { 2671 | "minimist": { 2672 | "version": "1.2.0", 2673 | "bundled": true, 2674 | "dev": true, 2675 | "optional": true 2676 | } 2677 | } 2678 | }, 2679 | "readable-stream": { 2680 | "version": "2.2.9", 2681 | "bundled": true, 2682 | "dev": true, 2683 | "requires": { 2684 | "buffer-shims": "1.0.0", 2685 | "core-util-is": "1.0.2", 2686 | "inherits": "2.0.3", 2687 | "isarray": "1.0.0", 2688 | "process-nextick-args": "1.0.7", 2689 | "string_decoder": "1.0.1", 2690 | "util-deprecate": "1.0.2" 2691 | } 2692 | }, 2693 | "request": { 2694 | "version": "2.81.0", 2695 | "bundled": true, 2696 | "dev": true, 2697 | "optional": true, 2698 | "requires": { 2699 | "aws-sign2": "0.6.0", 2700 | "aws4": "1.6.0", 2701 | "caseless": "0.12.0", 2702 | "combined-stream": "1.0.5", 2703 | "extend": "3.0.1", 2704 | "forever-agent": "0.6.1", 2705 | "form-data": "2.1.4", 2706 | "har-validator": "4.2.1", 2707 | "hawk": "3.1.3", 2708 | "http-signature": "1.1.1", 2709 | "is-typedarray": "1.0.0", 2710 | "isstream": "0.1.2", 2711 | "json-stringify-safe": "5.0.1", 2712 | "mime-types": "2.1.15", 2713 | "oauth-sign": "0.8.2", 2714 | "performance-now": "0.2.0", 2715 | "qs": "6.4.0", 2716 | "safe-buffer": "5.0.1", 2717 | "stringstream": "0.0.5", 2718 | "tough-cookie": "2.3.2", 2719 | "tunnel-agent": "0.6.0", 2720 | "uuid": "3.0.1" 2721 | } 2722 | }, 2723 | "rimraf": { 2724 | "version": "2.6.1", 2725 | "bundled": true, 2726 | "dev": true, 2727 | "requires": { 2728 | "glob": "7.1.2" 2729 | } 2730 | }, 2731 | "safe-buffer": { 2732 | "version": "5.0.1", 2733 | "bundled": true, 2734 | "dev": true 2735 | }, 2736 | "semver": { 2737 | "version": "5.3.0", 2738 | "bundled": true, 2739 | "dev": true, 2740 | "optional": true 2741 | }, 2742 | "set-blocking": { 2743 | "version": "2.0.0", 2744 | "bundled": true, 2745 | "dev": true, 2746 | "optional": true 2747 | }, 2748 | "signal-exit": { 2749 | "version": "3.0.2", 2750 | "bundled": true, 2751 | "dev": true, 2752 | "optional": true 2753 | }, 2754 | "sntp": { 2755 | "version": "1.0.9", 2756 | "bundled": true, 2757 | "dev": true, 2758 | "optional": true, 2759 | "requires": { 2760 | "hoek": "2.16.3" 2761 | } 2762 | }, 2763 | "sshpk": { 2764 | "version": "1.13.0", 2765 | "bundled": true, 2766 | "dev": true, 2767 | "optional": true, 2768 | "requires": { 2769 | "asn1": "0.2.3", 2770 | "assert-plus": "1.0.0", 2771 | "bcrypt-pbkdf": "1.0.1", 2772 | "dashdash": "1.14.1", 2773 | "ecc-jsbn": "0.1.1", 2774 | "getpass": "0.1.7", 2775 | "jodid25519": "1.0.2", 2776 | "jsbn": "0.1.1", 2777 | "tweetnacl": "0.14.5" 2778 | }, 2779 | "dependencies": { 2780 | "assert-plus": { 2781 | "version": "1.0.0", 2782 | "bundled": true, 2783 | "dev": true, 2784 | "optional": true 2785 | } 2786 | } 2787 | }, 2788 | "string-width": { 2789 | "version": "1.0.2", 2790 | "bundled": true, 2791 | "dev": true, 2792 | "requires": { 2793 | "code-point-at": "1.1.0", 2794 | "is-fullwidth-code-point": "1.0.0", 2795 | "strip-ansi": "3.0.1" 2796 | } 2797 | }, 2798 | "string_decoder": { 2799 | "version": "1.0.1", 2800 | "bundled": true, 2801 | "dev": true, 2802 | "requires": { 2803 | "safe-buffer": "5.0.1" 2804 | } 2805 | }, 2806 | "stringstream": { 2807 | "version": "0.0.5", 2808 | "bundled": true, 2809 | "dev": true, 2810 | "optional": true 2811 | }, 2812 | "strip-ansi": { 2813 | "version": "3.0.1", 2814 | "bundled": true, 2815 | "dev": true, 2816 | "requires": { 2817 | "ansi-regex": "2.1.1" 2818 | } 2819 | }, 2820 | "strip-json-comments": { 2821 | "version": "2.0.1", 2822 | "bundled": true, 2823 | "dev": true, 2824 | "optional": true 2825 | }, 2826 | "tar": { 2827 | "version": "2.2.1", 2828 | "bundled": true, 2829 | "dev": true, 2830 | "requires": { 2831 | "block-stream": "0.0.9", 2832 | "fstream": "1.0.11", 2833 | "inherits": "2.0.3" 2834 | } 2835 | }, 2836 | "tar-pack": { 2837 | "version": "3.4.0", 2838 | "bundled": true, 2839 | "dev": true, 2840 | "optional": true, 2841 | "requires": { 2842 | "debug": "2.6.8", 2843 | "fstream": "1.0.11", 2844 | "fstream-ignore": "1.0.5", 2845 | "once": "1.4.0", 2846 | "readable-stream": "2.2.9", 2847 | "rimraf": "2.6.1", 2848 | "tar": "2.2.1", 2849 | "uid-number": "0.0.6" 2850 | } 2851 | }, 2852 | "tough-cookie": { 2853 | "version": "2.3.2", 2854 | "bundled": true, 2855 | "dev": true, 2856 | "optional": true, 2857 | "requires": { 2858 | "punycode": "1.4.1" 2859 | } 2860 | }, 2861 | "tunnel-agent": { 2862 | "version": "0.6.0", 2863 | "bundled": true, 2864 | "dev": true, 2865 | "optional": true, 2866 | "requires": { 2867 | "safe-buffer": "5.0.1" 2868 | } 2869 | }, 2870 | "tweetnacl": { 2871 | "version": "0.14.5", 2872 | "bundled": true, 2873 | "dev": true, 2874 | "optional": true 2875 | }, 2876 | "uid-number": { 2877 | "version": "0.0.6", 2878 | "bundled": true, 2879 | "dev": true, 2880 | "optional": true 2881 | }, 2882 | "util-deprecate": { 2883 | "version": "1.0.2", 2884 | "bundled": true, 2885 | "dev": true 2886 | }, 2887 | "uuid": { 2888 | "version": "3.0.1", 2889 | "bundled": true, 2890 | "dev": true, 2891 | "optional": true 2892 | }, 2893 | "verror": { 2894 | "version": "1.3.6", 2895 | "bundled": true, 2896 | "dev": true, 2897 | "optional": true, 2898 | "requires": { 2899 | "extsprintf": "1.0.2" 2900 | } 2901 | }, 2902 | "wide-align": { 2903 | "version": "1.1.2", 2904 | "bundled": true, 2905 | "dev": true, 2906 | "optional": true, 2907 | "requires": { 2908 | "string-width": "1.0.2" 2909 | } 2910 | }, 2911 | "wrappy": { 2912 | "version": "1.0.2", 2913 | "bundled": true, 2914 | "dev": true 2915 | } 2916 | } 2917 | }, 2918 | "function-bind": { 2919 | "version": "1.1.0", 2920 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", 2921 | "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=", 2922 | "dev": true 2923 | }, 2924 | "function-name-support": { 2925 | "version": "0.2.0", 2926 | "resolved": "https://registry.npmjs.org/function-name-support/-/function-name-support-0.2.0.tgz", 2927 | "integrity": "sha1-VdO/qm6v1QWlD5vIH99XVkoLsHE=", 2928 | "dev": true 2929 | }, 2930 | "functional-red-black-tree": { 2931 | "version": "1.0.1", 2932 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 2933 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 2934 | "dev": true 2935 | }, 2936 | "get-port": { 2937 | "version": "3.2.0", 2938 | "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", 2939 | "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", 2940 | "dev": true 2941 | }, 2942 | "get-stdin": { 2943 | "version": "4.0.1", 2944 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", 2945 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", 2946 | "dev": true 2947 | }, 2948 | "get-stream": { 2949 | "version": "3.0.0", 2950 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 2951 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", 2952 | "dev": true 2953 | }, 2954 | "getpass": { 2955 | "version": "0.1.7", 2956 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 2957 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 2958 | "dev": true, 2959 | "requires": { 2960 | "assert-plus": "1.0.0" 2961 | } 2962 | }, 2963 | "glob": { 2964 | "version": "7.1.2", 2965 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 2966 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 2967 | "dev": true, 2968 | "requires": { 2969 | "fs.realpath": "1.0.0", 2970 | "inflight": "1.0.6", 2971 | "inherits": "2.0.3", 2972 | "minimatch": "3.0.4", 2973 | "once": "1.4.0", 2974 | "path-is-absolute": "1.0.1" 2975 | } 2976 | }, 2977 | "glob-base": { 2978 | "version": "0.3.0", 2979 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 2980 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 2981 | "dev": true, 2982 | "requires": { 2983 | "glob-parent": "2.0.0", 2984 | "is-glob": "2.0.1" 2985 | } 2986 | }, 2987 | "glob-parent": { 2988 | "version": "2.0.0", 2989 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 2990 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 2991 | "dev": true, 2992 | "requires": { 2993 | "is-glob": "2.0.1" 2994 | } 2995 | }, 2996 | "globals": { 2997 | "version": "9.18.0", 2998 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", 2999 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", 3000 | "dev": true 3001 | }, 3002 | "globby": { 3003 | "version": "5.0.0", 3004 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", 3005 | "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", 3006 | "dev": true, 3007 | "requires": { 3008 | "array-union": "1.0.2", 3009 | "arrify": "1.0.1", 3010 | "glob": "7.1.2", 3011 | "object-assign": "4.1.1", 3012 | "pify": "2.3.0", 3013 | "pinkie-promise": "2.0.1" 3014 | } 3015 | }, 3016 | "got": { 3017 | "version": "6.7.1", 3018 | "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", 3019 | "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", 3020 | "dev": true, 3021 | "requires": { 3022 | "create-error-class": "3.0.2", 3023 | "duplexer3": "0.1.4", 3024 | "get-stream": "3.0.0", 3025 | "is-redirect": "1.0.0", 3026 | "is-retry-allowed": "1.1.0", 3027 | "is-stream": "1.1.0", 3028 | "lowercase-keys": "1.0.0", 3029 | "safe-buffer": "5.1.1", 3030 | "timed-out": "4.0.1", 3031 | "unzip-response": "2.0.1", 3032 | "url-parse-lax": "1.0.0" 3033 | } 3034 | }, 3035 | "graceful-fs": { 3036 | "version": "4.1.11", 3037 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 3038 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 3039 | "dev": true 3040 | }, 3041 | "handle-thing": { 3042 | "version": "1.2.5", 3043 | "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", 3044 | "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", 3045 | "dev": true 3046 | }, 3047 | "has": { 3048 | "version": "1.0.1", 3049 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", 3050 | "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", 3051 | "dev": true, 3052 | "requires": { 3053 | "function-bind": "1.1.0" 3054 | } 3055 | }, 3056 | "has-ansi": { 3057 | "version": "2.0.0", 3058 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 3059 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 3060 | "dev": true, 3061 | "requires": { 3062 | "ansi-regex": "2.1.1" 3063 | } 3064 | }, 3065 | "has-color": { 3066 | "version": "0.1.7", 3067 | "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", 3068 | "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", 3069 | "dev": true 3070 | }, 3071 | "has-flag": { 3072 | "version": "2.0.0", 3073 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", 3074 | "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", 3075 | "dev": true 3076 | }, 3077 | "has-yarn": { 3078 | "version": "1.0.0", 3079 | "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-1.0.0.tgz", 3080 | "integrity": "sha1-ieJdtgS3Jcj1l2//Ct3JIbgopac=", 3081 | "dev": true 3082 | }, 3083 | "home-or-tmp": { 3084 | "version": "2.0.0", 3085 | "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", 3086 | "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", 3087 | "dev": true, 3088 | "requires": { 3089 | "os-homedir": "1.0.2", 3090 | "os-tmpdir": "1.0.2" 3091 | } 3092 | }, 3093 | "hosted-git-info": { 3094 | "version": "2.5.0", 3095 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", 3096 | "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", 3097 | "dev": true 3098 | }, 3099 | "hpack.js": { 3100 | "version": "2.1.6", 3101 | "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", 3102 | "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", 3103 | "dev": true, 3104 | "requires": { 3105 | "inherits": "2.0.3", 3106 | "obuf": "1.1.1", 3107 | "readable-stream": "2.3.3", 3108 | "wbuf": "1.7.2" 3109 | } 3110 | }, 3111 | "http-deceiver": { 3112 | "version": "1.2.7", 3113 | "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", 3114 | "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", 3115 | "dev": true 3116 | }, 3117 | "http-signature": { 3118 | "version": "1.1.1", 3119 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", 3120 | "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", 3121 | "dev": true, 3122 | "requires": { 3123 | "assert-plus": "0.2.0", 3124 | "jsprim": "1.4.1", 3125 | "sshpk": "1.13.1" 3126 | }, 3127 | "dependencies": { 3128 | "assert-plus": { 3129 | "version": "0.2.0", 3130 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", 3131 | "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", 3132 | "dev": true 3133 | } 3134 | } 3135 | }, 3136 | "hullabaloo-config-manager": { 3137 | "version": "1.1.1", 3138 | "resolved": "https://registry.npmjs.org/hullabaloo-config-manager/-/hullabaloo-config-manager-1.1.1.tgz", 3139 | "integrity": "sha512-ztKnkZV0TmxnumCDHHgLGNiDnotu4EHCp9YMkznWuo4uTtCyJ+cu+RNcxUeXYKTllpvLFWnbfWry09yzszgg+A==", 3140 | "dev": true, 3141 | "requires": { 3142 | "dot-prop": "4.2.0", 3143 | "es6-error": "4.0.2", 3144 | "graceful-fs": "4.1.11", 3145 | "indent-string": "3.2.0", 3146 | "json5": "0.5.1", 3147 | "lodash.clonedeep": "4.5.0", 3148 | "lodash.clonedeepwith": "4.5.0", 3149 | "lodash.isequal": "4.5.0", 3150 | "lodash.merge": "4.6.0", 3151 | "md5-hex": "2.0.0", 3152 | "package-hash": "2.0.0", 3153 | "pkg-dir": "2.0.0", 3154 | "resolve-from": "3.0.0", 3155 | "safe-buffer": "5.1.1" 3156 | }, 3157 | "dependencies": { 3158 | "find-up": { 3159 | "version": "2.1.0", 3160 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 3161 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 3162 | "dev": true, 3163 | "requires": { 3164 | "locate-path": "2.0.0" 3165 | } 3166 | }, 3167 | "pkg-dir": { 3168 | "version": "2.0.0", 3169 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", 3170 | "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", 3171 | "dev": true, 3172 | "requires": { 3173 | "find-up": "2.1.0" 3174 | } 3175 | }, 3176 | "resolve-from": { 3177 | "version": "3.0.0", 3178 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", 3179 | "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", 3180 | "dev": true 3181 | } 3182 | } 3183 | }, 3184 | "iconv-lite": { 3185 | "version": "0.4.18", 3186 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", 3187 | "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==", 3188 | "dev": true 3189 | }, 3190 | "ignore": { 3191 | "version": "3.3.3", 3192 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz", 3193 | "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=", 3194 | "dev": true 3195 | }, 3196 | "ignore-by-default": { 3197 | "version": "1.0.1", 3198 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", 3199 | "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", 3200 | "dev": true 3201 | }, 3202 | "import-lazy": { 3203 | "version": "2.1.0", 3204 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", 3205 | "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", 3206 | "dev": true 3207 | }, 3208 | "import-local": { 3209 | "version": "0.1.1", 3210 | "resolved": "https://registry.npmjs.org/import-local/-/import-local-0.1.1.tgz", 3211 | "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", 3212 | "dev": true, 3213 | "requires": { 3214 | "pkg-dir": "2.0.0", 3215 | "resolve-cwd": "2.0.0" 3216 | }, 3217 | "dependencies": { 3218 | "find-up": { 3219 | "version": "2.1.0", 3220 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 3221 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 3222 | "dev": true, 3223 | "requires": { 3224 | "locate-path": "2.0.0" 3225 | } 3226 | }, 3227 | "pkg-dir": { 3228 | "version": "2.0.0", 3229 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", 3230 | "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", 3231 | "dev": true, 3232 | "requires": { 3233 | "find-up": "2.1.0" 3234 | } 3235 | } 3236 | } 3237 | }, 3238 | "imurmurhash": { 3239 | "version": "0.1.4", 3240 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 3241 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 3242 | "dev": true 3243 | }, 3244 | "indent-string": { 3245 | "version": "3.2.0", 3246 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", 3247 | "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", 3248 | "dev": true 3249 | }, 3250 | "inflight": { 3251 | "version": "1.0.6", 3252 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 3253 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 3254 | "dev": true, 3255 | "requires": { 3256 | "once": "1.4.0", 3257 | "wrappy": "1.0.2" 3258 | } 3259 | }, 3260 | "inherits": { 3261 | "version": "2.0.3", 3262 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 3263 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 3264 | "dev": true 3265 | }, 3266 | "ini": { 3267 | "version": "1.3.4", 3268 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", 3269 | "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", 3270 | "dev": true 3271 | }, 3272 | "inquirer": { 3273 | "version": "3.2.1", 3274 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.2.1.tgz", 3275 | "integrity": "sha512-QgW3eiPN8gpj/K5vVpHADJJgrrF0ho/dZGylikGX7iqAdRgC9FVKYKWFLx6hZDBFcOLEoSqINYrVPeFAeG/PdA==", 3276 | "dev": true, 3277 | "requires": { 3278 | "ansi-escapes": "2.0.0", 3279 | "chalk": "2.1.0", 3280 | "cli-cursor": "2.1.0", 3281 | "cli-width": "2.1.0", 3282 | "external-editor": "2.0.4", 3283 | "figures": "2.0.0", 3284 | "lodash": "4.17.4", 3285 | "mute-stream": "0.0.7", 3286 | "run-async": "2.3.0", 3287 | "rx-lite": "4.0.8", 3288 | "rx-lite-aggregates": "4.0.8", 3289 | "string-width": "2.1.1", 3290 | "strip-ansi": "4.0.0", 3291 | "through": "2.3.8" 3292 | }, 3293 | "dependencies": { 3294 | "ansi-regex": { 3295 | "version": "3.0.0", 3296 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 3297 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 3298 | "dev": true 3299 | }, 3300 | "ansi-styles": { 3301 | "version": "3.2.0", 3302 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", 3303 | "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", 3304 | "dev": true, 3305 | "requires": { 3306 | "color-convert": "1.9.0" 3307 | } 3308 | }, 3309 | "chalk": { 3310 | "version": "2.1.0", 3311 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", 3312 | "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", 3313 | "dev": true, 3314 | "requires": { 3315 | "ansi-styles": "3.2.0", 3316 | "escape-string-regexp": "1.0.5", 3317 | "supports-color": "4.2.1" 3318 | } 3319 | }, 3320 | "strip-ansi": { 3321 | "version": "4.0.0", 3322 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 3323 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 3324 | "dev": true, 3325 | "requires": { 3326 | "ansi-regex": "3.0.0" 3327 | } 3328 | }, 3329 | "supports-color": { 3330 | "version": "4.2.1", 3331 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", 3332 | "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", 3333 | "dev": true, 3334 | "requires": { 3335 | "has-flag": "2.0.0" 3336 | } 3337 | } 3338 | } 3339 | }, 3340 | "invariant": { 3341 | "version": "2.2.2", 3342 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", 3343 | "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", 3344 | "dev": true, 3345 | "requires": { 3346 | "loose-envify": "1.3.1" 3347 | } 3348 | }, 3349 | "irregular-plurals": { 3350 | "version": "1.3.0", 3351 | "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.3.0.tgz", 3352 | "integrity": "sha512-njf5A+Mxb3kojuHd1DzISjjIl+XhyzovXEOyPPSzdQozq/Lf2tN27mOrAAsxEPZxpn6I4MGzs1oo9TxXxPFpaA==", 3353 | "dev": true 3354 | }, 3355 | "is-arrayish": { 3356 | "version": "0.2.1", 3357 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 3358 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 3359 | "dev": true 3360 | }, 3361 | "is-binary-path": { 3362 | "version": "1.0.1", 3363 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 3364 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 3365 | "dev": true, 3366 | "requires": { 3367 | "binary-extensions": "1.10.0" 3368 | } 3369 | }, 3370 | "is-buffer": { 3371 | "version": "1.1.5", 3372 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", 3373 | "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", 3374 | "dev": true 3375 | }, 3376 | "is-builtin-module": { 3377 | "version": "1.0.0", 3378 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", 3379 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", 3380 | "dev": true, 3381 | "requires": { 3382 | "builtin-modules": "1.1.1" 3383 | } 3384 | }, 3385 | "is-ci": { 3386 | "version": "1.0.10", 3387 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", 3388 | "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", 3389 | "dev": true, 3390 | "requires": { 3391 | "ci-info": "1.1.1" 3392 | } 3393 | }, 3394 | "is-dotfile": { 3395 | "version": "1.0.3", 3396 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 3397 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", 3398 | "dev": true 3399 | }, 3400 | "is-equal-shallow": { 3401 | "version": "0.1.3", 3402 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 3403 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 3404 | "dev": true, 3405 | "requires": { 3406 | "is-primitive": "2.0.0" 3407 | } 3408 | }, 3409 | "is-error": { 3410 | "version": "2.2.1", 3411 | "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.1.tgz", 3412 | "integrity": "sha1-aEqW2EB2V3yY9M20DG0mpRI78Zw=", 3413 | "dev": true 3414 | }, 3415 | "is-extendable": { 3416 | "version": "0.1.1", 3417 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 3418 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 3419 | "dev": true 3420 | }, 3421 | "is-extglob": { 3422 | "version": "1.0.0", 3423 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 3424 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 3425 | "dev": true 3426 | }, 3427 | "is-finite": { 3428 | "version": "1.0.2", 3429 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 3430 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 3431 | "dev": true, 3432 | "requires": { 3433 | "number-is-nan": "1.0.1" 3434 | } 3435 | }, 3436 | "is-fullwidth-code-point": { 3437 | "version": "2.0.0", 3438 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 3439 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 3440 | "dev": true 3441 | }, 3442 | "is-generator-fn": { 3443 | "version": "1.0.0", 3444 | "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", 3445 | "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=", 3446 | "dev": true 3447 | }, 3448 | "is-glob": { 3449 | "version": "2.0.1", 3450 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 3451 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 3452 | "dev": true, 3453 | "requires": { 3454 | "is-extglob": "1.0.0" 3455 | } 3456 | }, 3457 | "is-npm": { 3458 | "version": "1.0.0", 3459 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", 3460 | "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", 3461 | "dev": true 3462 | }, 3463 | "is-number": { 3464 | "version": "2.1.0", 3465 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 3466 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 3467 | "dev": true, 3468 | "requires": { 3469 | "kind-of": "3.2.2" 3470 | } 3471 | }, 3472 | "is-obj": { 3473 | "version": "1.0.1", 3474 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", 3475 | "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", 3476 | "dev": true 3477 | }, 3478 | "is-observable": { 3479 | "version": "0.2.0", 3480 | "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz", 3481 | "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", 3482 | "dev": true, 3483 | "requires": { 3484 | "symbol-observable": "0.2.4" 3485 | } 3486 | }, 3487 | "is-path-cwd": { 3488 | "version": "1.0.0", 3489 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 3490 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", 3491 | "dev": true 3492 | }, 3493 | "is-path-in-cwd": { 3494 | "version": "1.0.0", 3495 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", 3496 | "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", 3497 | "dev": true, 3498 | "requires": { 3499 | "is-path-inside": "1.0.0" 3500 | } 3501 | }, 3502 | "is-path-inside": { 3503 | "version": "1.0.0", 3504 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", 3505 | "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", 3506 | "dev": true, 3507 | "requires": { 3508 | "path-is-inside": "1.0.2" 3509 | } 3510 | }, 3511 | "is-plain-obj": { 3512 | "version": "1.1.0", 3513 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", 3514 | "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", 3515 | "dev": true 3516 | }, 3517 | "is-posix-bracket": { 3518 | "version": "0.1.1", 3519 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 3520 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", 3521 | "dev": true 3522 | }, 3523 | "is-primitive": { 3524 | "version": "2.0.0", 3525 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 3526 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", 3527 | "dev": true 3528 | }, 3529 | "is-promise": { 3530 | "version": "2.1.0", 3531 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", 3532 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", 3533 | "dev": true 3534 | }, 3535 | "is-redirect": { 3536 | "version": "1.0.0", 3537 | "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", 3538 | "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", 3539 | "dev": true 3540 | }, 3541 | "is-regexp": { 3542 | "version": "1.0.0", 3543 | "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", 3544 | "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", 3545 | "dev": true 3546 | }, 3547 | "is-resolvable": { 3548 | "version": "1.0.0", 3549 | "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", 3550 | "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", 3551 | "dev": true, 3552 | "requires": { 3553 | "tryit": "1.0.3" 3554 | } 3555 | }, 3556 | "is-retry-allowed": { 3557 | "version": "1.1.0", 3558 | "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", 3559 | "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", 3560 | "dev": true 3561 | }, 3562 | "is-stream": { 3563 | "version": "1.1.0", 3564 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 3565 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 3566 | "dev": true 3567 | }, 3568 | "is-supported-regexp-flag": { 3569 | "version": "1.0.0", 3570 | "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz", 3571 | "integrity": "sha1-i1IMhfrnolM4LUsCZS4EVXbhO7g=", 3572 | "dev": true 3573 | }, 3574 | "is-url": { 3575 | "version": "1.2.2", 3576 | "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", 3577 | "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY=", 3578 | "dev": true 3579 | }, 3580 | "is-utf8": { 3581 | "version": "0.2.1", 3582 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 3583 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 3584 | "dev": true 3585 | }, 3586 | "isarray": { 3587 | "version": "1.0.0", 3588 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 3589 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 3590 | "dev": true 3591 | }, 3592 | "isexe": { 3593 | "version": "2.0.0", 3594 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 3595 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 3596 | "dev": true 3597 | }, 3598 | "isobject": { 3599 | "version": "2.1.0", 3600 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 3601 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 3602 | "dev": true, 3603 | "requires": { 3604 | "isarray": "1.0.0" 3605 | } 3606 | }, 3607 | "js-string-escape": { 3608 | "version": "1.0.1", 3609 | "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", 3610 | "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", 3611 | "dev": true 3612 | }, 3613 | "js-tokens": { 3614 | "version": "3.0.2", 3615 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 3616 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 3617 | "dev": true 3618 | }, 3619 | "js-yaml": { 3620 | "version": "3.9.1", 3621 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.1.tgz", 3622 | "integrity": "sha512-CbcG379L1e+mWBnLvHWWeLs8GyV/EMw862uLI3c+GxVyDHWZcjZinwuBd3iW2pgxgIlksW/1vNJa4to+RvDOww==", 3623 | "dev": true, 3624 | "requires": { 3625 | "argparse": "1.0.9", 3626 | "esprima": "4.0.0" 3627 | } 3628 | }, 3629 | "jsbn": { 3630 | "version": "0.1.1", 3631 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 3632 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 3633 | "dev": true, 3634 | "optional": true 3635 | }, 3636 | "jschardet": { 3637 | "version": "1.5.1", 3638 | "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.1.tgz", 3639 | "integrity": "sha512-vE2hT1D0HLZCLLclfBSfkfTTedhVj0fubHpJBHKwwUWX0nSbhPAfk+SG9rTX95BYNmau8rGFfCeaT6T5OW1C2A==", 3640 | "dev": true 3641 | }, 3642 | "jsesc": { 3643 | "version": "0.5.0", 3644 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", 3645 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", 3646 | "dev": true 3647 | }, 3648 | "json-schema": { 3649 | "version": "0.2.3", 3650 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 3651 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", 3652 | "dev": true 3653 | }, 3654 | "json-schema-traverse": { 3655 | "version": "0.3.1", 3656 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", 3657 | "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", 3658 | "dev": true 3659 | }, 3660 | "json-stable-stringify": { 3661 | "version": "1.0.1", 3662 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", 3663 | "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", 3664 | "dev": true, 3665 | "requires": { 3666 | "jsonify": "0.0.0" 3667 | } 3668 | }, 3669 | "json5": { 3670 | "version": "0.5.1", 3671 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", 3672 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", 3673 | "dev": true 3674 | }, 3675 | "jsonify": { 3676 | "version": "0.0.0", 3677 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 3678 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", 3679 | "dev": true 3680 | }, 3681 | "jsonwebtoken": { 3682 | "version": "8.0.1", 3683 | "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.0.1.tgz", 3684 | "integrity": "sha1-UNrvjQqMfeLNBrwQE7dbBMzz8M8=", 3685 | "dev": true, 3686 | "requires": { 3687 | "jws": "3.1.4", 3688 | "lodash.includes": "4.3.0", 3689 | "lodash.isboolean": "3.0.3", 3690 | "lodash.isinteger": "4.0.4", 3691 | "lodash.isnumber": "3.0.3", 3692 | "lodash.isplainobject": "4.0.6", 3693 | "lodash.isstring": "4.0.1", 3694 | "lodash.once": "4.1.1", 3695 | "ms": "2.0.0", 3696 | "xtend": "4.0.1" 3697 | } 3698 | }, 3699 | "jsprim": { 3700 | "version": "1.4.1", 3701 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 3702 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 3703 | "dev": true, 3704 | "requires": { 3705 | "assert-plus": "1.0.0", 3706 | "extsprintf": "1.3.0", 3707 | "json-schema": "0.2.3", 3708 | "verror": "1.10.0" 3709 | } 3710 | }, 3711 | "jwa": { 3712 | "version": "1.1.5", 3713 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.5.tgz", 3714 | "integrity": "sha1-oFUs4CIHQs1S4VN3SjKQXDDnVuU=", 3715 | "dev": true, 3716 | "requires": { 3717 | "base64url": "2.0.0", 3718 | "buffer-equal-constant-time": "1.0.1", 3719 | "ecdsa-sig-formatter": "1.0.9", 3720 | "safe-buffer": "5.1.1" 3721 | } 3722 | }, 3723 | "jws": { 3724 | "version": "3.1.4", 3725 | "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz", 3726 | "integrity": "sha1-+ei5M46KhHJ31kRLFGT2GIDgUKI=", 3727 | "dev": true, 3728 | "requires": { 3729 | "base64url": "2.0.0", 3730 | "jwa": "1.1.5", 3731 | "safe-buffer": "5.1.1" 3732 | } 3733 | }, 3734 | "kind-of": { 3735 | "version": "3.2.2", 3736 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 3737 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3738 | "dev": true, 3739 | "requires": { 3740 | "is-buffer": "1.1.5" 3741 | } 3742 | }, 3743 | "last-line-stream": { 3744 | "version": "1.0.0", 3745 | "resolved": "https://registry.npmjs.org/last-line-stream/-/last-line-stream-1.0.0.tgz", 3746 | "integrity": "sha1-0bZNafhv8kry0EiDos7uFFIKVgA=", 3747 | "dev": true, 3748 | "requires": { 3749 | "through2": "2.0.3" 3750 | } 3751 | }, 3752 | "latest-version": { 3753 | "version": "3.1.0", 3754 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", 3755 | "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", 3756 | "dev": true, 3757 | "requires": { 3758 | "package-json": "4.0.1" 3759 | } 3760 | }, 3761 | "levn": { 3762 | "version": "0.3.0", 3763 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 3764 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 3765 | "dev": true, 3766 | "requires": { 3767 | "prelude-ls": "1.1.2", 3768 | "type-check": "0.3.2" 3769 | } 3770 | }, 3771 | "load-json-file": { 3772 | "version": "2.0.0", 3773 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", 3774 | "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", 3775 | "dev": true, 3776 | "requires": { 3777 | "graceful-fs": "4.1.11", 3778 | "parse-json": "2.2.0", 3779 | "pify": "2.3.0", 3780 | "strip-bom": "3.0.0" 3781 | } 3782 | }, 3783 | "locate-path": { 3784 | "version": "2.0.0", 3785 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 3786 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 3787 | "dev": true, 3788 | "requires": { 3789 | "p-locate": "2.0.0", 3790 | "path-exists": "3.0.0" 3791 | }, 3792 | "dependencies": { 3793 | "path-exists": { 3794 | "version": "3.0.0", 3795 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 3796 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 3797 | "dev": true 3798 | } 3799 | } 3800 | }, 3801 | "lodash": { 3802 | "version": "4.17.4", 3803 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", 3804 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", 3805 | "dev": true 3806 | }, 3807 | "lodash.clonedeep": { 3808 | "version": "4.5.0", 3809 | "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", 3810 | "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", 3811 | "dev": true 3812 | }, 3813 | "lodash.clonedeepwith": { 3814 | "version": "4.5.0", 3815 | "resolved": "https://registry.npmjs.org/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz", 3816 | "integrity": "sha1-buMFc6A6GmDWcKYu8zwQzxr9vdQ=", 3817 | "dev": true 3818 | }, 3819 | "lodash.cond": { 3820 | "version": "4.5.2", 3821 | "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", 3822 | "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=", 3823 | "dev": true 3824 | }, 3825 | "lodash.debounce": { 3826 | "version": "4.0.8", 3827 | "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", 3828 | "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", 3829 | "dev": true 3830 | }, 3831 | "lodash.difference": { 3832 | "version": "4.5.0", 3833 | "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", 3834 | "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", 3835 | "dev": true 3836 | }, 3837 | "lodash.flatten": { 3838 | "version": "4.4.0", 3839 | "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", 3840 | "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", 3841 | "dev": true 3842 | }, 3843 | "lodash.flattendeep": { 3844 | "version": "4.4.0", 3845 | "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", 3846 | "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", 3847 | "dev": true 3848 | }, 3849 | "lodash.get": { 3850 | "version": "4.4.2", 3851 | "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", 3852 | "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", 3853 | "dev": true 3854 | }, 3855 | "lodash.includes": { 3856 | "version": "4.3.0", 3857 | "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", 3858 | "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=", 3859 | "dev": true 3860 | }, 3861 | "lodash.isboolean": { 3862 | "version": "3.0.3", 3863 | "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", 3864 | "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=", 3865 | "dev": true 3866 | }, 3867 | "lodash.isequal": { 3868 | "version": "4.5.0", 3869 | "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", 3870 | "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", 3871 | "dev": true 3872 | }, 3873 | "lodash.isinteger": { 3874 | "version": "4.0.4", 3875 | "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", 3876 | "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=", 3877 | "dev": true 3878 | }, 3879 | "lodash.isnumber": { 3880 | "version": "3.0.3", 3881 | "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", 3882 | "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=", 3883 | "dev": true 3884 | }, 3885 | "lodash.isplainobject": { 3886 | "version": "4.0.6", 3887 | "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", 3888 | "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", 3889 | "dev": true 3890 | }, 3891 | "lodash.isstring": { 3892 | "version": "4.0.1", 3893 | "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", 3894 | "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", 3895 | "dev": true 3896 | }, 3897 | "lodash.merge": { 3898 | "version": "4.6.0", 3899 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.0.tgz", 3900 | "integrity": "sha1-aYhLoUSsM/5plzemCG3v+t0PicU=", 3901 | "dev": true 3902 | }, 3903 | "lodash.once": { 3904 | "version": "4.1.1", 3905 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", 3906 | "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", 3907 | "dev": true 3908 | }, 3909 | "loose-envify": { 3910 | "version": "1.3.1", 3911 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", 3912 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", 3913 | "dev": true, 3914 | "requires": { 3915 | "js-tokens": "3.0.2" 3916 | } 3917 | }, 3918 | "loud-rejection": { 3919 | "version": "1.6.0", 3920 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", 3921 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", 3922 | "dev": true, 3923 | "requires": { 3924 | "currently-unhandled": "0.4.1", 3925 | "signal-exit": "3.0.2" 3926 | } 3927 | }, 3928 | "lowercase-keys": { 3929 | "version": "1.0.0", 3930 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", 3931 | "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", 3932 | "dev": true 3933 | }, 3934 | "lru-cache": { 3935 | "version": "4.1.1", 3936 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", 3937 | "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", 3938 | "dev": true, 3939 | "requires": { 3940 | "pseudomap": "1.0.2", 3941 | "yallist": "2.1.2" 3942 | } 3943 | }, 3944 | "make-dir": { 3945 | "version": "1.0.0", 3946 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz", 3947 | "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=", 3948 | "dev": true, 3949 | "requires": { 3950 | "pify": "2.3.0" 3951 | } 3952 | }, 3953 | "map-obj": { 3954 | "version": "1.0.1", 3955 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 3956 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", 3957 | "dev": true 3958 | }, 3959 | "matcher": { 3960 | "version": "1.0.0", 3961 | "resolved": "https://registry.npmjs.org/matcher/-/matcher-1.0.0.tgz", 3962 | "integrity": "sha1-qvDEgW62m5IJRnQXViXzRmsOPhk=", 3963 | "dev": true, 3964 | "requires": { 3965 | "escape-string-regexp": "1.0.5" 3966 | } 3967 | }, 3968 | "md5-hex": { 3969 | "version": "2.0.0", 3970 | "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-2.0.0.tgz", 3971 | "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", 3972 | "dev": true, 3973 | "requires": { 3974 | "md5-o-matic": "0.1.1" 3975 | } 3976 | }, 3977 | "md5-o-matic": { 3978 | "version": "0.1.1", 3979 | "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", 3980 | "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", 3981 | "dev": true 3982 | }, 3983 | "meow": { 3984 | "version": "3.7.0", 3985 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", 3986 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", 3987 | "dev": true, 3988 | "requires": { 3989 | "camelcase-keys": "2.1.0", 3990 | "decamelize": "1.2.0", 3991 | "loud-rejection": "1.6.0", 3992 | "map-obj": "1.0.1", 3993 | "minimist": "1.2.0", 3994 | "normalize-package-data": "2.4.0", 3995 | "object-assign": "4.1.1", 3996 | "read-pkg-up": "1.0.1", 3997 | "redent": "1.0.0", 3998 | "trim-newlines": "1.0.0" 3999 | }, 4000 | "dependencies": { 4001 | "load-json-file": { 4002 | "version": "1.1.0", 4003 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 4004 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 4005 | "dev": true, 4006 | "requires": { 4007 | "graceful-fs": "4.1.11", 4008 | "parse-json": "2.2.0", 4009 | "pify": "2.3.0", 4010 | "pinkie-promise": "2.0.1", 4011 | "strip-bom": "2.0.0" 4012 | } 4013 | }, 4014 | "minimist": { 4015 | "version": "1.2.0", 4016 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 4017 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 4018 | "dev": true 4019 | }, 4020 | "path-type": { 4021 | "version": "1.1.0", 4022 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 4023 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 4024 | "dev": true, 4025 | "requires": { 4026 | "graceful-fs": "4.1.11", 4027 | "pify": "2.3.0", 4028 | "pinkie-promise": "2.0.1" 4029 | } 4030 | }, 4031 | "read-pkg": { 4032 | "version": "1.1.0", 4033 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 4034 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 4035 | "dev": true, 4036 | "requires": { 4037 | "load-json-file": "1.1.0", 4038 | "normalize-package-data": "2.4.0", 4039 | "path-type": "1.1.0" 4040 | } 4041 | }, 4042 | "read-pkg-up": { 4043 | "version": "1.0.1", 4044 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 4045 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 4046 | "dev": true, 4047 | "requires": { 4048 | "find-up": "1.1.2", 4049 | "read-pkg": "1.1.0" 4050 | } 4051 | }, 4052 | "strip-bom": { 4053 | "version": "2.0.0", 4054 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 4055 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 4056 | "dev": true, 4057 | "requires": { 4058 | "is-utf8": "0.2.1" 4059 | } 4060 | } 4061 | } 4062 | }, 4063 | "micromatch": { 4064 | "version": "2.3.11", 4065 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 4066 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 4067 | "dev": true, 4068 | "requires": { 4069 | "arr-diff": "2.0.0", 4070 | "array-unique": "0.2.1", 4071 | "braces": "1.8.5", 4072 | "expand-brackets": "0.1.5", 4073 | "extglob": "0.3.2", 4074 | "filename-regex": "2.0.1", 4075 | "is-extglob": "1.0.0", 4076 | "is-glob": "2.0.1", 4077 | "kind-of": "3.2.2", 4078 | "normalize-path": "2.1.1", 4079 | "object.omit": "2.0.1", 4080 | "parse-glob": "3.0.4", 4081 | "regex-cache": "0.4.4" 4082 | } 4083 | }, 4084 | "mime": { 4085 | "version": "1.3.6", 4086 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", 4087 | "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA=", 4088 | "dev": true 4089 | }, 4090 | "mimic-fn": { 4091 | "version": "1.1.0", 4092 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", 4093 | "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", 4094 | "dev": true 4095 | }, 4096 | "minimalistic-assert": { 4097 | "version": "1.0.0", 4098 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", 4099 | "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", 4100 | "dev": true 4101 | }, 4102 | "minimatch": { 4103 | "version": "3.0.4", 4104 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 4105 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 4106 | "dev": true, 4107 | "requires": { 4108 | "brace-expansion": "1.1.8" 4109 | } 4110 | }, 4111 | "minimist": { 4112 | "version": "0.0.8", 4113 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 4114 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 4115 | "dev": true 4116 | }, 4117 | "mkdirp": { 4118 | "version": "0.5.1", 4119 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 4120 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 4121 | "dev": true, 4122 | "requires": { 4123 | "minimist": "0.0.8" 4124 | } 4125 | }, 4126 | "moment": { 4127 | "version": "2.18.1", 4128 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", 4129 | "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=", 4130 | "dev": true, 4131 | "optional": true 4132 | }, 4133 | "ms": { 4134 | "version": "2.0.0", 4135 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 4136 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 4137 | "dev": true 4138 | }, 4139 | "multimatch": { 4140 | "version": "2.1.0", 4141 | "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", 4142 | "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", 4143 | "dev": true, 4144 | "requires": { 4145 | "array-differ": "1.0.0", 4146 | "array-union": "1.0.2", 4147 | "arrify": "1.0.1", 4148 | "minimatch": "3.0.4" 4149 | } 4150 | }, 4151 | "mute-stream": { 4152 | "version": "0.0.7", 4153 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 4154 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", 4155 | "dev": true 4156 | }, 4157 | "mv": { 4158 | "version": "2.1.1", 4159 | "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", 4160 | "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", 4161 | "dev": true, 4162 | "optional": true, 4163 | "requires": { 4164 | "mkdirp": "0.5.1", 4165 | "ncp": "2.0.0", 4166 | "rimraf": "2.4.5" 4167 | }, 4168 | "dependencies": { 4169 | "glob": { 4170 | "version": "6.0.4", 4171 | "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", 4172 | "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", 4173 | "dev": true, 4174 | "optional": true, 4175 | "requires": { 4176 | "inflight": "1.0.6", 4177 | "inherits": "2.0.3", 4178 | "minimatch": "3.0.4", 4179 | "once": "1.4.0", 4180 | "path-is-absolute": "1.0.1" 4181 | } 4182 | }, 4183 | "rimraf": { 4184 | "version": "2.4.5", 4185 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", 4186 | "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", 4187 | "dev": true, 4188 | "optional": true, 4189 | "requires": { 4190 | "glob": "6.0.4" 4191 | } 4192 | } 4193 | } 4194 | }, 4195 | "mysql": { 4196 | "version": "2.14.1", 4197 | "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.14.1.tgz", 4198 | "integrity": "sha512-ZPXqQeYH7L1QPDyC77Rcp32cNCQnNjz8Y4BbF17tOjm5yhSfjFa3xS4PvuxWJtEEmwVc4ccI7sSntj4eyYRq0A==", 4199 | "dev": true, 4200 | "requires": { 4201 | "bignumber.js": "4.0.2", 4202 | "readable-stream": "2.3.3", 4203 | "safe-buffer": "5.1.1", 4204 | "sqlstring": "2.2.0" 4205 | } 4206 | }, 4207 | "nan": { 4208 | "version": "2.6.2", 4209 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", 4210 | "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", 4211 | "dev": true, 4212 | "optional": true 4213 | }, 4214 | "natural-compare": { 4215 | "version": "1.4.0", 4216 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 4217 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 4218 | "dev": true 4219 | }, 4220 | "ncp": { 4221 | "version": "2.0.0", 4222 | "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", 4223 | "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", 4224 | "dev": true, 4225 | "optional": true 4226 | }, 4227 | "negotiator": { 4228 | "version": "0.6.1", 4229 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", 4230 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", 4231 | "dev": true 4232 | }, 4233 | "normalize-package-data": { 4234 | "version": "2.4.0", 4235 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 4236 | "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", 4237 | "dev": true, 4238 | "requires": { 4239 | "hosted-git-info": "2.5.0", 4240 | "is-builtin-module": "1.0.0", 4241 | "semver": "5.4.1", 4242 | "validate-npm-package-license": "3.0.1" 4243 | } 4244 | }, 4245 | "normalize-path": { 4246 | "version": "2.1.1", 4247 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 4248 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 4249 | "dev": true, 4250 | "requires": { 4251 | "remove-trailing-separator": "1.1.0" 4252 | } 4253 | }, 4254 | "npm-run-path": { 4255 | "version": "2.0.2", 4256 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 4257 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 4258 | "dev": true, 4259 | "requires": { 4260 | "path-key": "2.0.1" 4261 | } 4262 | }, 4263 | "number-is-nan": { 4264 | "version": "1.0.1", 4265 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 4266 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 4267 | "dev": true 4268 | }, 4269 | "object-assign": { 4270 | "version": "4.1.1", 4271 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 4272 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 4273 | "dev": true 4274 | }, 4275 | "object.omit": { 4276 | "version": "2.0.1", 4277 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 4278 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 4279 | "dev": true, 4280 | "requires": { 4281 | "for-own": "0.1.5", 4282 | "is-extendable": "0.1.1" 4283 | } 4284 | }, 4285 | "observable-to-promise": { 4286 | "version": "0.5.0", 4287 | "resolved": "https://registry.npmjs.org/observable-to-promise/-/observable-to-promise-0.5.0.tgz", 4288 | "integrity": "sha1-yCjw8NxH6fhq+KSXfF1VB2znqR8=", 4289 | "dev": true, 4290 | "requires": { 4291 | "is-observable": "0.2.0", 4292 | "symbol-observable": "1.0.4" 4293 | }, 4294 | "dependencies": { 4295 | "symbol-observable": { 4296 | "version": "1.0.4", 4297 | "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", 4298 | "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=", 4299 | "dev": true 4300 | } 4301 | } 4302 | }, 4303 | "obuf": { 4304 | "version": "1.1.1", 4305 | "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", 4306 | "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=", 4307 | "dev": true 4308 | }, 4309 | "once": { 4310 | "version": "1.4.0", 4311 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 4312 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 4313 | "dev": true, 4314 | "requires": { 4315 | "wrappy": "1.0.2" 4316 | } 4317 | }, 4318 | "onetime": { 4319 | "version": "2.0.1", 4320 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 4321 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", 4322 | "dev": true, 4323 | "requires": { 4324 | "mimic-fn": "1.1.0" 4325 | } 4326 | }, 4327 | "option-chain": { 4328 | "version": "1.0.0", 4329 | "resolved": "https://registry.npmjs.org/option-chain/-/option-chain-1.0.0.tgz", 4330 | "integrity": "sha1-k41zvU4Xg/lI00AjZEraI2aeMPI=", 4331 | "dev": true 4332 | }, 4333 | "optionator": { 4334 | "version": "0.8.2", 4335 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 4336 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 4337 | "dev": true, 4338 | "requires": { 4339 | "deep-is": "0.1.3", 4340 | "fast-levenshtein": "2.0.6", 4341 | "levn": "0.3.0", 4342 | "prelude-ls": "1.1.2", 4343 | "type-check": "0.3.2", 4344 | "wordwrap": "1.0.0" 4345 | } 4346 | }, 4347 | "os-homedir": { 4348 | "version": "1.0.2", 4349 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 4350 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 4351 | "dev": true 4352 | }, 4353 | "os-tmpdir": { 4354 | "version": "1.0.2", 4355 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 4356 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 4357 | "dev": true 4358 | }, 4359 | "p-finally": { 4360 | "version": "1.0.0", 4361 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 4362 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", 4363 | "dev": true 4364 | }, 4365 | "p-limit": { 4366 | "version": "1.1.0", 4367 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", 4368 | "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", 4369 | "dev": true 4370 | }, 4371 | "p-locate": { 4372 | "version": "2.0.0", 4373 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 4374 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 4375 | "dev": true, 4376 | "requires": { 4377 | "p-limit": "1.1.0" 4378 | } 4379 | }, 4380 | "package-hash": { 4381 | "version": "2.0.0", 4382 | "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-2.0.0.tgz", 4383 | "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", 4384 | "dev": true, 4385 | "requires": { 4386 | "graceful-fs": "4.1.11", 4387 | "lodash.flattendeep": "4.4.0", 4388 | "md5-hex": "2.0.0", 4389 | "release-zalgo": "1.0.0" 4390 | } 4391 | }, 4392 | "package-json": { 4393 | "version": "4.0.1", 4394 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", 4395 | "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", 4396 | "dev": true, 4397 | "requires": { 4398 | "got": "6.7.1", 4399 | "registry-auth-token": "3.3.1", 4400 | "registry-url": "3.1.0", 4401 | "semver": "5.4.1" 4402 | } 4403 | }, 4404 | "parse-glob": { 4405 | "version": "3.0.4", 4406 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 4407 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 4408 | "dev": true, 4409 | "requires": { 4410 | "glob-base": "0.3.0", 4411 | "is-dotfile": "1.0.3", 4412 | "is-extglob": "1.0.0", 4413 | "is-glob": "2.0.1" 4414 | } 4415 | }, 4416 | "parse-json": { 4417 | "version": "2.2.0", 4418 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 4419 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 4420 | "dev": true, 4421 | "requires": { 4422 | "error-ex": "1.3.1" 4423 | } 4424 | }, 4425 | "parse-ms": { 4426 | "version": "1.0.1", 4427 | "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz", 4428 | "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=", 4429 | "dev": true 4430 | }, 4431 | "path-exists": { 4432 | "version": "2.1.0", 4433 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 4434 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 4435 | "dev": true, 4436 | "requires": { 4437 | "pinkie-promise": "2.0.1" 4438 | } 4439 | }, 4440 | "path-is-absolute": { 4441 | "version": "1.0.1", 4442 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 4443 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 4444 | "dev": true 4445 | }, 4446 | "path-is-inside": { 4447 | "version": "1.0.2", 4448 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 4449 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 4450 | "dev": true 4451 | }, 4452 | "path-key": { 4453 | "version": "2.0.1", 4454 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 4455 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 4456 | "dev": true 4457 | }, 4458 | "path-parse": { 4459 | "version": "1.0.5", 4460 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", 4461 | "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", 4462 | "dev": true 4463 | }, 4464 | "path-type": { 4465 | "version": "2.0.0", 4466 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", 4467 | "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", 4468 | "dev": true, 4469 | "requires": { 4470 | "pify": "2.3.0" 4471 | } 4472 | }, 4473 | "pify": { 4474 | "version": "2.3.0", 4475 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 4476 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 4477 | "dev": true 4478 | }, 4479 | "pinkie": { 4480 | "version": "2.0.4", 4481 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 4482 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 4483 | "dev": true 4484 | }, 4485 | "pinkie-promise": { 4486 | "version": "2.0.1", 4487 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 4488 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 4489 | "dev": true, 4490 | "requires": { 4491 | "pinkie": "2.0.4" 4492 | } 4493 | }, 4494 | "pkg-conf": { 4495 | "version": "2.0.0", 4496 | "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.0.0.tgz", 4497 | "integrity": "sha1-BxyHZQQDvM+5xif1h1G/5HwGcnk=", 4498 | "dev": true, 4499 | "requires": { 4500 | "find-up": "2.1.0", 4501 | "load-json-file": "2.0.0" 4502 | }, 4503 | "dependencies": { 4504 | "find-up": { 4505 | "version": "2.1.0", 4506 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 4507 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 4508 | "dev": true, 4509 | "requires": { 4510 | "locate-path": "2.0.0" 4511 | } 4512 | } 4513 | } 4514 | }, 4515 | "pkg-dir": { 4516 | "version": "1.0.0", 4517 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", 4518 | "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", 4519 | "dev": true, 4520 | "requires": { 4521 | "find-up": "1.1.2" 4522 | } 4523 | }, 4524 | "plur": { 4525 | "version": "2.1.2", 4526 | "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", 4527 | "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", 4528 | "dev": true, 4529 | "requires": { 4530 | "irregular-plurals": "1.3.0" 4531 | } 4532 | }, 4533 | "pluralize": { 4534 | "version": "4.0.0", 4535 | "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-4.0.0.tgz", 4536 | "integrity": "sha1-WbcIwcAZCi9pLxx2GMRGsFL9F2I=", 4537 | "dev": true 4538 | }, 4539 | "prelude-ls": { 4540 | "version": "1.1.2", 4541 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 4542 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 4543 | "dev": true 4544 | }, 4545 | "prepend-http": { 4546 | "version": "1.0.4", 4547 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", 4548 | "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", 4549 | "dev": true 4550 | }, 4551 | "preserve": { 4552 | "version": "0.2.0", 4553 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 4554 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", 4555 | "dev": true 4556 | }, 4557 | "pretty-ms": { 4558 | "version": "2.1.0", 4559 | "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz", 4560 | "integrity": "sha1-QlfCVt8/sLRR1q/6qwIYhBJpgdw=", 4561 | "dev": true, 4562 | "requires": { 4563 | "is-finite": "1.0.2", 4564 | "parse-ms": "1.0.1", 4565 | "plur": "1.0.0" 4566 | }, 4567 | "dependencies": { 4568 | "plur": { 4569 | "version": "1.0.0", 4570 | "resolved": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz", 4571 | "integrity": "sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY=", 4572 | "dev": true 4573 | } 4574 | } 4575 | }, 4576 | "private": { 4577 | "version": "0.1.7", 4578 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", 4579 | "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=", 4580 | "dev": true 4581 | }, 4582 | "process-nextick-args": { 4583 | "version": "1.0.7", 4584 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 4585 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", 4586 | "dev": true 4587 | }, 4588 | "progress": { 4589 | "version": "2.0.0", 4590 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", 4591 | "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", 4592 | "dev": true 4593 | }, 4594 | "pseudomap": { 4595 | "version": "1.0.2", 4596 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 4597 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 4598 | "dev": true 4599 | }, 4600 | "qs": { 4601 | "version": "6.5.0", 4602 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.0.tgz", 4603 | "integrity": "sha512-fjVFjW9yhqMhVGwRExCXLhJKrLlkYSaxNWdyc9rmHlrVZbk35YHH312dFd7191uQeXkI3mKLZTIbSvIeFwFemg==", 4604 | "dev": true 4605 | }, 4606 | "randomatic": { 4607 | "version": "1.1.7", 4608 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", 4609 | "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", 4610 | "dev": true, 4611 | "requires": { 4612 | "is-number": "3.0.0", 4613 | "kind-of": "4.0.0" 4614 | }, 4615 | "dependencies": { 4616 | "is-number": { 4617 | "version": "3.0.0", 4618 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 4619 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 4620 | "dev": true, 4621 | "requires": { 4622 | "kind-of": "3.2.2" 4623 | }, 4624 | "dependencies": { 4625 | "kind-of": { 4626 | "version": "3.2.2", 4627 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 4628 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 4629 | "dev": true, 4630 | "requires": { 4631 | "is-buffer": "1.1.5" 4632 | } 4633 | } 4634 | } 4635 | }, 4636 | "kind-of": { 4637 | "version": "4.0.0", 4638 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 4639 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 4640 | "dev": true, 4641 | "requires": { 4642 | "is-buffer": "1.1.5" 4643 | } 4644 | } 4645 | } 4646 | }, 4647 | "rc": { 4648 | "version": "1.2.1", 4649 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", 4650 | "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", 4651 | "dev": true, 4652 | "requires": { 4653 | "deep-extend": "0.4.2", 4654 | "ini": "1.3.4", 4655 | "minimist": "1.2.0", 4656 | "strip-json-comments": "2.0.1" 4657 | }, 4658 | "dependencies": { 4659 | "minimist": { 4660 | "version": "1.2.0", 4661 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 4662 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 4663 | "dev": true 4664 | } 4665 | } 4666 | }, 4667 | "read-pkg": { 4668 | "version": "2.0.0", 4669 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", 4670 | "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", 4671 | "dev": true, 4672 | "requires": { 4673 | "load-json-file": "2.0.0", 4674 | "normalize-package-data": "2.4.0", 4675 | "path-type": "2.0.0" 4676 | } 4677 | }, 4678 | "read-pkg-up": { 4679 | "version": "2.0.0", 4680 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", 4681 | "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", 4682 | "dev": true, 4683 | "requires": { 4684 | "find-up": "2.1.0", 4685 | "read-pkg": "2.0.0" 4686 | }, 4687 | "dependencies": { 4688 | "find-up": { 4689 | "version": "2.1.0", 4690 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 4691 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 4692 | "dev": true, 4693 | "requires": { 4694 | "locate-path": "2.0.0" 4695 | } 4696 | } 4697 | } 4698 | }, 4699 | "readable-stream": { 4700 | "version": "2.3.3", 4701 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 4702 | "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", 4703 | "dev": true, 4704 | "requires": { 4705 | "core-util-is": "1.0.2", 4706 | "inherits": "2.0.3", 4707 | "isarray": "1.0.0", 4708 | "process-nextick-args": "1.0.7", 4709 | "safe-buffer": "5.1.1", 4710 | "string_decoder": "1.0.3", 4711 | "util-deprecate": "1.0.2" 4712 | } 4713 | }, 4714 | "readdirp": { 4715 | "version": "2.1.0", 4716 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", 4717 | "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", 4718 | "dev": true, 4719 | "requires": { 4720 | "graceful-fs": "4.1.11", 4721 | "minimatch": "3.0.4", 4722 | "readable-stream": "2.3.3", 4723 | "set-immediate-shim": "1.0.1" 4724 | } 4725 | }, 4726 | "redent": { 4727 | "version": "1.0.0", 4728 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", 4729 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", 4730 | "dev": true, 4731 | "requires": { 4732 | "indent-string": "2.1.0", 4733 | "strip-indent": "1.0.1" 4734 | }, 4735 | "dependencies": { 4736 | "indent-string": { 4737 | "version": "2.1.0", 4738 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", 4739 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", 4740 | "dev": true, 4741 | "requires": { 4742 | "repeating": "2.0.1" 4743 | } 4744 | } 4745 | } 4746 | }, 4747 | "regenerate": { 4748 | "version": "1.3.2", 4749 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", 4750 | "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=", 4751 | "dev": true 4752 | }, 4753 | "regenerator-runtime": { 4754 | "version": "0.11.0", 4755 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", 4756 | "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", 4757 | "dev": true 4758 | }, 4759 | "regex-cache": { 4760 | "version": "0.4.4", 4761 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", 4762 | "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", 4763 | "dev": true, 4764 | "requires": { 4765 | "is-equal-shallow": "0.1.3" 4766 | } 4767 | }, 4768 | "regexpu-core": { 4769 | "version": "2.0.0", 4770 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", 4771 | "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", 4772 | "dev": true, 4773 | "requires": { 4774 | "regenerate": "1.3.2", 4775 | "regjsgen": "0.2.0", 4776 | "regjsparser": "0.1.5" 4777 | } 4778 | }, 4779 | "registry-auth-token": { 4780 | "version": "3.3.1", 4781 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz", 4782 | "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=", 4783 | "dev": true, 4784 | "requires": { 4785 | "rc": "1.2.1", 4786 | "safe-buffer": "5.1.1" 4787 | } 4788 | }, 4789 | "registry-url": { 4790 | "version": "3.1.0", 4791 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", 4792 | "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", 4793 | "dev": true, 4794 | "requires": { 4795 | "rc": "1.2.1" 4796 | } 4797 | }, 4798 | "regjsgen": { 4799 | "version": "0.2.0", 4800 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", 4801 | "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", 4802 | "dev": true 4803 | }, 4804 | "regjsparser": { 4805 | "version": "0.1.5", 4806 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", 4807 | "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", 4808 | "dev": true, 4809 | "requires": { 4810 | "jsesc": "0.5.0" 4811 | } 4812 | }, 4813 | "release-zalgo": { 4814 | "version": "1.0.0", 4815 | "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", 4816 | "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", 4817 | "dev": true, 4818 | "requires": { 4819 | "es6-error": "4.0.2" 4820 | } 4821 | }, 4822 | "remove-trailing-separator": { 4823 | "version": "1.1.0", 4824 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 4825 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 4826 | "dev": true 4827 | }, 4828 | "repeat-element": { 4829 | "version": "1.1.2", 4830 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 4831 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", 4832 | "dev": true 4833 | }, 4834 | "repeat-string": { 4835 | "version": "1.6.1", 4836 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 4837 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 4838 | "dev": true 4839 | }, 4840 | "repeating": { 4841 | "version": "2.0.1", 4842 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 4843 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 4844 | "dev": true, 4845 | "requires": { 4846 | "is-finite": "1.0.2" 4847 | } 4848 | }, 4849 | "require-precompiled": { 4850 | "version": "0.1.0", 4851 | "resolved": "https://registry.npmjs.org/require-precompiled/-/require-precompiled-0.1.0.tgz", 4852 | "integrity": "sha1-WhtS63Dr7UPrmC6XTIWrWVceVvo=", 4853 | "dev": true 4854 | }, 4855 | "require-uncached": { 4856 | "version": "1.0.3", 4857 | "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", 4858 | "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", 4859 | "dev": true, 4860 | "requires": { 4861 | "caller-path": "0.1.0", 4862 | "resolve-from": "1.0.1" 4863 | } 4864 | }, 4865 | "resolve": { 4866 | "version": "1.4.0", 4867 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", 4868 | "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", 4869 | "dev": true, 4870 | "requires": { 4871 | "path-parse": "1.0.5" 4872 | } 4873 | }, 4874 | "resolve-cwd": { 4875 | "version": "2.0.0", 4876 | "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", 4877 | "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", 4878 | "dev": true, 4879 | "requires": { 4880 | "resolve-from": "3.0.0" 4881 | }, 4882 | "dependencies": { 4883 | "resolve-from": { 4884 | "version": "3.0.0", 4885 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", 4886 | "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", 4887 | "dev": true 4888 | } 4889 | } 4890 | }, 4891 | "resolve-from": { 4892 | "version": "1.0.1", 4893 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", 4894 | "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", 4895 | "dev": true 4896 | }, 4897 | "restify": { 4898 | "version": "5.1.0", 4899 | "resolved": "https://registry.npmjs.org/restify/-/restify-5.1.0.tgz", 4900 | "integrity": "sha512-97Pax4/SprDr9tU3S999UNydpDcXtT1To0K1lZKsmpOuJHH5eh4AqTJdSpREZVHnCqRaFxql5n+6G4pn5A+EPg==", 4901 | "dev": true, 4902 | "requires": { 4903 | "assert-plus": "1.0.0", 4904 | "bunyan": "1.8.12", 4905 | "clone-regexp": "1.0.0", 4906 | "csv": "1.1.1", 4907 | "dtrace-provider": "0.8.5", 4908 | "escape-regexp-component": "1.0.2", 4909 | "formidable": "1.1.1", 4910 | "http-signature": "1.1.1", 4911 | "lodash": "4.17.4", 4912 | "lru-cache": "4.1.1", 4913 | "mime": "1.3.6", 4914 | "negotiator": "0.6.1", 4915 | "once": "1.4.0", 4916 | "qs": "6.5.0", 4917 | "restify-errors": "4.3.0", 4918 | "semver": "5.4.1", 4919 | "spdy": "3.4.7", 4920 | "uuid": "3.1.0", 4921 | "vasync": "1.6.4", 4922 | "verror": "1.10.0" 4923 | } 4924 | }, 4925 | "restify-cors-middleware": { 4926 | "version": "1.0.1", 4927 | "resolved": "https://registry.npmjs.org/restify-cors-middleware/-/restify-cors-middleware-1.0.1.tgz", 4928 | "integrity": "sha1-Y4jQ1S0obiJlATPRUaidSLIvoKs=", 4929 | "dev": true, 4930 | "requires": { 4931 | "assert-plus": "1.0.0" 4932 | } 4933 | }, 4934 | "restify-errors": { 4935 | "version": "4.3.0", 4936 | "resolved": "https://registry.npmjs.org/restify-errors/-/restify-errors-4.3.0.tgz", 4937 | "integrity": "sha1-7JDzCTTX8xGRNRgd/DA+ML5gGr4=", 4938 | "dev": true, 4939 | "requires": { 4940 | "assert-plus": "1.0.0", 4941 | "lodash": "4.17.4", 4942 | "safe-json-stringify": "1.0.4", 4943 | "verror": "1.10.0" 4944 | } 4945 | }, 4946 | "restore-cursor": { 4947 | "version": "2.0.0", 4948 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 4949 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", 4950 | "dev": true, 4951 | "requires": { 4952 | "onetime": "2.0.1", 4953 | "signal-exit": "3.0.2" 4954 | } 4955 | }, 4956 | "rimraf": { 4957 | "version": "2.6.1", 4958 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", 4959 | "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", 4960 | "dev": true, 4961 | "requires": { 4962 | "glob": "7.1.2" 4963 | } 4964 | }, 4965 | "run-async": { 4966 | "version": "2.3.0", 4967 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", 4968 | "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", 4969 | "dev": true, 4970 | "requires": { 4971 | "is-promise": "2.1.0" 4972 | } 4973 | }, 4974 | "rx-lite": { 4975 | "version": "4.0.8", 4976 | "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", 4977 | "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", 4978 | "dev": true 4979 | }, 4980 | "rx-lite-aggregates": { 4981 | "version": "4.0.8", 4982 | "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", 4983 | "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", 4984 | "dev": true, 4985 | "requires": { 4986 | "rx-lite": "4.0.8" 4987 | } 4988 | }, 4989 | "safe-buffer": { 4990 | "version": "5.1.1", 4991 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 4992 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", 4993 | "dev": true 4994 | }, 4995 | "safe-json-stringify": { 4996 | "version": "1.0.4", 4997 | "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.4.tgz", 4998 | "integrity": "sha1-gaCY9Efku8P/MxKiQ1IbwGDvWRE=", 4999 | "dev": true, 5000 | "optional": true 5001 | }, 5002 | "select-hose": { 5003 | "version": "2.0.0", 5004 | "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", 5005 | "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", 5006 | "dev": true 5007 | }, 5008 | "semver": { 5009 | "version": "5.4.1", 5010 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", 5011 | "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", 5012 | "dev": true 5013 | }, 5014 | "semver-diff": { 5015 | "version": "2.1.0", 5016 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", 5017 | "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", 5018 | "dev": true, 5019 | "requires": { 5020 | "semver": "5.4.1" 5021 | } 5022 | }, 5023 | "set-immediate-shim": { 5024 | "version": "1.0.1", 5025 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 5026 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", 5027 | "dev": true 5028 | }, 5029 | "sha1": { 5030 | "version": "1.1.1", 5031 | "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", 5032 | "integrity": "sha1-rdqnqTFo85PxnrKxUJFhjicA+Eg=", 5033 | "dev": true, 5034 | "requires": { 5035 | "charenc": "0.0.2", 5036 | "crypt": "0.0.2" 5037 | } 5038 | }, 5039 | "shebang-command": { 5040 | "version": "1.2.0", 5041 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 5042 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 5043 | "dev": true, 5044 | "requires": { 5045 | "shebang-regex": "1.0.0" 5046 | } 5047 | }, 5048 | "shebang-regex": { 5049 | "version": "1.0.0", 5050 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 5051 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 5052 | "dev": true 5053 | }, 5054 | "signal-exit": { 5055 | "version": "3.0.2", 5056 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 5057 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 5058 | "dev": true 5059 | }, 5060 | "slash": { 5061 | "version": "1.0.0", 5062 | "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", 5063 | "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", 5064 | "dev": true 5065 | }, 5066 | "slice-ansi": { 5067 | "version": "0.0.4", 5068 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", 5069 | "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", 5070 | "dev": true 5071 | }, 5072 | "slide": { 5073 | "version": "1.1.6", 5074 | "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", 5075 | "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", 5076 | "dev": true 5077 | }, 5078 | "sort-keys": { 5079 | "version": "2.0.0", 5080 | "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", 5081 | "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", 5082 | "dev": true, 5083 | "requires": { 5084 | "is-plain-obj": "1.1.0" 5085 | } 5086 | }, 5087 | "source-map": { 5088 | "version": "0.5.7", 5089 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 5090 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 5091 | "dev": true 5092 | }, 5093 | "source-map-support": { 5094 | "version": "0.4.18", 5095 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 5096 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 5097 | "dev": true, 5098 | "requires": { 5099 | "source-map": "0.5.7" 5100 | } 5101 | }, 5102 | "spdx-correct": { 5103 | "version": "1.0.2", 5104 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", 5105 | "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", 5106 | "dev": true, 5107 | "requires": { 5108 | "spdx-license-ids": "1.2.2" 5109 | } 5110 | }, 5111 | "spdx-expression-parse": { 5112 | "version": "1.0.4", 5113 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", 5114 | "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", 5115 | "dev": true 5116 | }, 5117 | "spdx-license-ids": { 5118 | "version": "1.2.2", 5119 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", 5120 | "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", 5121 | "dev": true 5122 | }, 5123 | "spdy": { 5124 | "version": "3.4.7", 5125 | "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", 5126 | "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", 5127 | "dev": true, 5128 | "requires": { 5129 | "debug": "2.6.8", 5130 | "handle-thing": "1.2.5", 5131 | "http-deceiver": "1.2.7", 5132 | "safe-buffer": "5.1.1", 5133 | "select-hose": "2.0.0", 5134 | "spdy-transport": "2.0.20" 5135 | } 5136 | }, 5137 | "spdy-transport": { 5138 | "version": "2.0.20", 5139 | "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", 5140 | "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", 5141 | "dev": true, 5142 | "requires": { 5143 | "debug": "2.6.8", 5144 | "detect-node": "2.0.3", 5145 | "hpack.js": "2.1.6", 5146 | "obuf": "1.1.1", 5147 | "readable-stream": "2.3.3", 5148 | "safe-buffer": "5.1.1", 5149 | "wbuf": "1.7.2" 5150 | } 5151 | }, 5152 | "sprintf-js": { 5153 | "version": "1.0.3", 5154 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 5155 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 5156 | "dev": true 5157 | }, 5158 | "sqlstring": { 5159 | "version": "2.2.0", 5160 | "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.2.0.tgz", 5161 | "integrity": "sha1-wxNcTqirzX5+50GklmqJHYak8ZE=", 5162 | "dev": true 5163 | }, 5164 | "sshpk": { 5165 | "version": "1.13.1", 5166 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", 5167 | "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", 5168 | "dev": true, 5169 | "requires": { 5170 | "asn1": "0.2.3", 5171 | "assert-plus": "1.0.0", 5172 | "bcrypt-pbkdf": "1.0.1", 5173 | "dashdash": "1.14.1", 5174 | "ecc-jsbn": "0.1.1", 5175 | "getpass": "0.1.7", 5176 | "jsbn": "0.1.1", 5177 | "tweetnacl": "0.14.5" 5178 | } 5179 | }, 5180 | "stack-utils": { 5181 | "version": "1.0.1", 5182 | "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", 5183 | "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", 5184 | "dev": true 5185 | }, 5186 | "stream-transform": { 5187 | "version": "0.1.2", 5188 | "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-0.1.2.tgz", 5189 | "integrity": "sha1-fY5rTgOsR4F3j4x5UXUBv7B2Kp8=", 5190 | "dev": true 5191 | }, 5192 | "string-width": { 5193 | "version": "2.1.1", 5194 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 5195 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 5196 | "dev": true, 5197 | "requires": { 5198 | "is-fullwidth-code-point": "2.0.0", 5199 | "strip-ansi": "4.0.0" 5200 | }, 5201 | "dependencies": { 5202 | "ansi-regex": { 5203 | "version": "3.0.0", 5204 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 5205 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 5206 | "dev": true 5207 | }, 5208 | "strip-ansi": { 5209 | "version": "4.0.0", 5210 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 5211 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 5212 | "dev": true, 5213 | "requires": { 5214 | "ansi-regex": "3.0.0" 5215 | } 5216 | } 5217 | } 5218 | }, 5219 | "string_decoder": { 5220 | "version": "1.0.3", 5221 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 5222 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 5223 | "dev": true, 5224 | "requires": { 5225 | "safe-buffer": "5.1.1" 5226 | } 5227 | }, 5228 | "strip-ansi": { 5229 | "version": "3.0.1", 5230 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 5231 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 5232 | "dev": true, 5233 | "requires": { 5234 | "ansi-regex": "2.1.1" 5235 | } 5236 | }, 5237 | "strip-bom": { 5238 | "version": "3.0.0", 5239 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 5240 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 5241 | "dev": true 5242 | }, 5243 | "strip-bom-buf": { 5244 | "version": "1.0.0", 5245 | "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", 5246 | "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", 5247 | "dev": true, 5248 | "requires": { 5249 | "is-utf8": "0.2.1" 5250 | } 5251 | }, 5252 | "strip-eof": { 5253 | "version": "1.0.0", 5254 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 5255 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 5256 | "dev": true 5257 | }, 5258 | "strip-indent": { 5259 | "version": "1.0.1", 5260 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", 5261 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", 5262 | "dev": true, 5263 | "requires": { 5264 | "get-stdin": "4.0.1" 5265 | } 5266 | }, 5267 | "strip-json-comments": { 5268 | "version": "2.0.1", 5269 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 5270 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 5271 | "dev": true 5272 | }, 5273 | "supports-color": { 5274 | "version": "2.0.0", 5275 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 5276 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 5277 | "dev": true 5278 | }, 5279 | "symbol-observable": { 5280 | "version": "0.2.4", 5281 | "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", 5282 | "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=", 5283 | "dev": true 5284 | }, 5285 | "table": { 5286 | "version": "4.0.1", 5287 | "resolved": "https://registry.npmjs.org/table/-/table-4.0.1.tgz", 5288 | "integrity": "sha1-qBFsEz+sLGH0pCCrbN9cTWHw5DU=", 5289 | "dev": true, 5290 | "requires": { 5291 | "ajv": "4.11.8", 5292 | "ajv-keywords": "1.5.1", 5293 | "chalk": "1.1.3", 5294 | "lodash": "4.17.4", 5295 | "slice-ansi": "0.0.4", 5296 | "string-width": "2.1.1" 5297 | }, 5298 | "dependencies": { 5299 | "ajv": { 5300 | "version": "4.11.8", 5301 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", 5302 | "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", 5303 | "dev": true, 5304 | "requires": { 5305 | "co": "4.6.0", 5306 | "json-stable-stringify": "1.0.1" 5307 | } 5308 | } 5309 | } 5310 | }, 5311 | "term-size": { 5312 | "version": "1.2.0", 5313 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", 5314 | "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", 5315 | "dev": true, 5316 | "requires": { 5317 | "execa": "0.7.0" 5318 | } 5319 | }, 5320 | "text-table": { 5321 | "version": "0.2.0", 5322 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 5323 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 5324 | "dev": true 5325 | }, 5326 | "through": { 5327 | "version": "2.3.8", 5328 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 5329 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 5330 | "dev": true 5331 | }, 5332 | "through2": { 5333 | "version": "2.0.3", 5334 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", 5335 | "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", 5336 | "dev": true, 5337 | "requires": { 5338 | "readable-stream": "2.3.3", 5339 | "xtend": "4.0.1" 5340 | } 5341 | }, 5342 | "time-require": { 5343 | "version": "0.1.2", 5344 | "resolved": "https://registry.npmjs.org/time-require/-/time-require-0.1.2.tgz", 5345 | "integrity": "sha1-+eEss3D8JgXhFARYK6VO9corLZg=", 5346 | "dev": true, 5347 | "requires": { 5348 | "chalk": "0.4.0", 5349 | "date-time": "0.1.1", 5350 | "pretty-ms": "0.2.2", 5351 | "text-table": "0.2.0" 5352 | }, 5353 | "dependencies": { 5354 | "ansi-styles": { 5355 | "version": "1.0.0", 5356 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", 5357 | "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", 5358 | "dev": true 5359 | }, 5360 | "chalk": { 5361 | "version": "0.4.0", 5362 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", 5363 | "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", 5364 | "dev": true, 5365 | "requires": { 5366 | "ansi-styles": "1.0.0", 5367 | "has-color": "0.1.7", 5368 | "strip-ansi": "0.1.1" 5369 | } 5370 | }, 5371 | "date-time": { 5372 | "version": "0.1.1", 5373 | "resolved": "https://registry.npmjs.org/date-time/-/date-time-0.1.1.tgz", 5374 | "integrity": "sha1-7S9tk9l5DOL9ZtW1/z7dW7y/Owc=", 5375 | "dev": true 5376 | }, 5377 | "parse-ms": { 5378 | "version": "0.1.2", 5379 | "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-0.1.2.tgz", 5380 | "integrity": "sha1-3T+iXtbC78e93hKtm0bBY6opIk4=", 5381 | "dev": true 5382 | }, 5383 | "pretty-ms": { 5384 | "version": "0.2.2", 5385 | "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-0.2.2.tgz", 5386 | "integrity": "sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY=", 5387 | "dev": true, 5388 | "requires": { 5389 | "parse-ms": "0.1.2" 5390 | } 5391 | }, 5392 | "strip-ansi": { 5393 | "version": "0.1.1", 5394 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", 5395 | "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", 5396 | "dev": true 5397 | } 5398 | } 5399 | }, 5400 | "time-zone": { 5401 | "version": "1.0.0", 5402 | "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", 5403 | "integrity": "sha1-mcW/VZWJZq9tBtg73zgA3IL67F0=", 5404 | "dev": true 5405 | }, 5406 | "timed-out": { 5407 | "version": "4.0.1", 5408 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", 5409 | "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", 5410 | "dev": true 5411 | }, 5412 | "tmp": { 5413 | "version": "0.0.31", 5414 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", 5415 | "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", 5416 | "dev": true, 5417 | "requires": { 5418 | "os-tmpdir": "1.0.2" 5419 | } 5420 | }, 5421 | "to-fast-properties": { 5422 | "version": "1.0.3", 5423 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", 5424 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", 5425 | "dev": true 5426 | }, 5427 | "trim-newlines": { 5428 | "version": "1.0.0", 5429 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", 5430 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", 5431 | "dev": true 5432 | }, 5433 | "trim-off-newlines": { 5434 | "version": "1.0.1", 5435 | "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", 5436 | "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", 5437 | "dev": true 5438 | }, 5439 | "trim-right": { 5440 | "version": "1.0.1", 5441 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", 5442 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", 5443 | "dev": true 5444 | }, 5445 | "tryit": { 5446 | "version": "1.0.3", 5447 | "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", 5448 | "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", 5449 | "dev": true 5450 | }, 5451 | "tweetnacl": { 5452 | "version": "0.14.5", 5453 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 5454 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 5455 | "dev": true, 5456 | "optional": true 5457 | }, 5458 | "type-check": { 5459 | "version": "0.3.2", 5460 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 5461 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 5462 | "dev": true, 5463 | "requires": { 5464 | "prelude-ls": "1.1.2" 5465 | } 5466 | }, 5467 | "typedarray": { 5468 | "version": "0.0.6", 5469 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 5470 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 5471 | "dev": true 5472 | }, 5473 | "uid2": { 5474 | "version": "0.0.3", 5475 | "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", 5476 | "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=", 5477 | "dev": true 5478 | }, 5479 | "unique-string": { 5480 | "version": "1.0.0", 5481 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", 5482 | "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", 5483 | "dev": true, 5484 | "requires": { 5485 | "crypto-random-string": "1.0.0" 5486 | } 5487 | }, 5488 | "unique-temp-dir": { 5489 | "version": "1.0.0", 5490 | "resolved": "https://registry.npmjs.org/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz", 5491 | "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", 5492 | "dev": true, 5493 | "requires": { 5494 | "mkdirp": "0.5.1", 5495 | "os-tmpdir": "1.0.2", 5496 | "uid2": "0.0.3" 5497 | } 5498 | }, 5499 | "unzip-response": { 5500 | "version": "2.0.1", 5501 | "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", 5502 | "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", 5503 | "dev": true 5504 | }, 5505 | "update-notifier": { 5506 | "version": "2.2.0", 5507 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.2.0.tgz", 5508 | "integrity": "sha1-G1g3z5DAc22IYncytmHBOPht5y8=", 5509 | "dev": true, 5510 | "requires": { 5511 | "boxen": "1.2.1", 5512 | "chalk": "1.1.3", 5513 | "configstore": "3.1.1", 5514 | "import-lazy": "2.1.0", 5515 | "is-npm": "1.0.0", 5516 | "latest-version": "3.1.0", 5517 | "semver-diff": "2.1.0", 5518 | "xdg-basedir": "3.0.0" 5519 | } 5520 | }, 5521 | "url-parse-lax": { 5522 | "version": "1.0.0", 5523 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", 5524 | "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", 5525 | "dev": true, 5526 | "requires": { 5527 | "prepend-http": "1.0.4" 5528 | } 5529 | }, 5530 | "util-deprecate": { 5531 | "version": "1.0.2", 5532 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 5533 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 5534 | "dev": true 5535 | }, 5536 | "uuid": { 5537 | "version": "3.1.0", 5538 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", 5539 | "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", 5540 | "dev": true 5541 | }, 5542 | "validate-npm-package-license": { 5543 | "version": "3.0.1", 5544 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", 5545 | "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", 5546 | "dev": true, 5547 | "requires": { 5548 | "spdx-correct": "1.0.2", 5549 | "spdx-expression-parse": "1.0.4" 5550 | } 5551 | }, 5552 | "vasync": { 5553 | "version": "1.6.4", 5554 | "resolved": "https://registry.npmjs.org/vasync/-/vasync-1.6.4.tgz", 5555 | "integrity": "sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8=", 5556 | "dev": true, 5557 | "requires": { 5558 | "verror": "1.6.0" 5559 | }, 5560 | "dependencies": { 5561 | "extsprintf": { 5562 | "version": "1.2.0", 5563 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz", 5564 | "integrity": "sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=", 5565 | "dev": true 5566 | }, 5567 | "verror": { 5568 | "version": "1.6.0", 5569 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz", 5570 | "integrity": "sha1-fROyex+swuLakEBetepuW90lLqU=", 5571 | "dev": true, 5572 | "requires": { 5573 | "extsprintf": "1.2.0" 5574 | } 5575 | } 5576 | } 5577 | }, 5578 | "verror": { 5579 | "version": "1.10.0", 5580 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 5581 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 5582 | "dev": true, 5583 | "requires": { 5584 | "assert-plus": "1.0.0", 5585 | "core-util-is": "1.0.2", 5586 | "extsprintf": "1.3.0" 5587 | } 5588 | }, 5589 | "wbuf": { 5590 | "version": "1.7.2", 5591 | "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", 5592 | "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", 5593 | "dev": true, 5594 | "requires": { 5595 | "minimalistic-assert": "1.0.0" 5596 | } 5597 | }, 5598 | "well-known-symbols": { 5599 | "version": "1.0.0", 5600 | "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-1.0.0.tgz", 5601 | "integrity": "sha1-c8eK6Bp3Jqj6WY4ogIAcixYiVRg=", 5602 | "dev": true 5603 | }, 5604 | "which": { 5605 | "version": "1.3.0", 5606 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", 5607 | "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", 5608 | "dev": true, 5609 | "requires": { 5610 | "isexe": "2.0.0" 5611 | } 5612 | }, 5613 | "widest-line": { 5614 | "version": "1.0.0", 5615 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz", 5616 | "integrity": "sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=", 5617 | "dev": true, 5618 | "requires": { 5619 | "string-width": "1.0.2" 5620 | }, 5621 | "dependencies": { 5622 | "is-fullwidth-code-point": { 5623 | "version": "1.0.0", 5624 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 5625 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 5626 | "dev": true, 5627 | "requires": { 5628 | "number-is-nan": "1.0.1" 5629 | } 5630 | }, 5631 | "string-width": { 5632 | "version": "1.0.2", 5633 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 5634 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 5635 | "dev": true, 5636 | "requires": { 5637 | "code-point-at": "1.1.0", 5638 | "is-fullwidth-code-point": "1.0.0", 5639 | "strip-ansi": "3.0.1" 5640 | } 5641 | } 5642 | } 5643 | }, 5644 | "wordwrap": { 5645 | "version": "1.0.0", 5646 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 5647 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 5648 | "dev": true 5649 | }, 5650 | "wrappy": { 5651 | "version": "1.0.2", 5652 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 5653 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 5654 | "dev": true 5655 | }, 5656 | "write": { 5657 | "version": "0.2.1", 5658 | "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", 5659 | "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", 5660 | "dev": true, 5661 | "requires": { 5662 | "mkdirp": "0.5.1" 5663 | } 5664 | }, 5665 | "write-file-atomic": { 5666 | "version": "2.3.0", 5667 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", 5668 | "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", 5669 | "dev": true, 5670 | "requires": { 5671 | "graceful-fs": "4.1.11", 5672 | "imurmurhash": "0.1.4", 5673 | "signal-exit": "3.0.2" 5674 | } 5675 | }, 5676 | "write-json-file": { 5677 | "version": "2.2.0", 5678 | "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.2.0.tgz", 5679 | "integrity": "sha1-UYYlBruzthnu+reFnx/WxtBTCHY=", 5680 | "dev": true, 5681 | "requires": { 5682 | "detect-indent": "5.0.0", 5683 | "graceful-fs": "4.1.11", 5684 | "make-dir": "1.0.0", 5685 | "pify": "2.3.0", 5686 | "sort-keys": "1.1.2", 5687 | "write-file-atomic": "2.3.0" 5688 | }, 5689 | "dependencies": { 5690 | "detect-indent": { 5691 | "version": "5.0.0", 5692 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", 5693 | "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", 5694 | "dev": true 5695 | }, 5696 | "sort-keys": { 5697 | "version": "1.1.2", 5698 | "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", 5699 | "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", 5700 | "dev": true, 5701 | "requires": { 5702 | "is-plain-obj": "1.1.0" 5703 | } 5704 | } 5705 | } 5706 | }, 5707 | "write-pkg": { 5708 | "version": "3.1.0", 5709 | "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.1.0.tgz", 5710 | "integrity": "sha1-AwqZlMyZk9JbTnWp8aGSNgcpHOk=", 5711 | "dev": true, 5712 | "requires": { 5713 | "sort-keys": "2.0.0", 5714 | "write-json-file": "2.2.0" 5715 | } 5716 | }, 5717 | "xdg-basedir": { 5718 | "version": "3.0.0", 5719 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", 5720 | "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", 5721 | "dev": true 5722 | }, 5723 | "xtend": { 5724 | "version": "4.0.1", 5725 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 5726 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 5727 | "dev": true 5728 | }, 5729 | "yallist": { 5730 | "version": "2.1.2", 5731 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 5732 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 5733 | "dev": true 5734 | } 5735 | } 5736 | } 5737 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "restful-ws", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "dev": "nodemon src/index.js", 8 | "test": "ava --verbose" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "devDependencies": { 14 | "ava": "^0.22.0", 15 | "dotenv": "^4.0.0", 16 | "eslint": "^4.4.1", 17 | "eslint-config-standard": "^10.2.1", 18 | "eslint-plugin-import": "^2.7.0", 19 | "eslint-plugin-node": "^5.1.1", 20 | "eslint-plugin-promise": "^3.5.0", 21 | "eslint-plugin-standard": "^3.0.1", 22 | "jsonwebtoken": "^8.0.1", 23 | "mysql": "^2.14.1", 24 | "restify": "^5.1.0", 25 | "restify-cors-middleware": "^1.0.1", 26 | "sha1": "^1.1.1" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/http/routes.js: -------------------------------------------------------------------------------- 1 | 2 | const db = require('../services/mysql') 3 | 4 | const routes = (server) => { 5 | server.post('autenticacao', async (req, res, next) => { 6 | try { 7 | const { email, password } = req.params 8 | res.send(await db.auth().authenticate(email, password)) 9 | } catch (error) { 10 | res.send(error) 11 | } 12 | next() 13 | }) 14 | 15 | server.get('categoria', async (req, res, next) => { 16 | try { 17 | res.send(await db.categories().all()) 18 | } catch (error) { 19 | res.send(error) 20 | } 21 | next() 22 | }) 23 | 24 | server.post('categoria', async (req, res, next) => { 25 | const { name } = req.params 26 | try { 27 | res.send(await db.categories().save(name)) 28 | } catch (error) { 29 | res.send(error) 30 | } 31 | next() 32 | }) 33 | 34 | server.put('categoria', async (req, res, next) => { 35 | const { id, name } = req.params 36 | try { 37 | res.send(await db.categories().update(id, name)) 38 | } catch (error) { 39 | res.send(error) 40 | } 41 | next() 42 | }) 43 | 44 | server.del('categoria', async (req, res, next) => { 45 | const { id } = req.params 46 | try { 47 | res.send(await db.categories().del(id)) 48 | } catch (error) { 49 | res.send(error) 50 | } 51 | next() 52 | }) 53 | 54 | server.get('/', (req, res, next) => { 55 | res.send('Enjoy the silence!') 56 | next() 57 | }) 58 | } 59 | 60 | module.exports = routes 61 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | 2 | require('dotenv').config() 3 | 4 | const server = require('./server') 5 | 6 | server.listen('3456') 7 | -------------------------------------------------------------------------------- /src/server/cors.js: -------------------------------------------------------------------------------- 1 | 2 | const corsMiddleware = require('restify-cors-middleware') 3 | 4 | const cors = corsMiddleware({ 5 | preflightMaxAge: 5, 6 | origins: ['*'], 7 | allowHeaders: ['*'], 8 | exposeHeaders: ['*'] 9 | }) 10 | 11 | module.exports = cors 12 | -------------------------------------------------------------------------------- /src/server/index.js: -------------------------------------------------------------------------------- 1 | 2 | const restify = require('restify') 3 | const server = restify.createServer() 4 | const routes = require('../http/routes') 5 | const cors = require('./cors') 6 | const jwtMiddleware = require('./jwtMiddleware') 7 | 8 | const exclusions = ['/autenticacao'] 9 | 10 | server.pre(cors.preflight) 11 | server.use(cors.actual) 12 | server.use(restify.plugins.bodyParser()) 13 | server.use(jwtMiddleware({ exclusions })) 14 | 15 | routes(server) 16 | 17 | module.exports = server 18 | -------------------------------------------------------------------------------- /src/server/jwtMiddleware.js: -------------------------------------------------------------------------------- 1 | 2 | const jwt = require('jsonwebtoken') 3 | 4 | const jwtMiddleware = (deps) => { 5 | return async (req, res, next) => { 6 | if (!deps.exclusions.includes(req.href())) { 7 | const token = req.headers['x-access-token'] 8 | 9 | if (!token) { 10 | res.send(403, { error: 'Token não fornecido' }) 11 | return false 12 | } 13 | 14 | try { 15 | req.decoded = jwt.verify(token, process.env.JWT_SECRET) 16 | } catch (error) { 17 | res.send(403, { error: 'Falha ao autenticar o token' }) 18 | return false 19 | } 20 | } 21 | 22 | next() 23 | } 24 | } 25 | 26 | module.exports = jwtMiddleware 27 | -------------------------------------------------------------------------------- /src/services/mysql/auth.js: -------------------------------------------------------------------------------- 1 | 2 | const sha1 = require('sha1') 3 | const jwt = require('jsonwebtoken') 4 | 5 | const auth = deps => { 6 | return { 7 | authenticate: (email, password) => { 8 | return new Promise((resolve, reject) => { 9 | const { connection, errorHandler } = deps 10 | const queryString = 'SELECT id, email FROM users WHERE email = ? AND password = ?' 11 | const queryData = [email, sha1(password)] 12 | 13 | connection.query(queryString, queryData, (error, results) => { 14 | if (error || !results.length) { 15 | errorHandler(error, 'Falha ao localizar o usuário', reject) 16 | return false 17 | } 18 | 19 | const { email, id } = results[0] 20 | 21 | const token = jwt.sign({ email, id }, process.env.JWT_SECRET, { expiresIn: 60 * 60 * 24 }) 22 | 23 | resolve({ token }) 24 | }) 25 | }) 26 | } 27 | } 28 | } 29 | 30 | module.exports = auth 31 | -------------------------------------------------------------------------------- /src/services/mysql/categories.js: -------------------------------------------------------------------------------- 1 | 2 | const categories = deps => { 3 | return { 4 | all: () => { 5 | return new Promise((resolve, reject) => { 6 | const { connection, errorHandler } = deps 7 | 8 | connection.query('SELECT * FROM categories', (error, results) => { 9 | if (error) { 10 | errorHandler(error, 'Falha ao listar as categorias', reject) 11 | return false 12 | } 13 | resolve({ categories: results }) 14 | }) 15 | }) 16 | }, 17 | save: (name) => { 18 | return new Promise((resolve, reject) => { 19 | const { connection, errorHandler } = deps 20 | 21 | connection.query('INSERT INTO categories (name) VALUES (?)', [name], (error, results) => { 22 | if (error) { 23 | errorHandler(error, `Falha ao salvar a categoria ${name}`, reject) 24 | return false 25 | } 26 | resolve({ category: { name, id: results.insertId } }) 27 | }) 28 | }) 29 | }, 30 | update: (id, name) => { 31 | return new Promise((resolve, reject) => { 32 | const { connection, errorHandler } = deps 33 | 34 | connection.query('UPDATE categories SET name = ? WHERE id = ?', [name, id], (error, results) => { 35 | if (error || !results.affectedRows) { 36 | errorHandler(error, `Falha ao atualizar a categoria ${name}`, reject) 37 | return false 38 | } 39 | resolve({ category: { name, id }, affectedRows: results.affectedRows }) 40 | }) 41 | }) 42 | }, 43 | del: (id) => { 44 | return new Promise((resolve, reject) => { 45 | const { connection, errorHandler } = deps 46 | 47 | connection.query('DELETE FROM categories WHERE id = ?', [id], (error, results) => { 48 | if (error || !results.affectedRows) { 49 | errorHandler(error, `Falha ao remover a categoria de id ${id}`, reject) 50 | return false 51 | } 52 | resolve({ message: 'Categoria removida com sucesso!', affectedRows: results.affectedRows }) 53 | }) 54 | }) 55 | } 56 | } 57 | } 58 | 59 | module.exports = categories 60 | -------------------------------------------------------------------------------- /src/services/mysql/index.js: -------------------------------------------------------------------------------- 1 | 2 | const mysqlServer = require('mysql') 3 | 4 | const connection = mysqlServer.createConnection({ 5 | host: process.env.MYSQL_HOST, 6 | user: process.env.MYSQL_USERNAME, 7 | password: process.env.MYSQL_PASSWORD, 8 | database: process.env.MYSQL_DATABASE 9 | }) 10 | 11 | const errorHandler = (error, msg, rejectFunction) => { 12 | console.error(error) 13 | rejectFunction({ error: msg }) 14 | } 15 | 16 | const categoryModule = require('./categories')({ connection, errorHandler }) 17 | const usersModule = require('./users')({ connection, errorHandler }) 18 | const authModule = require('./auth')({ connection, errorHandler }) 19 | 20 | module.exports = { 21 | categories: () => categoryModule, 22 | users: () => usersModule, 23 | auth: () => authModule 24 | } 25 | -------------------------------------------------------------------------------- /src/services/mysql/tests/auth.test.js: -------------------------------------------------------------------------------- 1 | 2 | const test = require('ava') 3 | const { connection, errorHandler } = require('./setup') 4 | const users = require('../users')({ connection, errorHandler }) 5 | const auth = require('../auth')({ connection, errorHandler }) 6 | const create = () => users.save('user@test.com', '123456') 7 | 8 | test.beforeEach(t => connection.query('TRUNCATE TABLE users')) 9 | test.after.always(t => connection.query('TRUNCATE TABLE users')) 10 | 11 | test('Login de usuário - sucesso', async t => { 12 | await create() 13 | const result = await auth.authenticate('user@test.com', '123456') 14 | t.not(result.token, null) 15 | t.not(result.token.length, 0) 16 | }) 17 | 18 | test('Login de usuário - falha', async t => { 19 | await create() 20 | const promise = auth.authenticate('user2@test.com', '123456') 21 | const error = await t.throws(promise) 22 | t.is(error.error, 'Falha ao localizar o usuário') 23 | }) 24 | -------------------------------------------------------------------------------- /src/services/mysql/tests/categories.test.js: -------------------------------------------------------------------------------- 1 | 2 | const test = require('ava') 3 | const { connection, errorHandler } = require('./setup') 4 | const categories = require('../categories')({ connection, errorHandler }) 5 | const create = () => categories.save('category-test') 6 | 7 | test.beforeEach(t => connection.query('TRUNCATE TABLE categories')) 8 | test.after.always(t => connection.query('TRUNCATE TABLE categories')) 9 | 10 | test('Lista de categorias', async t => { 11 | await create() 12 | const list = await categories.all() 13 | t.is(list.categories.length, 1) 14 | t.is(list.categories[0].name, 'category-test') 15 | }) 16 | 17 | test('Criação de categoria', async t => { 18 | const result = await create() 19 | t.is(result.category.name, 'category-test') 20 | }) 21 | 22 | test('Atualizacao de categoria', async t => { 23 | await create() 24 | const updated = await categories.update(1, 'category-test-updated') 25 | t.is(updated.category.name, 'category-test-updated') 26 | t.is(updated.affectedRows, 1) 27 | }) 28 | 29 | test('Remoção de categoria', async t => { 30 | await create() 31 | const removed = await categories.del(1) 32 | t.is(removed.affectedRows, 1) 33 | }) 34 | -------------------------------------------------------------------------------- /src/services/mysql/tests/setup.js: -------------------------------------------------------------------------------- 1 | 2 | require('dotenv').config() 3 | 4 | const mysqlServer = require('mysql') 5 | 6 | const connection = mysqlServer.createConnection({ 7 | host: process.env.MYSQL_HOST, 8 | user: process.env.MYSQL_USERNAME, 9 | password: process.env.MYSQL_PASSWORD, 10 | database: process.env.MYSQL_TEST_DATABASE 11 | }) 12 | 13 | const errorHandler = (error, msg, rejectFunction) => { 14 | console.error(error) 15 | rejectFunction({ error: msg }) 16 | } 17 | 18 | module.exports = { connection, errorHandler } 19 | -------------------------------------------------------------------------------- /src/services/mysql/tests/users.test.js: -------------------------------------------------------------------------------- 1 | 2 | const test = require('ava') 3 | const { connection, errorHandler } = require('./setup') 4 | const users = require('../users')({ connection, errorHandler }) 5 | const create = () => users.save('user@test.com', '123456') 6 | 7 | test.beforeEach(t => connection.query('TRUNCATE TABLE users')) 8 | test.after.always(t => connection.query('TRUNCATE TABLE users')) 9 | 10 | test('Lista de usuários', async t => { 11 | await create() 12 | const list = await users.all() 13 | t.is(list.users.length, 1) 14 | t.is(list.users[0].email, 'user@test.com') 15 | }) 16 | 17 | test('Criação de usuário', async t => { 18 | const result = await create() 19 | t.is(result.user.email, 'user@test.com') 20 | }) 21 | 22 | test('Atualizacao de usuário', async t => { 23 | await create() 24 | const updated = await users.update(1, '123456789') 25 | t.is(updated.affectedRows, 1) 26 | }) 27 | 28 | test('Remoção de usuário', async t => { 29 | await create() 30 | const removed = await users.del(1) 31 | t.is(removed.affectedRows, 1) 32 | }) 33 | -------------------------------------------------------------------------------- /src/services/mysql/users.js: -------------------------------------------------------------------------------- 1 | 2 | const sha1 = require('sha1') 3 | 4 | const users = deps => { 5 | return { 6 | all: () => { 7 | return new Promise((resolve, reject) => { 8 | const { connection, errorHandler } = deps 9 | 10 | connection.query('SELECT id, email FROM users', (error, results) => { 11 | if (error) { 12 | errorHandler(error, 'Falha ao listar as usuários', reject) 13 | return false 14 | } 15 | resolve({ users: results }) 16 | }) 17 | }) 18 | }, 19 | save: (email, password) => { 20 | return new Promise((resolve, reject) => { 21 | const { connection, errorHandler } = deps 22 | 23 | connection.query('INSERT INTO users (email, password) VALUES (?, ?)', [email, sha1(password)], (error, results) => { 24 | if (error) { 25 | errorHandler(error, `Falha ao salvar a usuário ${email}`, reject) 26 | return false 27 | } 28 | resolve({ user: { email, id: results.insertId } }) 29 | }) 30 | }) 31 | }, 32 | update: (id, password) => { 33 | return new Promise((resolve, reject) => { 34 | const { connection, errorHandler } = deps 35 | 36 | connection.query('UPDATE users SET password = ? WHERE id = ?', [sha1(password), id], (error, results) => { 37 | if (error || !results.affectedRows) { 38 | errorHandler(error, `Falha ao atualizar a usuário de id ${id}`, reject) 39 | return false 40 | } 41 | resolve({ user: { id }, affectedRows: results.affectedRows }) 42 | }) 43 | }) 44 | }, 45 | del: (id) => { 46 | return new Promise((resolve, reject) => { 47 | const { connection, errorHandler } = deps 48 | 49 | connection.query('DELETE FROM users WHERE id = ?', [id], (error, results) => { 50 | if (error || !results.affectedRows) { 51 | errorHandler(error, `Falha ao remover a usuário de id ${id}`, reject) 52 | return false 53 | } 54 | resolve({ message: 'usuário removida com sucesso!', affectedRows: results.affectedRows }) 55 | }) 56 | }) 57 | } 58 | } 59 | } 60 | 61 | module.exports = users 62 | --------------------------------------------------------------------------------