├── .gitignore ├── Dockerfile ├── LICENSE ├── Procfile ├── README.md ├── package-lock.json ├── package.json └── src ├── api ├── facets.js └── index.js ├── config.json ├── db.js ├── index.js ├── lib └── util.js ├── middleware └── index.js ├── models └── facets.js └── users.htpasswd /.gitignore: -------------------------------------------------------------------------------- 1 | /dist 2 | /logs 3 | /npm-debug.log 4 | /node_modules 5 | .DS_Store 6 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.4 2 | 3 | # File Author / Maintainer 4 | LABEL authors="Zouhir Chahoud " 5 | 6 | # Update & install required packages 7 | RUN apk add --update nodejs bash git 8 | 9 | # Install app dependencies 10 | COPY package.json /www/package.json 11 | RUN cd /www; npm install 12 | 13 | # Copy app source 14 | COPY . /www 15 | 16 | # Set work directory to /www 17 | WORKDIR /www 18 | 19 | # set your port 20 | ENV PORT 8080 21 | 22 | # expose the port to outside world 23 | EXPOSE 8080 24 | 25 | # start command as per package.json 26 | CMD ["npm", "start"] 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Jason Miller 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: npm start 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |
4 | Express & ES6 REST API Boilerplate 5 |
6 |
7 |

8 |
9 | 10 |

Example with basic HTTP Auth

11 | 12 | [![bitHound Score](https://www.bithound.io/github/developit/express-es6-rest-api/badges/score.svg)](https://www.bithound.io/github/developit/express-es6-rest-api) 13 | 14 | This is a straightforward boilerplate for building REST APIs with ES6 and Express. 15 | 16 | - ES6 support via [babel](https://babeljs.io) 17 | - REST resources as middleware via [resource-router-middleware](https://github.com/developit/resource-router-middleware) 18 | - CORS support via [cors](https://github.com/troygoode/node-cors) 19 | - Body Parsing via [body-parser](https://github.com/expressjs/body-parser) 20 | 21 | > Tip: If you are using [Mongoose](https://github.com/Automattic/mongoose), you can automatically expose your Models as REST resources using [restful-mongoose](https://git.io/restful-mongoose). 22 | 23 | Getting Started 24 | --------------- 25 | 26 | ```sh 27 | # clone it 28 | git clone git@github.com:developit/express-es6-rest-api.git 29 | cd express-es6-rest-api 30 | 31 | # Make it your own 32 | rm -rf .git && git init && npm init 33 | 34 | # Install dependencies 35 | npm install 36 | 37 | # Start development live-reload server 38 | PORT=8080 npm run dev 39 | 40 | # Start production server: 41 | PORT=8080 npm start 42 | ``` 43 | Docker Support 44 | ------ 45 | ```sh 46 | cd express-es6-rest-api 47 | 48 | # Build your docker 49 | docker build -t es6/api-service . 50 | # ^ ^ ^ 51 | # tag tag name Dockerfile location 52 | 53 | # run your docker 54 | docker run -p 8080:8080 es6/api-service 55 | # ^ ^ 56 | # bind the port container tag 57 | # to your host 58 | # machine port 59 | 60 | ``` 61 | 62 | Docker Demo 63 | ------------------------- 64 | It's supposed to be pretty easy to take your Docker to your favourite cloud service, here's a demo of what's our Dockerized bolierplate is like: [https://docker-deployment-yudfxfiaja.now.sh/api](https://docker-deployment-yudfxfiaja.now.sh/api) 65 | 66 | License 67 | ------- 68 | 69 | MIT 70 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "express-es6-rest-api", 3 | "version": "0.3.0", 4 | "lockfileVersion": 1, 5 | "dependencies": { 6 | "abbrev": { 7 | "version": "1.1.0", 8 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", 9 | "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", 10 | "dev": true 11 | }, 12 | "accepts": { 13 | "version": "1.3.3", 14 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", 15 | "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=" 16 | }, 17 | "acorn": { 18 | "version": "5.0.3", 19 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz", 20 | "integrity": "sha1-xGDfCEkUY/AozLguqzcwvwEIez0=", 21 | "dev": true 22 | }, 23 | "acorn-jsx": { 24 | "version": "3.0.1", 25 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", 26 | "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", 27 | "dev": true, 28 | "dependencies": { 29 | "acorn": { 30 | "version": "3.3.0", 31 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", 32 | "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", 33 | "dev": true 34 | } 35 | } 36 | }, 37 | "ajv": { 38 | "version": "4.11.8", 39 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", 40 | "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", 41 | "dev": true 42 | }, 43 | "ajv-keywords": { 44 | "version": "1.5.1", 45 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", 46 | "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", 47 | "dev": true 48 | }, 49 | "ansi-regex": { 50 | "version": "2.1.1", 51 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 52 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 53 | "dev": true 54 | }, 55 | "ansi-styles": { 56 | "version": "2.2.1", 57 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 58 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 59 | "dev": true 60 | }, 61 | "anymatch": { 62 | "version": "1.3.0", 63 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", 64 | "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", 65 | "dev": true 66 | }, 67 | "apache-crypt": { 68 | "version": "1.2.1", 69 | "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.1.tgz", 70 | "integrity": "sha1-1vxyqm0n2ZyVqU/RiNcx7v/6Zjw=" 71 | }, 72 | "apache-md5": { 73 | "version": "1.1.2", 74 | "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.2.tgz", 75 | "integrity": "sha1-7klza2ObTxCLbp5ibG2pkwa0FpI=" 76 | }, 77 | "argparse": { 78 | "version": "1.0.9", 79 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", 80 | "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", 81 | "dev": true 82 | }, 83 | "arr-diff": { 84 | "version": "2.0.0", 85 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 86 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 87 | "dev": true 88 | }, 89 | "arr-flatten": { 90 | "version": "1.0.3", 91 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", 92 | "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=", 93 | "dev": true 94 | }, 95 | "array-flatten": { 96 | "version": "1.1.1", 97 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 98 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 99 | }, 100 | "array-union": { 101 | "version": "1.0.2", 102 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 103 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 104 | "dev": true 105 | }, 106 | "array-uniq": { 107 | "version": "1.0.3", 108 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 109 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 110 | "dev": true 111 | }, 112 | "array-unique": { 113 | "version": "0.2.1", 114 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 115 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", 116 | "dev": true 117 | }, 118 | "arrify": { 119 | "version": "1.0.1", 120 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 121 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 122 | "dev": true 123 | }, 124 | "async-each": { 125 | "version": "1.0.1", 126 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", 127 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", 128 | "dev": true 129 | }, 130 | "babel-cli": { 131 | "version": "6.24.1", 132 | "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.24.1.tgz", 133 | "integrity": "sha1-IHzXBbumFImy6kG1MSNBz2rKIoM=", 134 | "dev": true 135 | }, 136 | "babel-code-frame": { 137 | "version": "6.22.0", 138 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", 139 | "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", 140 | "dev": true 141 | }, 142 | "babel-core": { 143 | "version": "6.25.0", 144 | "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.25.0.tgz", 145 | "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=", 146 | "dev": true 147 | }, 148 | "babel-generator": { 149 | "version": "6.25.0", 150 | "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz", 151 | "integrity": "sha1-M6GvcNXyiQrrRlpKd5PB32qeqfw=", 152 | "dev": true 153 | }, 154 | "babel-helper-bindify-decorators": { 155 | "version": "6.24.1", 156 | "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", 157 | "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", 158 | "dev": true 159 | }, 160 | "babel-helper-builder-binary-assignment-operator-visitor": { 161 | "version": "6.24.1", 162 | "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", 163 | "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", 164 | "dev": true 165 | }, 166 | "babel-helper-call-delegate": { 167 | "version": "6.24.1", 168 | "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", 169 | "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", 170 | "dev": true 171 | }, 172 | "babel-helper-define-map": { 173 | "version": "6.24.1", 174 | "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz", 175 | "integrity": "sha1-epdH8ljYlH0y1RX2qhx70CIEoIA=", 176 | "dev": true 177 | }, 178 | "babel-helper-explode-assignable-expression": { 179 | "version": "6.24.1", 180 | "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", 181 | "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", 182 | "dev": true 183 | }, 184 | "babel-helper-explode-class": { 185 | "version": "6.24.1", 186 | "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", 187 | "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", 188 | "dev": true 189 | }, 190 | "babel-helper-function-name": { 191 | "version": "6.24.1", 192 | "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", 193 | "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", 194 | "dev": true 195 | }, 196 | "babel-helper-get-function-arity": { 197 | "version": "6.24.1", 198 | "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", 199 | "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", 200 | "dev": true 201 | }, 202 | "babel-helper-hoist-variables": { 203 | "version": "6.24.1", 204 | "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", 205 | "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", 206 | "dev": true 207 | }, 208 | "babel-helper-optimise-call-expression": { 209 | "version": "6.24.1", 210 | "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", 211 | "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", 212 | "dev": true 213 | }, 214 | "babel-helper-regex": { 215 | "version": "6.24.1", 216 | "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz", 217 | "integrity": "sha1-024i+rEAjXnYhkjjIRaGgShFbOg=", 218 | "dev": true 219 | }, 220 | "babel-helper-remap-async-to-generator": { 221 | "version": "6.24.1", 222 | "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", 223 | "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", 224 | "dev": true 225 | }, 226 | "babel-helper-replace-supers": { 227 | "version": "6.24.1", 228 | "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", 229 | "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", 230 | "dev": true 231 | }, 232 | "babel-helpers": { 233 | "version": "6.24.1", 234 | "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", 235 | "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", 236 | "dev": true 237 | }, 238 | "babel-messages": { 239 | "version": "6.23.0", 240 | "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", 241 | "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", 242 | "dev": true 243 | }, 244 | "babel-plugin-check-es2015-constants": { 245 | "version": "6.22.0", 246 | "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", 247 | "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", 248 | "dev": true 249 | }, 250 | "babel-plugin-syntax-async-functions": { 251 | "version": "6.13.0", 252 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", 253 | "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", 254 | "dev": true 255 | }, 256 | "babel-plugin-syntax-async-generators": { 257 | "version": "6.13.0", 258 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", 259 | "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", 260 | "dev": true 261 | }, 262 | "babel-plugin-syntax-class-constructor-call": { 263 | "version": "6.18.0", 264 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", 265 | "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=", 266 | "dev": true 267 | }, 268 | "babel-plugin-syntax-class-properties": { 269 | "version": "6.13.0", 270 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", 271 | "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", 272 | "dev": true 273 | }, 274 | "babel-plugin-syntax-decorators": { 275 | "version": "6.13.0", 276 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", 277 | "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", 278 | "dev": true 279 | }, 280 | "babel-plugin-syntax-do-expressions": { 281 | "version": "6.13.0", 282 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz", 283 | "integrity": "sha1-V0d1YTmqJtOQ0JQQsDdEugfkeW0=", 284 | "dev": true 285 | }, 286 | "babel-plugin-syntax-dynamic-import": { 287 | "version": "6.18.0", 288 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", 289 | "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", 290 | "dev": true 291 | }, 292 | "babel-plugin-syntax-exponentiation-operator": { 293 | "version": "6.13.0", 294 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", 295 | "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", 296 | "dev": true 297 | }, 298 | "babel-plugin-syntax-export-extensions": { 299 | "version": "6.13.0", 300 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", 301 | "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", 302 | "dev": true 303 | }, 304 | "babel-plugin-syntax-function-bind": { 305 | "version": "6.13.0", 306 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz", 307 | "integrity": "sha1-SMSV8Xe98xqYHnMvVa3AvdJgH0Y=", 308 | "dev": true 309 | }, 310 | "babel-plugin-syntax-object-rest-spread": { 311 | "version": "6.13.0", 312 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", 313 | "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", 314 | "dev": true 315 | }, 316 | "babel-plugin-syntax-trailing-function-commas": { 317 | "version": "6.22.0", 318 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", 319 | "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", 320 | "dev": true 321 | }, 322 | "babel-plugin-transform-async-generator-functions": { 323 | "version": "6.24.1", 324 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", 325 | "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", 326 | "dev": true 327 | }, 328 | "babel-plugin-transform-async-to-generator": { 329 | "version": "6.24.1", 330 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", 331 | "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", 332 | "dev": true 333 | }, 334 | "babel-plugin-transform-class-constructor-call": { 335 | "version": "6.24.1", 336 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz", 337 | "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", 338 | "dev": true 339 | }, 340 | "babel-plugin-transform-class-properties": { 341 | "version": "6.24.1", 342 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", 343 | "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", 344 | "dev": true 345 | }, 346 | "babel-plugin-transform-decorators": { 347 | "version": "6.24.1", 348 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", 349 | "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", 350 | "dev": true 351 | }, 352 | "babel-plugin-transform-do-expressions": { 353 | "version": "6.22.0", 354 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz", 355 | "integrity": "sha1-KMyvkoEtlJws0SgfaQyP3EaK6bs=", 356 | "dev": true 357 | }, 358 | "babel-plugin-transform-es2015-arrow-functions": { 359 | "version": "6.22.0", 360 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", 361 | "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", 362 | "dev": true 363 | }, 364 | "babel-plugin-transform-es2015-block-scoped-functions": { 365 | "version": "6.22.0", 366 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", 367 | "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", 368 | "dev": true 369 | }, 370 | "babel-plugin-transform-es2015-block-scoping": { 371 | "version": "6.24.1", 372 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz", 373 | "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=", 374 | "dev": true 375 | }, 376 | "babel-plugin-transform-es2015-classes": { 377 | "version": "6.24.1", 378 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", 379 | "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", 380 | "dev": true 381 | }, 382 | "babel-plugin-transform-es2015-computed-properties": { 383 | "version": "6.24.1", 384 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", 385 | "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", 386 | "dev": true 387 | }, 388 | "babel-plugin-transform-es2015-destructuring": { 389 | "version": "6.23.0", 390 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", 391 | "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", 392 | "dev": true 393 | }, 394 | "babel-plugin-transform-es2015-duplicate-keys": { 395 | "version": "6.24.1", 396 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", 397 | "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", 398 | "dev": true 399 | }, 400 | "babel-plugin-transform-es2015-for-of": { 401 | "version": "6.23.0", 402 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", 403 | "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", 404 | "dev": true 405 | }, 406 | "babel-plugin-transform-es2015-function-name": { 407 | "version": "6.24.1", 408 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", 409 | "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", 410 | "dev": true 411 | }, 412 | "babel-plugin-transform-es2015-literals": { 413 | "version": "6.22.0", 414 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", 415 | "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", 416 | "dev": true 417 | }, 418 | "babel-plugin-transform-es2015-modules-amd": { 419 | "version": "6.24.1", 420 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", 421 | "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", 422 | "dev": true 423 | }, 424 | "babel-plugin-transform-es2015-modules-commonjs": { 425 | "version": "6.24.1", 426 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", 427 | "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=", 428 | "dev": true 429 | }, 430 | "babel-plugin-transform-es2015-modules-systemjs": { 431 | "version": "6.24.1", 432 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", 433 | "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", 434 | "dev": true 435 | }, 436 | "babel-plugin-transform-es2015-modules-umd": { 437 | "version": "6.24.1", 438 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", 439 | "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", 440 | "dev": true 441 | }, 442 | "babel-plugin-transform-es2015-object-super": { 443 | "version": "6.24.1", 444 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", 445 | "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", 446 | "dev": true 447 | }, 448 | "babel-plugin-transform-es2015-parameters": { 449 | "version": "6.24.1", 450 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", 451 | "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", 452 | "dev": true 453 | }, 454 | "babel-plugin-transform-es2015-shorthand-properties": { 455 | "version": "6.24.1", 456 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", 457 | "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", 458 | "dev": true 459 | }, 460 | "babel-plugin-transform-es2015-spread": { 461 | "version": "6.22.0", 462 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", 463 | "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", 464 | "dev": true 465 | }, 466 | "babel-plugin-transform-es2015-sticky-regex": { 467 | "version": "6.24.1", 468 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", 469 | "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", 470 | "dev": true 471 | }, 472 | "babel-plugin-transform-es2015-template-literals": { 473 | "version": "6.22.0", 474 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", 475 | "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", 476 | "dev": true 477 | }, 478 | "babel-plugin-transform-es2015-typeof-symbol": { 479 | "version": "6.23.0", 480 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", 481 | "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", 482 | "dev": true 483 | }, 484 | "babel-plugin-transform-es2015-unicode-regex": { 485 | "version": "6.24.1", 486 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", 487 | "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", 488 | "dev": true 489 | }, 490 | "babel-plugin-transform-exponentiation-operator": { 491 | "version": "6.24.1", 492 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", 493 | "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", 494 | "dev": true 495 | }, 496 | "babel-plugin-transform-export-extensions": { 497 | "version": "6.22.0", 498 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", 499 | "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", 500 | "dev": true 501 | }, 502 | "babel-plugin-transform-function-bind": { 503 | "version": "6.22.0", 504 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz", 505 | "integrity": "sha1-xvuOlqwpajELjPjqQBRiQH3fapc=", 506 | "dev": true 507 | }, 508 | "babel-plugin-transform-object-rest-spread": { 509 | "version": "6.23.0", 510 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz", 511 | "integrity": "sha1-h11ryb52HFiirj/u5dxIldjH+SE=", 512 | "dev": true 513 | }, 514 | "babel-plugin-transform-regenerator": { 515 | "version": "6.24.1", 516 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz", 517 | "integrity": "sha1-uNowWtQ8PJm0hI5P5AN7dw0jxBg=", 518 | "dev": true 519 | }, 520 | "babel-plugin-transform-strict-mode": { 521 | "version": "6.24.1", 522 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", 523 | "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", 524 | "dev": true 525 | }, 526 | "babel-polyfill": { 527 | "version": "6.23.0", 528 | "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", 529 | "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=", 530 | "dev": true 531 | }, 532 | "babel-preset-es2015": { 533 | "version": "6.24.1", 534 | "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", 535 | "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", 536 | "dev": true 537 | }, 538 | "babel-preset-stage-0": { 539 | "version": "6.24.1", 540 | "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz", 541 | "integrity": "sha1-VkLRUEL5E4TX5a+LyIsduVsDnmo=", 542 | "dev": true 543 | }, 544 | "babel-preset-stage-1": { 545 | "version": "6.24.1", 546 | "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", 547 | "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", 548 | "dev": true 549 | }, 550 | "babel-preset-stage-2": { 551 | "version": "6.24.1", 552 | "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", 553 | "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", 554 | "dev": true 555 | }, 556 | "babel-preset-stage-3": { 557 | "version": "6.24.1", 558 | "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", 559 | "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", 560 | "dev": true 561 | }, 562 | "babel-register": { 563 | "version": "6.24.1", 564 | "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz", 565 | "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=", 566 | "dev": true 567 | }, 568 | "babel-runtime": { 569 | "version": "6.23.0", 570 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", 571 | "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", 572 | "dev": true 573 | }, 574 | "babel-template": { 575 | "version": "6.25.0", 576 | "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", 577 | "integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=", 578 | "dev": true 579 | }, 580 | "babel-traverse": { 581 | "version": "6.25.0", 582 | "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", 583 | "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=", 584 | "dev": true 585 | }, 586 | "babel-types": { 587 | "version": "6.25.0", 588 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", 589 | "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", 590 | "dev": true 591 | }, 592 | "babylon": { 593 | "version": "6.17.4", 594 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", 595 | "integrity": "sha512-kChlV+0SXkjE0vUn9OZ7pBMWRFd8uq3mZe8x1K6jhuNcAFAtEnjchFAqB+dYEXKyd+JpT6eppRR78QAr5gTsUw==", 596 | "dev": true 597 | }, 598 | "balanced-match": { 599 | "version": "1.0.0", 600 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 601 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 602 | "dev": true 603 | }, 604 | "basic-auth": { 605 | "version": "1.1.0", 606 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz", 607 | "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=" 608 | }, 609 | "bcryptjs": { 610 | "version": "2.4.3", 611 | "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", 612 | "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" 613 | }, 614 | "binary-extensions": { 615 | "version": "1.8.0", 616 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", 617 | "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", 618 | "dev": true 619 | }, 620 | "body-parser": { 621 | "version": "1.17.2", 622 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz", 623 | "integrity": "sha1-+IkqvI+eYn1Crtr7yma/WrmRBO4=" 624 | }, 625 | "brace-expansion": { 626 | "version": "1.1.8", 627 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 628 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 629 | "dev": true 630 | }, 631 | "braces": { 632 | "version": "1.8.5", 633 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 634 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 635 | "dev": true 636 | }, 637 | "bytes": { 638 | "version": "2.4.0", 639 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", 640 | "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=" 641 | }, 642 | "caller-path": { 643 | "version": "0.1.0", 644 | "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", 645 | "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", 646 | "dev": true 647 | }, 648 | "callsites": { 649 | "version": "0.2.0", 650 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", 651 | "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", 652 | "dev": true 653 | }, 654 | "chalk": { 655 | "version": "1.1.3", 656 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 657 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 658 | "dev": true 659 | }, 660 | "chokidar": { 661 | "version": "1.7.0", 662 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", 663 | "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", 664 | "dev": true 665 | }, 666 | "circular-json": { 667 | "version": "0.3.1", 668 | "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz", 669 | "integrity": "sha1-vos2rvzN6LPKeqLWr8B6NyQsDS0=", 670 | "dev": true 671 | }, 672 | "cli-width": { 673 | "version": "2.1.0", 674 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", 675 | "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=", 676 | "dev": true 677 | }, 678 | "co": { 679 | "version": "4.6.0", 680 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 681 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 682 | "dev": true 683 | }, 684 | "commander": { 685 | "version": "2.10.0", 686 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.10.0.tgz", 687 | "integrity": "sha512-q/r9trjmuikWDRJNTBHAVnWhuU6w+z80KgBq7j9YDclik5E7X4xi0KnlZBNFA1zOQ+SH/vHMWd2mC9QTOz7GpA==", 688 | "dev": true 689 | }, 690 | "compressible": { 691 | "version": "2.0.10", 692 | "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.10.tgz", 693 | "integrity": "sha1-/tocf3YXkScyspv4zyYlKiC57s0=" 694 | }, 695 | "compression": { 696 | "version": "1.6.2", 697 | "resolved": "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz", 698 | "integrity": "sha1-zOsSHsydCcUtetDDNQ6pPd1AK8M=", 699 | "dependencies": { 700 | "bytes": { 701 | "version": "2.3.0", 702 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz", 703 | "integrity": "sha1-1baAoWW2IBc5rLYRVCqrwtjOsHA=" 704 | }, 705 | "debug": { 706 | "version": "2.2.0", 707 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", 708 | "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=" 709 | }, 710 | "ms": { 711 | "version": "0.7.1", 712 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", 713 | "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" 714 | } 715 | } 716 | }, 717 | "concat-map": { 718 | "version": "0.0.1", 719 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 720 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 721 | "dev": true 722 | }, 723 | "concat-stream": { 724 | "version": "1.6.0", 725 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", 726 | "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", 727 | "dev": true 728 | }, 729 | "configstore": { 730 | "version": "1.4.0", 731 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz", 732 | "integrity": "sha1-w1eB0FAdJowlxUuLF/YkDopPsCE=", 733 | "dev": true 734 | }, 735 | "content-disposition": { 736 | "version": "0.5.2", 737 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", 738 | "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" 739 | }, 740 | "content-type": { 741 | "version": "1.0.2", 742 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", 743 | "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=" 744 | }, 745 | "convert-source-map": { 746 | "version": "1.5.0", 747 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", 748 | "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", 749 | "dev": true 750 | }, 751 | "cookie": { 752 | "version": "0.3.1", 753 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", 754 | "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" 755 | }, 756 | "cookie-signature": { 757 | "version": "1.0.6", 758 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 759 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 760 | }, 761 | "core-js": { 762 | "version": "2.4.1", 763 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", 764 | "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", 765 | "dev": true 766 | }, 767 | "core-util-is": { 768 | "version": "1.0.2", 769 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 770 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 771 | "dev": true 772 | }, 773 | "cors": { 774 | "version": "2.8.3", 775 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.3.tgz", 776 | "integrity": "sha1-TPeOHSMymnSWsvwiJbd8pbteuAI=" 777 | }, 778 | "debug": { 779 | "version": "2.6.7", 780 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", 781 | "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=" 782 | }, 783 | "deep-extend": { 784 | "version": "0.4.2", 785 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", 786 | "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", 787 | "dev": true 788 | }, 789 | "deep-is": { 790 | "version": "0.1.3", 791 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 792 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 793 | "dev": true 794 | }, 795 | "del": { 796 | "version": "2.2.2", 797 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", 798 | "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", 799 | "dev": true 800 | }, 801 | "depd": { 802 | "version": "1.1.0", 803 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", 804 | "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=" 805 | }, 806 | "destroy": { 807 | "version": "1.0.4", 808 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 809 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 810 | }, 811 | "detect-indent": { 812 | "version": "4.0.0", 813 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", 814 | "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", 815 | "dev": true 816 | }, 817 | "doctrine": { 818 | "version": "2.0.0", 819 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", 820 | "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", 821 | "dev": true 822 | }, 823 | "duplexer": { 824 | "version": "0.1.1", 825 | "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", 826 | "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", 827 | "dev": true 828 | }, 829 | "duplexify": { 830 | "version": "3.5.0", 831 | "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz", 832 | "integrity": "sha1-GqdzAC4VeEV+nZ1KULDMquvL1gQ=", 833 | "dev": true 834 | }, 835 | "ee-first": { 836 | "version": "1.1.1", 837 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 838 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 839 | }, 840 | "encodeurl": { 841 | "version": "1.0.1", 842 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", 843 | "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" 844 | }, 845 | "end-of-stream": { 846 | "version": "1.0.0", 847 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz", 848 | "integrity": "sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4=", 849 | "dev": true, 850 | "dependencies": { 851 | "once": { 852 | "version": "1.3.3", 853 | "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", 854 | "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", 855 | "dev": true 856 | } 857 | } 858 | }, 859 | "es6-promise": { 860 | "version": "3.3.1", 861 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", 862 | "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", 863 | "dev": true 864 | }, 865 | "escape-html": { 866 | "version": "1.0.3", 867 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 868 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 869 | }, 870 | "escape-string-regexp": { 871 | "version": "1.0.5", 872 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 873 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 874 | "dev": true 875 | }, 876 | "eslint": { 877 | "version": "4.0.0", 878 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.0.0.tgz", 879 | "integrity": "sha1-cnfAFDf99B3M0WjVqg5Jt1yh8mA=", 880 | "dev": true, 881 | "dependencies": { 882 | "ansi-escapes": { 883 | "version": "2.0.0", 884 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz", 885 | "integrity": "sha1-W65SvkJIeN2Xg+iRDj/Cki6DyBs=", 886 | "dev": true 887 | }, 888 | "cli-cursor": { 889 | "version": "2.1.0", 890 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 891 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", 892 | "dev": true 893 | }, 894 | "debug": { 895 | "version": "2.6.8", 896 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", 897 | "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", 898 | "dev": true 899 | }, 900 | "figures": { 901 | "version": "2.0.0", 902 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 903 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 904 | "dev": true 905 | }, 906 | "inquirer": { 907 | "version": "3.1.1", 908 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.1.1.tgz", 909 | "integrity": "sha512-H50sHQwgvvaTBd3HpKMVtL/u6LoHDvYym51gd7bGQe/+9HkCE+J0/3N5FJLfd6O6oz44hHewC2Pc2LodzWVafQ==", 910 | "dev": true 911 | }, 912 | "is-fullwidth-code-point": { 913 | "version": "2.0.0", 914 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 915 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 916 | "dev": true 917 | }, 918 | "mute-stream": { 919 | "version": "0.0.7", 920 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 921 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", 922 | "dev": true 923 | }, 924 | "onetime": { 925 | "version": "2.0.1", 926 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 927 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", 928 | "dev": true 929 | }, 930 | "pluralize": { 931 | "version": "4.0.0", 932 | "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-4.0.0.tgz", 933 | "integrity": "sha1-WbcIwcAZCi9pLxx2GMRGsFL9F2I=", 934 | "dev": true 935 | }, 936 | "progress": { 937 | "version": "2.0.0", 938 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", 939 | "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", 940 | "dev": true 941 | }, 942 | "restore-cursor": { 943 | "version": "2.0.0", 944 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 945 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", 946 | "dev": true 947 | }, 948 | "run-async": { 949 | "version": "2.3.0", 950 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", 951 | "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", 952 | "dev": true 953 | }, 954 | "rx-lite": { 955 | "version": "4.0.8", 956 | "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", 957 | "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", 958 | "dev": true 959 | }, 960 | "string-width": { 961 | "version": "2.0.0", 962 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", 963 | "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=", 964 | "dev": true 965 | }, 966 | "table": { 967 | "version": "4.0.1", 968 | "resolved": "https://registry.npmjs.org/table/-/table-4.0.1.tgz", 969 | "integrity": "sha1-qBFsEz+sLGH0pCCrbN9cTWHw5DU=", 970 | "dev": true 971 | } 972 | } 973 | }, 974 | "eslint-scope": { 975 | "version": "3.7.1", 976 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", 977 | "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", 978 | "dev": true 979 | }, 980 | "espree": { 981 | "version": "3.4.3", 982 | "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz", 983 | "integrity": "sha1-KRC1zNSc6JPC//+qtP2LOjG4I3Q=", 984 | "dev": true 985 | }, 986 | "esprima": { 987 | "version": "3.1.3", 988 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", 989 | "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", 990 | "dev": true 991 | }, 992 | "esquery": { 993 | "version": "1.0.0", 994 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", 995 | "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", 996 | "dev": true 997 | }, 998 | "esrecurse": { 999 | "version": "4.2.0", 1000 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", 1001 | "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", 1002 | "dev": true 1003 | }, 1004 | "estraverse": { 1005 | "version": "4.2.0", 1006 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 1007 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 1008 | "dev": true 1009 | }, 1010 | "esutils": { 1011 | "version": "2.0.2", 1012 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 1013 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 1014 | "dev": true 1015 | }, 1016 | "etag": { 1017 | "version": "1.8.0", 1018 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", 1019 | "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=" 1020 | }, 1021 | "event-stream": { 1022 | "version": "3.3.4", 1023 | "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", 1024 | "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", 1025 | "dev": true 1026 | }, 1027 | "expand-brackets": { 1028 | "version": "0.1.5", 1029 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 1030 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 1031 | "dev": true 1032 | }, 1033 | "expand-range": { 1034 | "version": "1.8.2", 1035 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 1036 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 1037 | "dev": true 1038 | }, 1039 | "express": { 1040 | "version": "4.15.3", 1041 | "resolved": "https://registry.npmjs.org/express/-/express-4.15.3.tgz", 1042 | "integrity": "sha1-urZdDwOqgMNYQIly/HAPkWlEtmI=" 1043 | }, 1044 | "external-editor": { 1045 | "version": "2.0.4", 1046 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz", 1047 | "integrity": "sha1-HtkZnanL/i7y96MbL96LDRI2iXI=", 1048 | "dev": true, 1049 | "dependencies": { 1050 | "iconv-lite": { 1051 | "version": "0.4.18", 1052 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", 1053 | "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==", 1054 | "dev": true 1055 | } 1056 | } 1057 | }, 1058 | "extglob": { 1059 | "version": "0.3.2", 1060 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 1061 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 1062 | "dev": true 1063 | }, 1064 | "fast-levenshtein": { 1065 | "version": "2.0.6", 1066 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1067 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 1068 | "dev": true 1069 | }, 1070 | "file-entry-cache": { 1071 | "version": "2.0.0", 1072 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", 1073 | "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", 1074 | "dev": true 1075 | }, 1076 | "filename-regex": { 1077 | "version": "2.0.1", 1078 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 1079 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", 1080 | "dev": true 1081 | }, 1082 | "fill-range": { 1083 | "version": "2.2.3", 1084 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", 1085 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", 1086 | "dev": true 1087 | }, 1088 | "finalhandler": { 1089 | "version": "1.0.3", 1090 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", 1091 | "integrity": "sha1-70fneVDpmXgOhgIqVg4yF+DQzIk=" 1092 | }, 1093 | "flat-cache": { 1094 | "version": "1.2.2", 1095 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", 1096 | "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", 1097 | "dev": true 1098 | }, 1099 | "for-in": { 1100 | "version": "1.0.2", 1101 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1102 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 1103 | "dev": true 1104 | }, 1105 | "for-own": { 1106 | "version": "0.1.5", 1107 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 1108 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 1109 | "dev": true 1110 | }, 1111 | "forwarded": { 1112 | "version": "0.1.0", 1113 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", 1114 | "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=" 1115 | }, 1116 | "fresh": { 1117 | "version": "0.5.0", 1118 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", 1119 | "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=" 1120 | }, 1121 | "from": { 1122 | "version": "0.1.7", 1123 | "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", 1124 | "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", 1125 | "dev": true 1126 | }, 1127 | "fs-readdir-recursive": { 1128 | "version": "1.0.0", 1129 | "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz", 1130 | "integrity": "sha1-jNF0XItPiinIyuw5JHaSG6GV9WA=", 1131 | "dev": true 1132 | }, 1133 | "fs.realpath": { 1134 | "version": "1.0.0", 1135 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1136 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1137 | "dev": true 1138 | }, 1139 | "fsevents": { 1140 | "version": "1.1.2", 1141 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", 1142 | "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", 1143 | "dev": true, 1144 | "optional": true, 1145 | "dependencies": { 1146 | "abbrev": { 1147 | "version": "1.1.0", 1148 | "bundled": true, 1149 | "dev": true, 1150 | "optional": true 1151 | }, 1152 | "ajv": { 1153 | "version": "4.11.8", 1154 | "bundled": true, 1155 | "dev": true, 1156 | "optional": true 1157 | }, 1158 | "ansi-regex": { 1159 | "version": "2.1.1", 1160 | "bundled": true, 1161 | "dev": true 1162 | }, 1163 | "aproba": { 1164 | "version": "1.1.1", 1165 | "bundled": true, 1166 | "dev": true, 1167 | "optional": true 1168 | }, 1169 | "are-we-there-yet": { 1170 | "version": "1.1.4", 1171 | "bundled": true, 1172 | "dev": true, 1173 | "optional": true 1174 | }, 1175 | "asn1": { 1176 | "version": "0.2.3", 1177 | "bundled": true, 1178 | "dev": true, 1179 | "optional": true 1180 | }, 1181 | "assert-plus": { 1182 | "version": "0.2.0", 1183 | "bundled": true, 1184 | "dev": true, 1185 | "optional": true 1186 | }, 1187 | "asynckit": { 1188 | "version": "0.4.0", 1189 | "bundled": true, 1190 | "dev": true, 1191 | "optional": true 1192 | }, 1193 | "aws-sign2": { 1194 | "version": "0.6.0", 1195 | "bundled": true, 1196 | "dev": true, 1197 | "optional": true 1198 | }, 1199 | "aws4": { 1200 | "version": "1.6.0", 1201 | "bundled": true, 1202 | "dev": true, 1203 | "optional": true 1204 | }, 1205 | "balanced-match": { 1206 | "version": "0.4.2", 1207 | "bundled": true, 1208 | "dev": true 1209 | }, 1210 | "bcrypt-pbkdf": { 1211 | "version": "1.0.1", 1212 | "bundled": true, 1213 | "dev": true, 1214 | "optional": true 1215 | }, 1216 | "block-stream": { 1217 | "version": "0.0.9", 1218 | "bundled": true, 1219 | "dev": true 1220 | }, 1221 | "boom": { 1222 | "version": "2.10.1", 1223 | "bundled": true, 1224 | "dev": true 1225 | }, 1226 | "brace-expansion": { 1227 | "version": "1.1.7", 1228 | "bundled": true, 1229 | "dev": true 1230 | }, 1231 | "buffer-shims": { 1232 | "version": "1.0.0", 1233 | "bundled": true, 1234 | "dev": true 1235 | }, 1236 | "caseless": { 1237 | "version": "0.12.0", 1238 | "bundled": true, 1239 | "dev": true, 1240 | "optional": true 1241 | }, 1242 | "co": { 1243 | "version": "4.6.0", 1244 | "bundled": true, 1245 | "dev": true, 1246 | "optional": true 1247 | }, 1248 | "code-point-at": { 1249 | "version": "1.1.0", 1250 | "bundled": true, 1251 | "dev": true 1252 | }, 1253 | "combined-stream": { 1254 | "version": "1.0.5", 1255 | "bundled": true, 1256 | "dev": true 1257 | }, 1258 | "concat-map": { 1259 | "version": "0.0.1", 1260 | "bundled": true, 1261 | "dev": true 1262 | }, 1263 | "console-control-strings": { 1264 | "version": "1.1.0", 1265 | "bundled": true, 1266 | "dev": true 1267 | }, 1268 | "core-util-is": { 1269 | "version": "1.0.2", 1270 | "bundled": true, 1271 | "dev": true 1272 | }, 1273 | "cryptiles": { 1274 | "version": "2.0.5", 1275 | "bundled": true, 1276 | "dev": true, 1277 | "optional": true 1278 | }, 1279 | "dashdash": { 1280 | "version": "1.14.1", 1281 | "bundled": true, 1282 | "dev": true, 1283 | "optional": true, 1284 | "dependencies": { 1285 | "assert-plus": { 1286 | "version": "1.0.0", 1287 | "bundled": true, 1288 | "dev": true, 1289 | "optional": true 1290 | } 1291 | } 1292 | }, 1293 | "debug": { 1294 | "version": "2.6.8", 1295 | "bundled": true, 1296 | "dev": true, 1297 | "optional": true 1298 | }, 1299 | "deep-extend": { 1300 | "version": "0.4.2", 1301 | "bundled": true, 1302 | "dev": true, 1303 | "optional": true 1304 | }, 1305 | "delayed-stream": { 1306 | "version": "1.0.0", 1307 | "bundled": true, 1308 | "dev": true 1309 | }, 1310 | "delegates": { 1311 | "version": "1.0.0", 1312 | "bundled": true, 1313 | "dev": true, 1314 | "optional": true 1315 | }, 1316 | "ecc-jsbn": { 1317 | "version": "0.1.1", 1318 | "bundled": true, 1319 | "dev": true, 1320 | "optional": true 1321 | }, 1322 | "extend": { 1323 | "version": "3.0.1", 1324 | "bundled": true, 1325 | "dev": true, 1326 | "optional": true 1327 | }, 1328 | "extsprintf": { 1329 | "version": "1.0.2", 1330 | "bundled": true, 1331 | "dev": true 1332 | }, 1333 | "forever-agent": { 1334 | "version": "0.6.1", 1335 | "bundled": true, 1336 | "dev": true, 1337 | "optional": true 1338 | }, 1339 | "form-data": { 1340 | "version": "2.1.4", 1341 | "bundled": true, 1342 | "dev": true, 1343 | "optional": true 1344 | }, 1345 | "fs.realpath": { 1346 | "version": "1.0.0", 1347 | "bundled": true, 1348 | "dev": true 1349 | }, 1350 | "fstream": { 1351 | "version": "1.0.11", 1352 | "bundled": true, 1353 | "dev": true 1354 | }, 1355 | "fstream-ignore": { 1356 | "version": "1.0.5", 1357 | "bundled": true, 1358 | "dev": true, 1359 | "optional": true 1360 | }, 1361 | "gauge": { 1362 | "version": "2.7.4", 1363 | "bundled": true, 1364 | "dev": true, 1365 | "optional": true 1366 | }, 1367 | "getpass": { 1368 | "version": "0.1.7", 1369 | "bundled": true, 1370 | "dev": true, 1371 | "optional": true, 1372 | "dependencies": { 1373 | "assert-plus": { 1374 | "version": "1.0.0", 1375 | "bundled": true, 1376 | "dev": true, 1377 | "optional": true 1378 | } 1379 | } 1380 | }, 1381 | "glob": { 1382 | "version": "7.1.2", 1383 | "bundled": true, 1384 | "dev": true 1385 | }, 1386 | "graceful-fs": { 1387 | "version": "4.1.11", 1388 | "bundled": true, 1389 | "dev": true 1390 | }, 1391 | "har-schema": { 1392 | "version": "1.0.5", 1393 | "bundled": true, 1394 | "dev": true, 1395 | "optional": true 1396 | }, 1397 | "har-validator": { 1398 | "version": "4.2.1", 1399 | "bundled": true, 1400 | "dev": true, 1401 | "optional": true 1402 | }, 1403 | "has-unicode": { 1404 | "version": "2.0.1", 1405 | "bundled": true, 1406 | "dev": true, 1407 | "optional": true 1408 | }, 1409 | "hawk": { 1410 | "version": "3.1.3", 1411 | "bundled": true, 1412 | "dev": true, 1413 | "optional": true 1414 | }, 1415 | "hoek": { 1416 | "version": "2.16.3", 1417 | "bundled": true, 1418 | "dev": true 1419 | }, 1420 | "http-signature": { 1421 | "version": "1.1.1", 1422 | "bundled": true, 1423 | "dev": true, 1424 | "optional": true 1425 | }, 1426 | "inflight": { 1427 | "version": "1.0.6", 1428 | "bundled": true, 1429 | "dev": true 1430 | }, 1431 | "inherits": { 1432 | "version": "2.0.3", 1433 | "bundled": true, 1434 | "dev": true 1435 | }, 1436 | "ini": { 1437 | "version": "1.3.4", 1438 | "bundled": true, 1439 | "dev": true, 1440 | "optional": true 1441 | }, 1442 | "is-fullwidth-code-point": { 1443 | "version": "1.0.0", 1444 | "bundled": true, 1445 | "dev": true 1446 | }, 1447 | "is-typedarray": { 1448 | "version": "1.0.0", 1449 | "bundled": true, 1450 | "dev": true, 1451 | "optional": true 1452 | }, 1453 | "isarray": { 1454 | "version": "1.0.0", 1455 | "bundled": true, 1456 | "dev": true 1457 | }, 1458 | "isstream": { 1459 | "version": "0.1.2", 1460 | "bundled": true, 1461 | "dev": true, 1462 | "optional": true 1463 | }, 1464 | "jodid25519": { 1465 | "version": "1.0.2", 1466 | "bundled": true, 1467 | "dev": true, 1468 | "optional": true 1469 | }, 1470 | "jsbn": { 1471 | "version": "0.1.1", 1472 | "bundled": true, 1473 | "dev": true, 1474 | "optional": true 1475 | }, 1476 | "json-schema": { 1477 | "version": "0.2.3", 1478 | "bundled": true, 1479 | "dev": true, 1480 | "optional": true 1481 | }, 1482 | "json-stable-stringify": { 1483 | "version": "1.0.1", 1484 | "bundled": true, 1485 | "dev": true, 1486 | "optional": true 1487 | }, 1488 | "json-stringify-safe": { 1489 | "version": "5.0.1", 1490 | "bundled": true, 1491 | "dev": true, 1492 | "optional": true 1493 | }, 1494 | "jsonify": { 1495 | "version": "0.0.0", 1496 | "bundled": true, 1497 | "dev": true, 1498 | "optional": true 1499 | }, 1500 | "jsprim": { 1501 | "version": "1.4.0", 1502 | "bundled": true, 1503 | "dev": true, 1504 | "optional": true, 1505 | "dependencies": { 1506 | "assert-plus": { 1507 | "version": "1.0.0", 1508 | "bundled": true, 1509 | "dev": true, 1510 | "optional": true 1511 | } 1512 | } 1513 | }, 1514 | "mime-db": { 1515 | "version": "1.27.0", 1516 | "bundled": true, 1517 | "dev": true 1518 | }, 1519 | "mime-types": { 1520 | "version": "2.1.15", 1521 | "bundled": true, 1522 | "dev": true 1523 | }, 1524 | "minimatch": { 1525 | "version": "3.0.4", 1526 | "bundled": true, 1527 | "dev": true 1528 | }, 1529 | "minimist": { 1530 | "version": "0.0.8", 1531 | "bundled": true, 1532 | "dev": true 1533 | }, 1534 | "mkdirp": { 1535 | "version": "0.5.1", 1536 | "bundled": true, 1537 | "dev": true 1538 | }, 1539 | "ms": { 1540 | "version": "2.0.0", 1541 | "bundled": true, 1542 | "dev": true, 1543 | "optional": true 1544 | }, 1545 | "node-pre-gyp": { 1546 | "version": "0.6.36", 1547 | "bundled": true, 1548 | "dev": true, 1549 | "optional": true 1550 | }, 1551 | "nopt": { 1552 | "version": "4.0.1", 1553 | "bundled": true, 1554 | "dev": true, 1555 | "optional": true 1556 | }, 1557 | "npmlog": { 1558 | "version": "4.1.0", 1559 | "bundled": true, 1560 | "dev": true, 1561 | "optional": true 1562 | }, 1563 | "number-is-nan": { 1564 | "version": "1.0.1", 1565 | "bundled": true, 1566 | "dev": true 1567 | }, 1568 | "oauth-sign": { 1569 | "version": "0.8.2", 1570 | "bundled": true, 1571 | "dev": true, 1572 | "optional": true 1573 | }, 1574 | "object-assign": { 1575 | "version": "4.1.1", 1576 | "bundled": true, 1577 | "dev": true, 1578 | "optional": true 1579 | }, 1580 | "once": { 1581 | "version": "1.4.0", 1582 | "bundled": true, 1583 | "dev": true 1584 | }, 1585 | "os-homedir": { 1586 | "version": "1.0.2", 1587 | "bundled": true, 1588 | "dev": true, 1589 | "optional": true 1590 | }, 1591 | "os-tmpdir": { 1592 | "version": "1.0.2", 1593 | "bundled": true, 1594 | "dev": true, 1595 | "optional": true 1596 | }, 1597 | "osenv": { 1598 | "version": "0.1.4", 1599 | "bundled": true, 1600 | "dev": true, 1601 | "optional": true 1602 | }, 1603 | "path-is-absolute": { 1604 | "version": "1.0.1", 1605 | "bundled": true, 1606 | "dev": true 1607 | }, 1608 | "performance-now": { 1609 | "version": "0.2.0", 1610 | "bundled": true, 1611 | "dev": true, 1612 | "optional": true 1613 | }, 1614 | "process-nextick-args": { 1615 | "version": "1.0.7", 1616 | "bundled": true, 1617 | "dev": true 1618 | }, 1619 | "punycode": { 1620 | "version": "1.4.1", 1621 | "bundled": true, 1622 | "dev": true, 1623 | "optional": true 1624 | }, 1625 | "qs": { 1626 | "version": "6.4.0", 1627 | "bundled": true, 1628 | "dev": true, 1629 | "optional": true 1630 | }, 1631 | "rc": { 1632 | "version": "1.2.1", 1633 | "bundled": true, 1634 | "dev": true, 1635 | "optional": true, 1636 | "dependencies": { 1637 | "minimist": { 1638 | "version": "1.2.0", 1639 | "bundled": true, 1640 | "dev": true, 1641 | "optional": true 1642 | } 1643 | } 1644 | }, 1645 | "readable-stream": { 1646 | "version": "2.2.9", 1647 | "bundled": true, 1648 | "dev": true 1649 | }, 1650 | "request": { 1651 | "version": "2.81.0", 1652 | "bundled": true, 1653 | "dev": true, 1654 | "optional": true 1655 | }, 1656 | "rimraf": { 1657 | "version": "2.6.1", 1658 | "bundled": true, 1659 | "dev": true 1660 | }, 1661 | "safe-buffer": { 1662 | "version": "5.0.1", 1663 | "bundled": true, 1664 | "dev": true 1665 | }, 1666 | "semver": { 1667 | "version": "5.3.0", 1668 | "bundled": true, 1669 | "dev": true, 1670 | "optional": true 1671 | }, 1672 | "set-blocking": { 1673 | "version": "2.0.0", 1674 | "bundled": true, 1675 | "dev": true, 1676 | "optional": true 1677 | }, 1678 | "signal-exit": { 1679 | "version": "3.0.2", 1680 | "bundled": true, 1681 | "dev": true, 1682 | "optional": true 1683 | }, 1684 | "sntp": { 1685 | "version": "1.0.9", 1686 | "bundled": true, 1687 | "dev": true, 1688 | "optional": true 1689 | }, 1690 | "sshpk": { 1691 | "version": "1.13.0", 1692 | "bundled": true, 1693 | "dev": true, 1694 | "optional": true, 1695 | "dependencies": { 1696 | "assert-plus": { 1697 | "version": "1.0.0", 1698 | "bundled": true, 1699 | "dev": true, 1700 | "optional": true 1701 | } 1702 | } 1703 | }, 1704 | "string_decoder": { 1705 | "version": "1.0.1", 1706 | "bundled": true, 1707 | "dev": true 1708 | }, 1709 | "string-width": { 1710 | "version": "1.0.2", 1711 | "bundled": true, 1712 | "dev": true 1713 | }, 1714 | "stringstream": { 1715 | "version": "0.0.5", 1716 | "bundled": true, 1717 | "dev": true, 1718 | "optional": true 1719 | }, 1720 | "strip-ansi": { 1721 | "version": "3.0.1", 1722 | "bundled": true, 1723 | "dev": true 1724 | }, 1725 | "strip-json-comments": { 1726 | "version": "2.0.1", 1727 | "bundled": true, 1728 | "dev": true, 1729 | "optional": true 1730 | }, 1731 | "tar": { 1732 | "version": "2.2.1", 1733 | "bundled": true, 1734 | "dev": true 1735 | }, 1736 | "tar-pack": { 1737 | "version": "3.4.0", 1738 | "bundled": true, 1739 | "dev": true, 1740 | "optional": true 1741 | }, 1742 | "tough-cookie": { 1743 | "version": "2.3.2", 1744 | "bundled": true, 1745 | "dev": true, 1746 | "optional": true 1747 | }, 1748 | "tunnel-agent": { 1749 | "version": "0.6.0", 1750 | "bundled": true, 1751 | "dev": true, 1752 | "optional": true 1753 | }, 1754 | "tweetnacl": { 1755 | "version": "0.14.5", 1756 | "bundled": true, 1757 | "dev": true, 1758 | "optional": true 1759 | }, 1760 | "uid-number": { 1761 | "version": "0.0.6", 1762 | "bundled": true, 1763 | "dev": true, 1764 | "optional": true 1765 | }, 1766 | "util-deprecate": { 1767 | "version": "1.0.2", 1768 | "bundled": true, 1769 | "dev": true 1770 | }, 1771 | "uuid": { 1772 | "version": "3.0.1", 1773 | "bundled": true, 1774 | "dev": true, 1775 | "optional": true 1776 | }, 1777 | "verror": { 1778 | "version": "1.3.6", 1779 | "bundled": true, 1780 | "dev": true, 1781 | "optional": true 1782 | }, 1783 | "wide-align": { 1784 | "version": "1.1.2", 1785 | "bundled": true, 1786 | "dev": true, 1787 | "optional": true 1788 | }, 1789 | "wrappy": { 1790 | "version": "1.0.2", 1791 | "bundled": true, 1792 | "dev": true 1793 | } 1794 | } 1795 | }, 1796 | "generate-function": { 1797 | "version": "2.0.0", 1798 | "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", 1799 | "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", 1800 | "dev": true 1801 | }, 1802 | "generate-object-property": { 1803 | "version": "1.2.0", 1804 | "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", 1805 | "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", 1806 | "dev": true 1807 | }, 1808 | "glob": { 1809 | "version": "7.1.2", 1810 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 1811 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 1812 | "dev": true 1813 | }, 1814 | "glob-base": { 1815 | "version": "0.3.0", 1816 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 1817 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 1818 | "dev": true 1819 | }, 1820 | "glob-parent": { 1821 | "version": "2.0.0", 1822 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 1823 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 1824 | "dev": true 1825 | }, 1826 | "globals": { 1827 | "version": "9.18.0", 1828 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", 1829 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", 1830 | "dev": true 1831 | }, 1832 | "globby": { 1833 | "version": "5.0.0", 1834 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", 1835 | "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", 1836 | "dev": true 1837 | }, 1838 | "got": { 1839 | "version": "3.3.1", 1840 | "resolved": "https://registry.npmjs.org/got/-/got-3.3.1.tgz", 1841 | "integrity": "sha1-5dDtSvVfw+701WAHdp2YGSvLLso=", 1842 | "dev": true, 1843 | "dependencies": { 1844 | "object-assign": { 1845 | "version": "3.0.0", 1846 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", 1847 | "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", 1848 | "dev": true 1849 | } 1850 | } 1851 | }, 1852 | "graceful-fs": { 1853 | "version": "4.1.11", 1854 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 1855 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 1856 | "dev": true 1857 | }, 1858 | "graceful-readlink": { 1859 | "version": "1.0.1", 1860 | "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", 1861 | "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", 1862 | "dev": true 1863 | }, 1864 | "has-ansi": { 1865 | "version": "2.0.0", 1866 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 1867 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 1868 | "dev": true 1869 | }, 1870 | "home-or-tmp": { 1871 | "version": "2.0.0", 1872 | "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", 1873 | "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", 1874 | "dev": true 1875 | }, 1876 | "http-auth": { 1877 | "version": "3.1.3", 1878 | "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-3.1.3.tgz", 1879 | "integrity": "sha1-lFz63WZSHq+PfISRPTd9exXyTjE=", 1880 | "dependencies": { 1881 | "uuid": { 1882 | "version": "3.1.0", 1883 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", 1884 | "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" 1885 | } 1886 | } 1887 | }, 1888 | "http-errors": { 1889 | "version": "1.6.1", 1890 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", 1891 | "integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc=" 1892 | }, 1893 | "iconv-lite": { 1894 | "version": "0.4.15", 1895 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", 1896 | "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=" 1897 | }, 1898 | "ignore": { 1899 | "version": "3.3.3", 1900 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz", 1901 | "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=", 1902 | "dev": true 1903 | }, 1904 | "ignore-by-default": { 1905 | "version": "1.0.1", 1906 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", 1907 | "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", 1908 | "dev": true 1909 | }, 1910 | "imurmurhash": { 1911 | "version": "0.1.4", 1912 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1913 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 1914 | "dev": true 1915 | }, 1916 | "infinity-agent": { 1917 | "version": "2.0.3", 1918 | "resolved": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz", 1919 | "integrity": "sha1-ReDi/3qesDCyfWK3SzdEt6esQhY=", 1920 | "dev": true 1921 | }, 1922 | "inflight": { 1923 | "version": "1.0.6", 1924 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1925 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1926 | "dev": true 1927 | }, 1928 | "inherits": { 1929 | "version": "2.0.3", 1930 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1931 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1932 | }, 1933 | "ini": { 1934 | "version": "1.3.4", 1935 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", 1936 | "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", 1937 | "dev": true 1938 | }, 1939 | "invariant": { 1940 | "version": "2.2.2", 1941 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", 1942 | "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", 1943 | "dev": true 1944 | }, 1945 | "ipaddr.js": { 1946 | "version": "1.3.0", 1947 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.3.0.tgz", 1948 | "integrity": "sha1-HgOlL9rYOou7KyXL9JmLTP/NPew=" 1949 | }, 1950 | "is-binary-path": { 1951 | "version": "1.0.1", 1952 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 1953 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 1954 | "dev": true 1955 | }, 1956 | "is-buffer": { 1957 | "version": "1.1.5", 1958 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", 1959 | "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", 1960 | "dev": true 1961 | }, 1962 | "is-dotfile": { 1963 | "version": "1.0.3", 1964 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 1965 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", 1966 | "dev": true 1967 | }, 1968 | "is-equal-shallow": { 1969 | "version": "0.1.3", 1970 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 1971 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 1972 | "dev": true 1973 | }, 1974 | "is-extendable": { 1975 | "version": "0.1.1", 1976 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 1977 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 1978 | "dev": true 1979 | }, 1980 | "is-extglob": { 1981 | "version": "1.0.0", 1982 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 1983 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 1984 | "dev": true 1985 | }, 1986 | "is-finite": { 1987 | "version": "1.0.2", 1988 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 1989 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 1990 | "dev": true 1991 | }, 1992 | "is-glob": { 1993 | "version": "2.0.1", 1994 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 1995 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 1996 | "dev": true 1997 | }, 1998 | "is-my-json-valid": { 1999 | "version": "2.16.0", 2000 | "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", 2001 | "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", 2002 | "dev": true 2003 | }, 2004 | "is-npm": { 2005 | "version": "1.0.0", 2006 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", 2007 | "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", 2008 | "dev": true 2009 | }, 2010 | "is-number": { 2011 | "version": "2.1.0", 2012 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 2013 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 2014 | "dev": true 2015 | }, 2016 | "is-path-cwd": { 2017 | "version": "1.0.0", 2018 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 2019 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", 2020 | "dev": true 2021 | }, 2022 | "is-path-in-cwd": { 2023 | "version": "1.0.0", 2024 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", 2025 | "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", 2026 | "dev": true 2027 | }, 2028 | "is-path-inside": { 2029 | "version": "1.0.0", 2030 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", 2031 | "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", 2032 | "dev": true 2033 | }, 2034 | "is-posix-bracket": { 2035 | "version": "0.1.1", 2036 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 2037 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", 2038 | "dev": true 2039 | }, 2040 | "is-primitive": { 2041 | "version": "2.0.0", 2042 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 2043 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", 2044 | "dev": true 2045 | }, 2046 | "is-promise": { 2047 | "version": "2.1.0", 2048 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", 2049 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", 2050 | "dev": true 2051 | }, 2052 | "is-property": { 2053 | "version": "1.0.2", 2054 | "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", 2055 | "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", 2056 | "dev": true 2057 | }, 2058 | "is-redirect": { 2059 | "version": "1.0.0", 2060 | "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", 2061 | "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", 2062 | "dev": true 2063 | }, 2064 | "is-resolvable": { 2065 | "version": "1.0.0", 2066 | "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", 2067 | "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", 2068 | "dev": true 2069 | }, 2070 | "is-stream": { 2071 | "version": "1.1.0", 2072 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 2073 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 2074 | "dev": true 2075 | }, 2076 | "isarray": { 2077 | "version": "1.0.0", 2078 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2079 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 2080 | "dev": true 2081 | }, 2082 | "isobject": { 2083 | "version": "2.1.0", 2084 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 2085 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 2086 | "dev": true 2087 | }, 2088 | "js-tokens": { 2089 | "version": "3.0.1", 2090 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", 2091 | "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=", 2092 | "dev": true 2093 | }, 2094 | "js-yaml": { 2095 | "version": "3.8.4", 2096 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.4.tgz", 2097 | "integrity": "sha1-UgtFZPhlc7qWZir4Woyvp7S1pvY=", 2098 | "dev": true 2099 | }, 2100 | "jschardet": { 2101 | "version": "1.4.2", 2102 | "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.4.2.tgz", 2103 | "integrity": "sha1-KqEH8UKvQSHRRWWdRPUIMJYeaZo=", 2104 | "dev": true 2105 | }, 2106 | "jsesc": { 2107 | "version": "1.3.0", 2108 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", 2109 | "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", 2110 | "dev": true 2111 | }, 2112 | "json-stable-stringify": { 2113 | "version": "1.0.1", 2114 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", 2115 | "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", 2116 | "dev": true 2117 | }, 2118 | "json5": { 2119 | "version": "0.5.1", 2120 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", 2121 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", 2122 | "dev": true 2123 | }, 2124 | "jsonify": { 2125 | "version": "0.0.0", 2126 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 2127 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", 2128 | "dev": true 2129 | }, 2130 | "jsonpointer": { 2131 | "version": "4.0.1", 2132 | "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", 2133 | "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", 2134 | "dev": true 2135 | }, 2136 | "kind-of": { 2137 | "version": "3.2.2", 2138 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2139 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2140 | "dev": true 2141 | }, 2142 | "latest-version": { 2143 | "version": "1.0.1", 2144 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz", 2145 | "integrity": "sha1-cs/Ebj6NG+ZR4eu1Tqn26pbzdLs=", 2146 | "dev": true 2147 | }, 2148 | "levn": { 2149 | "version": "0.3.0", 2150 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 2151 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 2152 | "dev": true 2153 | }, 2154 | "lodash": { 2155 | "version": "4.17.4", 2156 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", 2157 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", 2158 | "dev": true 2159 | }, 2160 | "lodash._baseassign": { 2161 | "version": "3.2.0", 2162 | "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", 2163 | "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", 2164 | "dev": true 2165 | }, 2166 | "lodash._basecopy": { 2167 | "version": "3.0.1", 2168 | "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", 2169 | "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", 2170 | "dev": true 2171 | }, 2172 | "lodash._bindcallback": { 2173 | "version": "3.0.1", 2174 | "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", 2175 | "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", 2176 | "dev": true 2177 | }, 2178 | "lodash._createassigner": { 2179 | "version": "3.1.1", 2180 | "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", 2181 | "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", 2182 | "dev": true 2183 | }, 2184 | "lodash._getnative": { 2185 | "version": "3.9.1", 2186 | "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", 2187 | "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", 2188 | "dev": true 2189 | }, 2190 | "lodash._isiterateecall": { 2191 | "version": "3.0.9", 2192 | "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", 2193 | "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", 2194 | "dev": true 2195 | }, 2196 | "lodash.assign": { 2197 | "version": "3.2.0", 2198 | "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", 2199 | "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", 2200 | "dev": true 2201 | }, 2202 | "lodash.defaults": { 2203 | "version": "3.1.2", 2204 | "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz", 2205 | "integrity": "sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw=", 2206 | "dev": true 2207 | }, 2208 | "lodash.isarguments": { 2209 | "version": "3.1.0", 2210 | "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", 2211 | "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", 2212 | "dev": true 2213 | }, 2214 | "lodash.isarray": { 2215 | "version": "3.0.4", 2216 | "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", 2217 | "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", 2218 | "dev": true 2219 | }, 2220 | "lodash.keys": { 2221 | "version": "3.1.2", 2222 | "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", 2223 | "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", 2224 | "dev": true 2225 | }, 2226 | "lodash.restparam": { 2227 | "version": "3.6.1", 2228 | "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", 2229 | "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", 2230 | "dev": true 2231 | }, 2232 | "loose-envify": { 2233 | "version": "1.3.1", 2234 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", 2235 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", 2236 | "dev": true 2237 | }, 2238 | "lowercase-keys": { 2239 | "version": "1.0.0", 2240 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", 2241 | "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", 2242 | "dev": true 2243 | }, 2244 | "map-stream": { 2245 | "version": "0.1.0", 2246 | "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", 2247 | "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", 2248 | "dev": true 2249 | }, 2250 | "media-typer": { 2251 | "version": "0.3.0", 2252 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 2253 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 2254 | }, 2255 | "merge-descriptors": { 2256 | "version": "1.0.1", 2257 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 2258 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 2259 | }, 2260 | "methods": { 2261 | "version": "1.1.2", 2262 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 2263 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 2264 | }, 2265 | "micromatch": { 2266 | "version": "2.3.11", 2267 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 2268 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 2269 | "dev": true 2270 | }, 2271 | "mime": { 2272 | "version": "1.3.4", 2273 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", 2274 | "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" 2275 | }, 2276 | "mime-db": { 2277 | "version": "1.27.0", 2278 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", 2279 | "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" 2280 | }, 2281 | "mime-types": { 2282 | "version": "2.1.15", 2283 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", 2284 | "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=" 2285 | }, 2286 | "mimic-fn": { 2287 | "version": "1.1.0", 2288 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", 2289 | "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", 2290 | "dev": true 2291 | }, 2292 | "minimatch": { 2293 | "version": "3.0.4", 2294 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2295 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2296 | "dev": true 2297 | }, 2298 | "minimist": { 2299 | "version": "0.0.8", 2300 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 2301 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 2302 | "dev": true 2303 | }, 2304 | "mkdirp": { 2305 | "version": "0.5.1", 2306 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 2307 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 2308 | "dev": true 2309 | }, 2310 | "morgan": { 2311 | "version": "1.8.2", 2312 | "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.8.2.tgz", 2313 | "integrity": "sha1-eErHc05KRTqcbm6GgKkyknXItoc=", 2314 | "dependencies": { 2315 | "debug": { 2316 | "version": "2.6.8", 2317 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", 2318 | "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=" 2319 | } 2320 | } 2321 | }, 2322 | "ms": { 2323 | "version": "2.0.0", 2324 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2325 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 2326 | }, 2327 | "nan": { 2328 | "version": "2.6.2", 2329 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", 2330 | "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", 2331 | "dev": true, 2332 | "optional": true 2333 | }, 2334 | "natural-compare": { 2335 | "version": "1.4.0", 2336 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 2337 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 2338 | "dev": true 2339 | }, 2340 | "negotiator": { 2341 | "version": "0.6.1", 2342 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", 2343 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" 2344 | }, 2345 | "nested-error-stacks": { 2346 | "version": "1.0.2", 2347 | "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz", 2348 | "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=", 2349 | "dev": true 2350 | }, 2351 | "nodemon": { 2352 | "version": "1.11.0", 2353 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.11.0.tgz", 2354 | "integrity": "sha1-ImxWK9KnsT09dRi0mtSCijYj0Gw=", 2355 | "dev": true 2356 | }, 2357 | "nopt": { 2358 | "version": "1.0.10", 2359 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", 2360 | "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", 2361 | "dev": true 2362 | }, 2363 | "normalize-path": { 2364 | "version": "2.1.1", 2365 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 2366 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 2367 | "dev": true 2368 | }, 2369 | "number-is-nan": { 2370 | "version": "1.0.1", 2371 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 2372 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 2373 | "dev": true 2374 | }, 2375 | "object-assign": { 2376 | "version": "4.1.1", 2377 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2378 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 2379 | }, 2380 | "object.omit": { 2381 | "version": "2.0.1", 2382 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 2383 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 2384 | "dev": true 2385 | }, 2386 | "on-finished": { 2387 | "version": "2.3.0", 2388 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 2389 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=" 2390 | }, 2391 | "on-headers": { 2392 | "version": "1.0.1", 2393 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", 2394 | "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" 2395 | }, 2396 | "once": { 2397 | "version": "1.4.0", 2398 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2399 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2400 | "dev": true 2401 | }, 2402 | "optionator": { 2403 | "version": "0.8.2", 2404 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 2405 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 2406 | "dev": true 2407 | }, 2408 | "os-homedir": { 2409 | "version": "1.0.2", 2410 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 2411 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 2412 | "dev": true 2413 | }, 2414 | "os-tmpdir": { 2415 | "version": "1.0.2", 2416 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 2417 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 2418 | "dev": true 2419 | }, 2420 | "osenv": { 2421 | "version": "0.1.4", 2422 | "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", 2423 | "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", 2424 | "dev": true 2425 | }, 2426 | "output-file-sync": { 2427 | "version": "1.1.2", 2428 | "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", 2429 | "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", 2430 | "dev": true 2431 | }, 2432 | "package-json": { 2433 | "version": "1.2.0", 2434 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz", 2435 | "integrity": "sha1-yOysCUInzfdqMWh07QXifMk5oOA=", 2436 | "dev": true 2437 | }, 2438 | "parse-glob": { 2439 | "version": "3.0.4", 2440 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 2441 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 2442 | "dev": true 2443 | }, 2444 | "parseurl": { 2445 | "version": "1.3.1", 2446 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", 2447 | "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=" 2448 | }, 2449 | "path-is-absolute": { 2450 | "version": "1.0.1", 2451 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2452 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2453 | "dev": true 2454 | }, 2455 | "path-is-inside": { 2456 | "version": "1.0.2", 2457 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 2458 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 2459 | "dev": true 2460 | }, 2461 | "path-to-regexp": { 2462 | "version": "0.1.7", 2463 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 2464 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 2465 | }, 2466 | "pause-stream": { 2467 | "version": "0.0.11", 2468 | "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", 2469 | "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", 2470 | "dev": true 2471 | }, 2472 | "pify": { 2473 | "version": "2.3.0", 2474 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 2475 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 2476 | "dev": true 2477 | }, 2478 | "pinkie": { 2479 | "version": "2.0.4", 2480 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 2481 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 2482 | "dev": true 2483 | }, 2484 | "pinkie-promise": { 2485 | "version": "2.0.1", 2486 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 2487 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 2488 | "dev": true 2489 | }, 2490 | "prelude-ls": { 2491 | "version": "1.1.2", 2492 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 2493 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 2494 | "dev": true 2495 | }, 2496 | "prepend-http": { 2497 | "version": "1.0.4", 2498 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", 2499 | "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", 2500 | "dev": true 2501 | }, 2502 | "preserve": { 2503 | "version": "0.2.0", 2504 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 2505 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", 2506 | "dev": true 2507 | }, 2508 | "private": { 2509 | "version": "0.1.7", 2510 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", 2511 | "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=", 2512 | "dev": true 2513 | }, 2514 | "process-nextick-args": { 2515 | "version": "1.0.7", 2516 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 2517 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", 2518 | "dev": true 2519 | }, 2520 | "proxy-addr": { 2521 | "version": "1.1.4", 2522 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.4.tgz", 2523 | "integrity": "sha1-J+VF9pYKRKYn2bREZ+NcG2tM4vM=" 2524 | }, 2525 | "ps-tree": { 2526 | "version": "1.1.0", 2527 | "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz", 2528 | "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", 2529 | "dev": true 2530 | }, 2531 | "qs": { 2532 | "version": "6.4.0", 2533 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", 2534 | "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" 2535 | }, 2536 | "randomatic": { 2537 | "version": "1.1.7", 2538 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", 2539 | "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", 2540 | "dev": true, 2541 | "dependencies": { 2542 | "is-number": { 2543 | "version": "3.0.0", 2544 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 2545 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 2546 | "dev": true, 2547 | "dependencies": { 2548 | "kind-of": { 2549 | "version": "3.2.2", 2550 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2551 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2552 | "dev": true 2553 | } 2554 | } 2555 | }, 2556 | "kind-of": { 2557 | "version": "4.0.0", 2558 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 2559 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 2560 | "dev": true 2561 | } 2562 | } 2563 | }, 2564 | "range-parser": { 2565 | "version": "1.2.0", 2566 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", 2567 | "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" 2568 | }, 2569 | "raw-body": { 2570 | "version": "2.2.0", 2571 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz", 2572 | "integrity": "sha1-mUl2z2pQlqQRYoQEkvC9xdbn+5Y=" 2573 | }, 2574 | "rc": { 2575 | "version": "1.2.1", 2576 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", 2577 | "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", 2578 | "dev": true, 2579 | "dependencies": { 2580 | "minimist": { 2581 | "version": "1.2.0", 2582 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 2583 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 2584 | "dev": true 2585 | } 2586 | } 2587 | }, 2588 | "read-all-stream": { 2589 | "version": "3.1.0", 2590 | "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", 2591 | "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=", 2592 | "dev": true 2593 | }, 2594 | "readable-stream": { 2595 | "version": "2.3.2", 2596 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz", 2597 | "integrity": "sha1-WgTfBeT1f+Pw3Gj90R3FyXx+b00=", 2598 | "dev": true 2599 | }, 2600 | "readdirp": { 2601 | "version": "2.1.0", 2602 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", 2603 | "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", 2604 | "dev": true 2605 | }, 2606 | "regenerate": { 2607 | "version": "1.3.2", 2608 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", 2609 | "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=", 2610 | "dev": true 2611 | }, 2612 | "regenerator-runtime": { 2613 | "version": "0.10.5", 2614 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", 2615 | "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", 2616 | "dev": true 2617 | }, 2618 | "regenerator-transform": { 2619 | "version": "0.9.11", 2620 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz", 2621 | "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=", 2622 | "dev": true 2623 | }, 2624 | "regex-cache": { 2625 | "version": "0.4.3", 2626 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", 2627 | "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", 2628 | "dev": true 2629 | }, 2630 | "regexpu-core": { 2631 | "version": "2.0.0", 2632 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", 2633 | "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", 2634 | "dev": true 2635 | }, 2636 | "registry-url": { 2637 | "version": "3.1.0", 2638 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", 2639 | "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", 2640 | "dev": true 2641 | }, 2642 | "regjsgen": { 2643 | "version": "0.2.0", 2644 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", 2645 | "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", 2646 | "dev": true 2647 | }, 2648 | "regjsparser": { 2649 | "version": "0.1.5", 2650 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", 2651 | "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", 2652 | "dev": true, 2653 | "dependencies": { 2654 | "jsesc": { 2655 | "version": "0.5.0", 2656 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", 2657 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", 2658 | "dev": true 2659 | } 2660 | } 2661 | }, 2662 | "remove-trailing-separator": { 2663 | "version": "1.0.2", 2664 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", 2665 | "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", 2666 | "dev": true 2667 | }, 2668 | "repeat-element": { 2669 | "version": "1.1.2", 2670 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 2671 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", 2672 | "dev": true 2673 | }, 2674 | "repeat-string": { 2675 | "version": "1.6.1", 2676 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 2677 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 2678 | "dev": true 2679 | }, 2680 | "repeating": { 2681 | "version": "2.0.1", 2682 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 2683 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 2684 | "dev": true 2685 | }, 2686 | "require-uncached": { 2687 | "version": "1.0.3", 2688 | "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", 2689 | "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", 2690 | "dev": true 2691 | }, 2692 | "resolve-from": { 2693 | "version": "1.0.1", 2694 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", 2695 | "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", 2696 | "dev": true 2697 | }, 2698 | "resource-router-middleware": { 2699 | "version": "0.7.0", 2700 | "resolved": "https://registry.npmjs.org/resource-router-middleware/-/resource-router-middleware-0.7.0.tgz", 2701 | "integrity": "sha1-7sW3kEw4yeZ8OwH0ejRjAhxVlWs=" 2702 | }, 2703 | "rimraf": { 2704 | "version": "2.6.1", 2705 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", 2706 | "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", 2707 | "dev": true 2708 | }, 2709 | "rx-lite": { 2710 | "version": "3.1.2", 2711 | "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", 2712 | "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", 2713 | "dev": true 2714 | }, 2715 | "rx-lite-aggregates": { 2716 | "version": "4.0.8", 2717 | "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", 2718 | "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", 2719 | "dev": true 2720 | }, 2721 | "safe-buffer": { 2722 | "version": "5.1.1", 2723 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 2724 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", 2725 | "dev": true 2726 | }, 2727 | "semver": { 2728 | "version": "5.3.0", 2729 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", 2730 | "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", 2731 | "dev": true 2732 | }, 2733 | "semver-diff": { 2734 | "version": "2.1.0", 2735 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", 2736 | "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", 2737 | "dev": true 2738 | }, 2739 | "send": { 2740 | "version": "0.15.3", 2741 | "resolved": "https://registry.npmjs.org/send/-/send-0.15.3.tgz", 2742 | "integrity": "sha1-UBP5+ZAj31DRvZiSwZ4979HVMwk=" 2743 | }, 2744 | "serve-static": { 2745 | "version": "1.12.3", 2746 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.3.tgz", 2747 | "integrity": "sha1-n0uhni8wMMVH+K+ZEHg47DjVseI=" 2748 | }, 2749 | "set-immediate-shim": { 2750 | "version": "1.0.1", 2751 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 2752 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", 2753 | "dev": true 2754 | }, 2755 | "setprototypeof": { 2756 | "version": "1.0.3", 2757 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", 2758 | "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" 2759 | }, 2760 | "signal-exit": { 2761 | "version": "3.0.2", 2762 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 2763 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 2764 | "dev": true 2765 | }, 2766 | "slash": { 2767 | "version": "1.0.0", 2768 | "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", 2769 | "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", 2770 | "dev": true 2771 | }, 2772 | "slice-ansi": { 2773 | "version": "0.0.4", 2774 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", 2775 | "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", 2776 | "dev": true 2777 | }, 2778 | "slide": { 2779 | "version": "1.1.6", 2780 | "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", 2781 | "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", 2782 | "dev": true 2783 | }, 2784 | "source-map": { 2785 | "version": "0.5.6", 2786 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", 2787 | "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", 2788 | "dev": true 2789 | }, 2790 | "source-map-support": { 2791 | "version": "0.4.15", 2792 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", 2793 | "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", 2794 | "dev": true 2795 | }, 2796 | "split": { 2797 | "version": "0.3.3", 2798 | "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", 2799 | "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", 2800 | "dev": true 2801 | }, 2802 | "sprintf-js": { 2803 | "version": "1.0.3", 2804 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 2805 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 2806 | "dev": true 2807 | }, 2808 | "statuses": { 2809 | "version": "1.3.1", 2810 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", 2811 | "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" 2812 | }, 2813 | "stream-combiner": { 2814 | "version": "0.0.4", 2815 | "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", 2816 | "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", 2817 | "dev": true 2818 | }, 2819 | "stream-shift": { 2820 | "version": "1.0.0", 2821 | "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", 2822 | "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", 2823 | "dev": true 2824 | }, 2825 | "string_decoder": { 2826 | "version": "1.0.3", 2827 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 2828 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 2829 | "dev": true 2830 | }, 2831 | "string-length": { 2832 | "version": "1.0.1", 2833 | "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", 2834 | "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", 2835 | "dev": true 2836 | }, 2837 | "strip-ansi": { 2838 | "version": "3.0.1", 2839 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 2840 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 2841 | "dev": true 2842 | }, 2843 | "strip-json-comments": { 2844 | "version": "2.0.1", 2845 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 2846 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 2847 | "dev": true 2848 | }, 2849 | "supports-color": { 2850 | "version": "2.0.0", 2851 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 2852 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 2853 | "dev": true 2854 | }, 2855 | "text-table": { 2856 | "version": "0.2.0", 2857 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 2858 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 2859 | "dev": true 2860 | }, 2861 | "through": { 2862 | "version": "2.3.8", 2863 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2864 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 2865 | "dev": true 2866 | }, 2867 | "timed-out": { 2868 | "version": "2.0.0", 2869 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz", 2870 | "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo=", 2871 | "dev": true 2872 | }, 2873 | "tmp": { 2874 | "version": "0.0.31", 2875 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", 2876 | "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", 2877 | "dev": true 2878 | }, 2879 | "to-fast-properties": { 2880 | "version": "1.0.3", 2881 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", 2882 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", 2883 | "dev": true 2884 | }, 2885 | "touch": { 2886 | "version": "1.0.0", 2887 | "resolved": "https://registry.npmjs.org/touch/-/touch-1.0.0.tgz", 2888 | "integrity": "sha1-RJy+LbrlqMgDjjDXH6D/RklHxN4=", 2889 | "dev": true 2890 | }, 2891 | "trim-right": { 2892 | "version": "1.0.1", 2893 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", 2894 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", 2895 | "dev": true 2896 | }, 2897 | "tryit": { 2898 | "version": "1.0.3", 2899 | "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", 2900 | "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", 2901 | "dev": true 2902 | }, 2903 | "type-check": { 2904 | "version": "0.3.2", 2905 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 2906 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 2907 | "dev": true 2908 | }, 2909 | "type-is": { 2910 | "version": "1.6.15", 2911 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", 2912 | "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=" 2913 | }, 2914 | "typedarray": { 2915 | "version": "0.0.6", 2916 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 2917 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 2918 | "dev": true 2919 | }, 2920 | "undefsafe": { 2921 | "version": "0.0.3", 2922 | "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-0.0.3.tgz", 2923 | "integrity": "sha1-7Mo6A+VrmvFzhbqsgSrIO5lKli8=", 2924 | "dev": true 2925 | }, 2926 | "unix-crypt-td-js": { 2927 | "version": "1.0.0", 2928 | "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.0.0.tgz", 2929 | "integrity": "sha1-HAgkFQSBvHoB1J6Y8exmjYJBLzs=" 2930 | }, 2931 | "unpipe": { 2932 | "version": "1.0.0", 2933 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 2934 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 2935 | }, 2936 | "update-notifier": { 2937 | "version": "0.5.0", 2938 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.5.0.tgz", 2939 | "integrity": "sha1-B7XcIGazYnqztPUwEw9+3doHpMw=", 2940 | "dev": true, 2941 | "dependencies": { 2942 | "repeating": { 2943 | "version": "1.1.3", 2944 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", 2945 | "integrity": "sha1-PUEUIYh3U3SU+X93+Xhfq4EPpKw=", 2946 | "dev": true 2947 | } 2948 | } 2949 | }, 2950 | "user-home": { 2951 | "version": "1.1.1", 2952 | "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", 2953 | "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", 2954 | "dev": true 2955 | }, 2956 | "util-deprecate": { 2957 | "version": "1.0.2", 2958 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2959 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 2960 | "dev": true 2961 | }, 2962 | "utils-merge": { 2963 | "version": "1.0.0", 2964 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", 2965 | "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" 2966 | }, 2967 | "uuid": { 2968 | "version": "2.0.3", 2969 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", 2970 | "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", 2971 | "dev": true 2972 | }, 2973 | "v8flags": { 2974 | "version": "2.1.1", 2975 | "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", 2976 | "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", 2977 | "dev": true 2978 | }, 2979 | "vary": { 2980 | "version": "1.1.1", 2981 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz", 2982 | "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=" 2983 | }, 2984 | "wordwrap": { 2985 | "version": "1.0.0", 2986 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 2987 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 2988 | "dev": true 2989 | }, 2990 | "wrappy": { 2991 | "version": "1.0.2", 2992 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2993 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2994 | "dev": true 2995 | }, 2996 | "write": { 2997 | "version": "0.2.1", 2998 | "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", 2999 | "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", 3000 | "dev": true 3001 | }, 3002 | "write-file-atomic": { 3003 | "version": "1.3.4", 3004 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", 3005 | "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", 3006 | "dev": true 3007 | }, 3008 | "xdg-basedir": { 3009 | "version": "2.0.0", 3010 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz", 3011 | "integrity": "sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=", 3012 | "dev": true 3013 | }, 3014 | "xtend": { 3015 | "version": "4.0.1", 3016 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 3017 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 3018 | "dev": true 3019 | } 3020 | } 3021 | } 3022 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "express-es6-rest-api", 3 | "version": "0.3.0", 4 | "description": "Starter project for an ES6 RESTful Express API", 5 | "main": "dist", 6 | "scripts": { 7 | "dev": "nodemon -w src --exec \"babel-node src --presets es2015,stage-0\"", 8 | "build": "babel src -s -D -d dist --presets es2015,stage-0", 9 | "start": "node dist", 10 | "prestart": "npm run -s build", 11 | "test": "eslint src" 12 | }, 13 | "eslintConfig": { 14 | "extends": "eslint:recommended", 15 | "parserOptions": { 16 | "ecmaVersion": 7, 17 | "sourceType": "module" 18 | }, 19 | "env": { 20 | "node": true 21 | }, 22 | "rules": { 23 | "no-console": 0, 24 | "no-unused-vars": 1 25 | } 26 | }, 27 | "repository": "developit/express-es6-rest-api", 28 | "author": "Jason Miller ", 29 | "license": "MIT", 30 | "dependencies": { 31 | "body-parser": "^1.13.3", 32 | "compression": "^1.5.2", 33 | "cors": "^2.7.1", 34 | "express": "^4.13.3", 35 | "http-auth": "^3.1.3", 36 | "morgan": "^1.8.0", 37 | "resource-router-middleware": "^0.7.0" 38 | }, 39 | "devDependencies": { 40 | "babel-cli": "^6.9.0", 41 | "babel-core": "^6.9.0", 42 | "babel-preset-es2015": "^6.9.0", 43 | "babel-preset-stage-0": "^6.5.0", 44 | "eslint": "^4.0.0", 45 | "nodemon": "^1.9.2" 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/api/facets.js: -------------------------------------------------------------------------------- 1 | import resource from 'resource-router-middleware'; 2 | import facets from '../models/facets'; 3 | 4 | export default ({ config, db }) => resource({ 5 | 6 | /** Property name to store preloaded entity on `request`. */ 7 | id : 'facet', 8 | 9 | /** For requests with an `id`, you can auto-load the entity. 10 | * Errors terminate the request, success sets `req[id] = data`. 11 | */ 12 | load(req, id, callback) { 13 | let facet = facets.find( facet => facet.id===id ), 14 | err = facet ? null : 'Not found'; 15 | callback(err, facet); 16 | }, 17 | 18 | /** GET / - List all entities */ 19 | index({ params }, res) { 20 | res.json(facets); 21 | }, 22 | 23 | /** POST / - Create a new entity */ 24 | create({ body }, res) { 25 | body.id = facets.length.toString(36); 26 | facets.push(body); 27 | res.json(body); 28 | }, 29 | 30 | /** GET /:id - Return a given entity */ 31 | read({ facet }, res) { 32 | res.json(facet); 33 | }, 34 | 35 | /** PUT /:id - Update a given entity */ 36 | update({ facet, body }, auth, res) { 37 | for (let key in body) { 38 | if (key!=='id') { 39 | facet[key] = body[key]; 40 | } 41 | } 42 | res.sendStatus(204); 43 | }, 44 | 45 | /** DELETE /:id - Delete a given entity */ 46 | delete({ facet }, res) { 47 | facets.splice(facets.indexOf(facet), 1); 48 | res.sendStatus(204); 49 | } 50 | }); 51 | -------------------------------------------------------------------------------- /src/api/index.js: -------------------------------------------------------------------------------- 1 | import { version } from '../../package.json'; 2 | import { Router } from 'express'; 3 | import facets from './facets'; 4 | 5 | export default ({ config, db, auth }) => { 6 | let api = Router(); 7 | 8 | // mount the facets resource 9 | api.use('/facets', auth, facets({ config, db, auth })); 10 | 11 | // perhaps expose some API metadata at the root 12 | api.get('/', (req, res) => { 13 | res.json({ version }); 14 | }); 15 | 16 | return api; 17 | } 18 | -------------------------------------------------------------------------------- /src/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "port": 8080, 3 | "bodyLimit": "100kb", 4 | "corsHeaders": ["Link"] 5 | } 6 | -------------------------------------------------------------------------------- /src/db.js: -------------------------------------------------------------------------------- 1 | export default callback => { 2 | // connect to a database if needed, then pass it to `callback`: 3 | callback(); 4 | } 5 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import http from 'http'; 2 | import express from 'express'; 3 | import cors from 'cors'; 4 | import morgan from 'morgan'; 5 | import bodyParser from 'body-parser'; 6 | import httpAuth from 'http-auth'; 7 | import initializeDb from './db'; 8 | import middleware from './middleware'; 9 | import api from './api'; 10 | import config from './config.json'; 11 | import { name } from '../package.json'; 12 | 13 | let app = express(); 14 | app.server = http.createServer(app); 15 | 16 | // logger 17 | app.use(morgan('dev')); 18 | 19 | // 3rd party middleware 20 | app.use(cors({ 21 | exposedHeaders: config.corsHeaders 22 | })); 23 | 24 | app.use(bodyParser.json({ 25 | limit : config.bodyLimit 26 | })); 27 | 28 | const auth = httpAuth.connect( 29 | httpAuth.basic({ 30 | realm: name, // I used the name from package.json as a realm name to group \ identify the authed users 31 | file: __dirname + '/users.htpasswd', // DO NOT COMMIT THIS UNLESS IN DUMMY EXAMPLE 32 | }) 33 | ) 34 | 35 | // connect to db 36 | initializeDb( db => { 37 | 38 | // internal middleware 39 | app.use(middleware({ config, db })); 40 | 41 | // api router 42 | app.use('/api', api({ config, db, auth })); 43 | 44 | app.server.listen(process.env.PORT || config.port, () => { 45 | console.log(`Started on port ${app.server.address().port}`); 46 | }); 47 | }); 48 | 49 | export default app; 50 | -------------------------------------------------------------------------------- /src/lib/util.js: -------------------------------------------------------------------------------- 1 | 2 | /** Creates a callback that proxies node callback style arguments to an Express Response object. 3 | * @param {express.Response} res Express HTTP Response 4 | * @param {number} [status=200] Status code to send on success 5 | * 6 | * @example 7 | * list(req, res) { 8 | * collection.find({}, toRes(res)); 9 | * } 10 | */ 11 | export function toRes(res, status=200) { 12 | return (err, thing) => { 13 | if (err) return res.status(500).send(err); 14 | 15 | if (thing && typeof thing.toObject==='function') { 16 | thing = thing.toObject(); 17 | } 18 | res.status(status).json(thing); 19 | }; 20 | } 21 | -------------------------------------------------------------------------------- /src/middleware/index.js: -------------------------------------------------------------------------------- 1 | import { Router } from 'express'; 2 | 3 | export default ({ config, db }) => { 4 | let routes = Router(); 5 | 6 | // add middleware here 7 | 8 | return routes; 9 | } 10 | -------------------------------------------------------------------------------- /src/models/facets.js: -------------------------------------------------------------------------------- 1 | // our example model is just an Array 2 | const facets = []; 3 | export default facets; 4 | -------------------------------------------------------------------------------- /src/users.htpasswd: -------------------------------------------------------------------------------- 1 | name:password --------------------------------------------------------------------------------