[READ-ONLY] Mirror of https://github.com/danielroe/ipx.
0

Configure Feed

Select the types of activity you want to include in your feed.

initial commit

author
Pooya Parsa
date (Dec 10, 2017, 1:35 PM +0330) commit f231ec3d
+4664
+13
.editorconfig
··· 1 + # editorconfig.org 2 + root = true 3 + 4 + [*] 5 + indent_size = 2 6 + indent_style = space 7 + end_of_line = lf 8 + charset = utf-8 9 + trim_trailing_whitespace = true 10 + insert_final_newline = true 11 + 12 + [*.md] 13 + trim_trailing_whitespace = false
+12
.eslintrc
··· 1 + { 2 + "extends": [ 3 + "standard" 4 + ], 5 + "env": { 6 + "node": true 7 + }, 8 + "parserOptions": { 9 + "ecmaVersion": 8, 10 + "sourceType": "module" 11 + } 12 + }
+7
.gitignore
··· 1 + node_modules 2 + .vscode 3 + .idea 4 + *.log 5 + .DS_Store 6 + cache 7 + storage
+21
LICENSE
··· 1 + The MIT License (MIT) 2 + 3 + Copyright (c) 2017 Pooya Parsa <pooya@fandogh.org> 4 + 5 + Permission is hereby granted, free of charge, to any person obtaining a copy 6 + of this software and associated documentation files (the "Software"), to deal 7 + in the Software without restriction, including without limitation the rights 8 + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 + copies of the Software, and to permit persons to whom the Software is 10 + furnished to do so, 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, 17 + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 + SOFTWARE.
+39
README.md
··· 1 + # 🖼 IPX 2 + 3 + High performance, secure and easy to use and image proxy based on [Sharp](https://github.com/lovell/sharp) and [libvips](https://github.com/jcupitt/libvips). 4 + 5 + **WARNING:: THIS PROJECT AND DOCS ARE STILL WIP!** 6 + 7 + ## Project goals 8 + 9 + - Fast and minimal as possible. 10 + - Configurable operations. 11 + - Built-in secure cache with human readable entries and resistant against duplicates. 12 + - Remote agnostic cache and input adapters. 13 + - Smart and auto cache cleaning. 14 + 15 + ## API 16 + 17 + **`/{format}/{operations}/{src}`** 18 + 19 + Example: `http://cdn.example.com/webp/w:200/avatars/bafollo.png` 20 + 21 + ََ‍‍Use `_` value in place for `{format}` or `{operations}` to keep original values of source image. 22 + 23 + Possible values for format: `jpeg`,`webp` or `png`. 24 + 25 + ## Operations 26 + 27 + Operation | Arguments | Example | Description 28 + -------------|-----------------------|-------------|--------------------------------------------------------- 29 + `f` | `format` | f:webp | Change format. 30 + `s` | `width`, `height` | s:200:300 | Resize image. 31 + `w` | `width` | w:200 | Change image with. 32 + `h` | `height` | h:200 | Change image height. 33 + `embed` | - | embed | Preserving aspect ratio, resize the image to the maximum `width` or `height` specified then embed on a background of the exact `width` and `height` specified. 34 + `max` | - | max | Preserving aspect ratio, resize the image to be as large as possible while ensuring its dimensions are less than or equal to the `width` and `height` specified. 35 + `min` | - | min | Preserving aspect ratio, resize the image to be as small as possible while ensuring its dimensions are greater than or equal to the width and height specified. 36 + 37 + ## License 38 + 39 + MIT - Pooya Parsa
+5
bak.config.js
··· 1 + module.exports = { 2 + routes: [ 3 + 'src/api' 4 + ] 5 + }
+11
bin/clean
··· 1 + #!/usr/bin/env node 2 + 3 + const Config = require('config') 4 + const { IPX } = require('..') 5 + 6 + async function main () { 7 + const ipx = new IPX(Config.get('ipx')) 8 + await ipx.cleanCache() 9 + } 10 + 11 + main().catch(console.error)
+14
config/default.js
··· 1 + module.exports = { 2 + ipx: { 3 + input: { 4 + adapter: 'file.js', 5 + dir: 'storage' 6 + }, 7 + cache: { 8 + adapter: 'file.js', 9 + dir: 'cache', 10 + cleanCron: '* * * * * *', 11 + maxUnusedMinutes: 2 12 + } 13 + } 14 + }
+4164
package-lock.json
··· 1 + { 2 + "name": "shark", 3 + "version": "1.0.0", 4 + "lockfileVersion": 1, 5 + "requires": true, 6 + "dependencies": { 7 + "@bakjs/input": { 8 + "version": "2.1.0", 9 + "resolved": "https://registry.npmjs.org/@bakjs/input/-/input-2.1.0.tgz", 10 + "integrity": "sha512-EhaSLaGNc7sSEi/eLDA9LJNjyv/FCICx1ZU6G6ohAR50jEoq8FLgqnrnZAmj/10oiyglXK6IzAdy5PtnDkMiag==" 11 + }, 12 + "@bakjs/logging": { 13 + "version": "2.2.2", 14 + "resolved": "https://registry.npmjs.org/@bakjs/logging/-/logging-2.2.2.tgz", 15 + "integrity": "sha512-zFQIGGmLdM1gykYTVZJ3CkECUVupmeqyrlUGFGkplIdESMaFxBUckUqXQUdpeUtX2+r3BE4u+a0/s40OovaT9A==", 16 + "requires": { 17 + "pretty-error": "2.1.1" 18 + } 19 + }, 20 + "@bakjs/route-table": { 21 + "version": "2.1.1", 22 + "resolved": "https://registry.npmjs.org/@bakjs/route-table/-/route-table-2.1.1.tgz", 23 + "integrity": "sha512-jGKTLXi6FfATE3DpL3y0kA455UDapIou/WAw3bknVwQqK9dbtIUHY29NXYNZHd320p8qVEk2eanN9gSZKXyXSg==", 24 + "requires": { 25 + "chalk": "2.3.0", 26 + "lodash": "4.17.4", 27 + "strip-ansi": "4.0.0" 28 + }, 29 + "dependencies": { 30 + "ansi-regex": { 31 + "version": "3.0.0", 32 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 33 + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" 34 + }, 35 + "strip-ansi": { 36 + "version": "4.0.0", 37 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 38 + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 39 + "requires": { 40 + "ansi-regex": "3.0.0" 41 + } 42 + } 43 + } 44 + }, 45 + "@bakjs/shortcuts": { 46 + "version": "2.1.0", 47 + "resolved": "https://registry.npmjs.org/@bakjs/shortcuts/-/shortcuts-2.1.0.tgz", 48 + "integrity": "sha512-Sp4jcslHoKFbAR20p4JOTGLfiWgQp4LGfhXY+3Ldn9PGM2fkQHEzmNqLedQkOy6T3FP3gUMfBo9nQxPom9IgNQ==" 49 + }, 50 + "abbrev": { 51 + "version": "1.1.1", 52 + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 53 + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" 54 + }, 55 + "accept": { 56 + "version": "3.0.2", 57 + "resolved": "https://registry.npmjs.org/accept/-/accept-3.0.2.tgz", 58 + "integrity": "sha512-bghLXFkCOsC1Y2TZ51etWfKDs6q249SAoHTZVfzWWdlZxoij+mgkj9AmUJWQpDY48TfnrTDIe43Xem4zdMe7mQ==", 59 + "requires": { 60 + "boom": "7.1.1", 61 + "hoek": "5.0.2" 62 + } 63 + }, 64 + "acorn": { 65 + "version": "5.2.1", 66 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz", 67 + "integrity": "sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w==", 68 + "dev": true 69 + }, 70 + "acorn-jsx": { 71 + "version": "3.0.1", 72 + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", 73 + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", 74 + "dev": true, 75 + "requires": { 76 + "acorn": "3.3.0" 77 + }, 78 + "dependencies": { 79 + "acorn": { 80 + "version": "3.3.0", 81 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", 82 + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", 83 + "dev": true 84 + } 85 + } 86 + }, 87 + "ajv": { 88 + "version": "5.5.0", 89 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.0.tgz", 90 + "integrity": "sha1-6yhAdG6dxIvV4GOjbj/UAMXqtak=", 91 + "dev": true, 92 + "requires": { 93 + "co": "4.6.0", 94 + "fast-deep-equal": "1.0.0", 95 + "fast-json-stable-stringify": "2.0.0", 96 + "json-schema-traverse": "0.3.1" 97 + } 98 + }, 99 + "ajv-keywords": { 100 + "version": "2.1.1", 101 + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", 102 + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", 103 + "dev": true 104 + }, 105 + "ammo": { 106 + "version": "3.0.0", 107 + "resolved": "https://registry.npmjs.org/ammo/-/ammo-3.0.0.tgz", 108 + "integrity": "sha512-6yoz9MXYV9sgCHrwprHWPxBaJ9/roQRfXzS//4JCNgKfPYcghFNwJQKBt6vWOoSGGRHsP6qsLJ+xtKStKJWdLQ==", 109 + "requires": { 110 + "boom": "6.0.0", 111 + "hoek": "5.0.2" 112 + }, 113 + "dependencies": { 114 + "boom": { 115 + "version": "6.0.0", 116 + "resolved": "https://registry.npmjs.org/boom/-/boom-6.0.0.tgz", 117 + "integrity": "sha512-LYLa8BmiiOWjvxTMVh73lcZzd2E5yczrKvxAny1UuzO2tkarLrw4tdp3rdfmus3+YfKcZP0vRSM3Obh+fGK6eA==", 118 + "requires": { 119 + "hoek": "5.0.2" 120 + } 121 + } 122 + } 123 + }, 124 + "ansi-align": { 125 + "version": "2.0.0", 126 + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", 127 + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", 128 + "requires": { 129 + "string-width": "2.1.1" 130 + } 131 + }, 132 + "ansi-escapes": { 133 + "version": "3.0.0", 134 + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", 135 + "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", 136 + "dev": true 137 + }, 138 + "ansi-regex": { 139 + "version": "2.1.1", 140 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 141 + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" 142 + }, 143 + "ansi-styles": { 144 + "version": "3.2.0", 145 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", 146 + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", 147 + "requires": { 148 + "color-convert": "1.9.1" 149 + } 150 + }, 151 + "anymatch": { 152 + "version": "1.3.2", 153 + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", 154 + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", 155 + "requires": { 156 + "micromatch": "2.3.11", 157 + "normalize-path": "2.1.1" 158 + } 159 + }, 160 + "argparse": { 161 + "version": "1.0.9", 162 + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", 163 + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", 164 + "dev": true, 165 + "requires": { 166 + "sprintf-js": "1.0.3" 167 + } 168 + }, 169 + "arr-diff": { 170 + "version": "2.0.0", 171 + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 172 + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 173 + "requires": { 174 + "arr-flatten": "1.1.0" 175 + } 176 + }, 177 + "arr-flatten": { 178 + "version": "1.1.0", 179 + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 180 + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" 181 + }, 182 + "array-union": { 183 + "version": "1.0.2", 184 + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 185 + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 186 + "dev": true, 187 + "requires": { 188 + "array-uniq": "1.0.3" 189 + } 190 + }, 191 + "array-uniq": { 192 + "version": "1.0.3", 193 + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 194 + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 195 + "dev": true 196 + }, 197 + "array-unique": { 198 + "version": "0.2.1", 199 + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 200 + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" 201 + }, 202 + "arrify": { 203 + "version": "1.0.1", 204 + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 205 + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 206 + "dev": true 207 + }, 208 + "async-each": { 209 + "version": "1.0.1", 210 + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", 211 + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" 212 + }, 213 + "b64": { 214 + "version": "4.0.0", 215 + "resolved": "https://registry.npmjs.org/b64/-/b64-4.0.0.tgz", 216 + "integrity": "sha512-EhmUQodKB0sdzPPrbIWbGqA5cQeTWxYrAgNeeT1rLZWtD3tbNTnphz8J4vkXI3cPgBNlXBjzEbzDzq0Nwi4f9A==" 217 + }, 218 + "babel-code-frame": { 219 + "version": "6.26.0", 220 + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 221 + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 222 + "dev": true, 223 + "requires": { 224 + "chalk": "1.1.3", 225 + "esutils": "2.0.2", 226 + "js-tokens": "3.0.2" 227 + }, 228 + "dependencies": { 229 + "ansi-styles": { 230 + "version": "2.2.1", 231 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 232 + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 233 + "dev": true 234 + }, 235 + "chalk": { 236 + "version": "1.1.3", 237 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 238 + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 239 + "dev": true, 240 + "requires": { 241 + "ansi-styles": "2.2.1", 242 + "escape-string-regexp": "1.0.5", 243 + "has-ansi": "2.0.0", 244 + "strip-ansi": "3.0.1", 245 + "supports-color": "2.0.0" 246 + } 247 + }, 248 + "supports-color": { 249 + "version": "2.0.0", 250 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 251 + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 252 + "dev": true 253 + } 254 + } 255 + }, 256 + "bak": { 257 + "version": "2.0.3", 258 + "resolved": "https://registry.npmjs.org/bak/-/bak-2.0.3.tgz", 259 + "integrity": "sha512-lrFNdpAjGIrVznk3LBUq4bVJynIUaXjLUdkmvyBoT1PzH1qFzp7TujFzeZhBKFG3Mo9eEbRItb83AoxeAaXpow==", 260 + "requires": { 261 + "@bakjs/input": "2.1.0", 262 + "@bakjs/logging": "2.2.2", 263 + "@bakjs/route-table": "2.1.1", 264 + "@bakjs/shortcuts": "2.1.0", 265 + "boom": "7.1.1", 266 + "chalk": "2.3.0", 267 + "config": "1.28.1", 268 + "hapi": "17.1.1", 269 + "hapi-compat": "1.1.0", 270 + "items-promise": "1.0.0", 271 + "lodash": "4.17.4", 272 + "sywac": "1.2.0" 273 + } 274 + }, 275 + "balanced-match": { 276 + "version": "1.0.0", 277 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 278 + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 279 + }, 280 + "big-time": { 281 + "version": "2.0.0", 282 + "resolved": "https://registry.npmjs.org/big-time/-/big-time-2.0.0.tgz", 283 + "integrity": "sha512-OXsmBxlRLwUc65MLta2EOyMTLcjZQkxHkJ81lVPeyVqZag8zhUfKRYIbF3E/IW/LWR8kf8a1GlRYkBXKVGqJOw==" 284 + }, 285 + "binary-extensions": { 286 + "version": "1.11.0", 287 + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", 288 + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" 289 + }, 290 + "boolbase": { 291 + "version": "1.0.0", 292 + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 293 + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" 294 + }, 295 + "boom": { 296 + "version": "7.1.1", 297 + "resolved": "https://registry.npmjs.org/boom/-/boom-7.1.1.tgz", 298 + "integrity": "sha512-qwEARHTliqgEQiVkzKkkbLt3q0vRPIW60VRZ8zRnbjsm7INkPe9NxfAYDDYLZOdhxyUHa1gIe639Cx7t6RH/4A==", 299 + "requires": { 300 + "hoek": "5.0.2" 301 + } 302 + }, 303 + "bounce": { 304 + "version": "1.2.0", 305 + "resolved": "https://registry.npmjs.org/bounce/-/bounce-1.2.0.tgz", 306 + "integrity": "sha512-8syCGe8B2/WC53118/F/tFy5aW00j+eaGPXmAUP7iBhxc+EBZZxS1vKelWyBCH6IqojgS2t1gF0glH30qAJKEw==", 307 + "requires": { 308 + "boom": "7.1.1", 309 + "hoek": "5.0.2" 310 + } 311 + }, 312 + "boxen": { 313 + "version": "1.2.2", 314 + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.2.2.tgz", 315 + "integrity": "sha1-Px1AMsMP/qnUsCwyLq8up0HcvOU=", 316 + "requires": { 317 + "ansi-align": "2.0.0", 318 + "camelcase": "4.1.0", 319 + "chalk": "2.3.0", 320 + "cli-boxes": "1.0.0", 321 + "string-width": "2.1.1", 322 + "term-size": "1.2.0", 323 + "widest-line": "1.0.0" 324 + } 325 + }, 326 + "brace-expansion": { 327 + "version": "1.1.8", 328 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 329 + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 330 + "requires": { 331 + "balanced-match": "1.0.0", 332 + "concat-map": "0.0.1" 333 + } 334 + }, 335 + "braces": { 336 + "version": "1.8.5", 337 + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 338 + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 339 + "requires": { 340 + "expand-range": "1.8.2", 341 + "preserve": "0.2.0", 342 + "repeat-element": "1.1.2" 343 + } 344 + }, 345 + "builtin-modules": { 346 + "version": "1.1.1", 347 + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 348 + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 349 + "dev": true 350 + }, 351 + "call": { 352 + "version": "5.0.1", 353 + "resolved": "https://registry.npmjs.org/call/-/call-5.0.1.tgz", 354 + "integrity": "sha512-ollfFPSshiuYLp7AsrmpkQJ/PxCi6AzV81rCjBwWhyF2QGyUY/vPDMzoh4aUcWyucheRglG2LaS5qkIEfLRh6A==", 355 + "requires": { 356 + "boom": "7.1.1", 357 + "hoek": "5.0.2" 358 + } 359 + }, 360 + "caller-id": { 361 + "version": "0.1.0", 362 + "resolved": "https://registry.npmjs.org/caller-id/-/caller-id-0.1.0.tgz", 363 + "integrity": "sha1-Wb2sCJPRLDhxQIJ5Ix+XRYNk8Hs=", 364 + "requires": { 365 + "stack-trace": "0.0.10" 366 + } 367 + }, 368 + "caller-path": { 369 + "version": "0.1.0", 370 + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", 371 + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", 372 + "dev": true, 373 + "requires": { 374 + "callsites": "0.2.0" 375 + } 376 + }, 377 + "callsites": { 378 + "version": "0.2.0", 379 + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", 380 + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", 381 + "dev": true 382 + }, 383 + "camelcase": { 384 + "version": "4.1.0", 385 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 386 + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" 387 + }, 388 + "capture-stack-trace": { 389 + "version": "1.0.0", 390 + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", 391 + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=" 392 + }, 393 + "catbox": { 394 + "version": "10.0.2", 395 + "resolved": "https://registry.npmjs.org/catbox/-/catbox-10.0.2.tgz", 396 + "integrity": "sha512-cTQTQeKMhWHU0lX8CADE3g1koGJu+AlcWFzAjMX/8P+XbkScGYw3tJsQpe2Oh8q68vOQbOLacz9k+6V/F3Z9DA==", 397 + "requires": { 398 + "boom": "7.1.1", 399 + "bounce": "1.2.0", 400 + "hoek": "5.0.2", 401 + "joi": "13.0.2" 402 + } 403 + }, 404 + "catbox-memory": { 405 + "version": "3.1.1", 406 + "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-3.1.1.tgz", 407 + "integrity": "sha512-fl6TI/uneeUb9NGClKWZWkpCZQrkPmuVz/Jaqqb15vqW6KGfJ/vMP/ZMp8VgAkyTrrRvFHbFcS67sbU7EkvbhQ==", 408 + "requires": { 409 + "big-time": "2.0.0", 410 + "boom": "7.1.1", 411 + "hoek": "5.0.2" 412 + } 413 + }, 414 + "caw": { 415 + "version": "2.0.1", 416 + "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz", 417 + "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==", 418 + "requires": { 419 + "get-proxy": "2.1.0", 420 + "isurl": "1.0.0", 421 + "tunnel-agent": "0.6.0", 422 + "url-to-options": "1.0.1" 423 + } 424 + }, 425 + "chalk": { 426 + "version": "2.3.0", 427 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", 428 + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", 429 + "requires": { 430 + "ansi-styles": "3.2.0", 431 + "escape-string-regexp": "1.0.5", 432 + "supports-color": "4.5.0" 433 + } 434 + }, 435 + "chardet": { 436 + "version": "0.4.2", 437 + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", 438 + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", 439 + "dev": true 440 + }, 441 + "chokidar": { 442 + "version": "1.7.0", 443 + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", 444 + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", 445 + "requires": { 446 + "anymatch": "1.3.2", 447 + "async-each": "1.0.1", 448 + "fsevents": "1.1.3", 449 + "glob-parent": "2.0.0", 450 + "inherits": "2.0.3", 451 + "is-binary-path": "1.0.1", 452 + "is-glob": "2.0.1", 453 + "path-is-absolute": "1.0.1", 454 + "readdirp": "2.1.0" 455 + } 456 + }, 457 + "chownr": { 458 + "version": "1.0.1", 459 + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", 460 + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" 461 + }, 462 + "circular-json": { 463 + "version": "0.3.3", 464 + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", 465 + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", 466 + "dev": true 467 + }, 468 + "cli-boxes": { 469 + "version": "1.0.0", 470 + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", 471 + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" 472 + }, 473 + "cli-cursor": { 474 + "version": "2.1.0", 475 + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 476 + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", 477 + "dev": true, 478 + "requires": { 479 + "restore-cursor": "2.0.0" 480 + } 481 + }, 482 + "cli-width": { 483 + "version": "2.2.0", 484 + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", 485 + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", 486 + "dev": true 487 + }, 488 + "co": { 489 + "version": "4.6.0", 490 + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 491 + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 492 + "dev": true 493 + }, 494 + "code-point-at": { 495 + "version": "1.1.0", 496 + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 497 + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" 498 + }, 499 + "color": { 500 + "version": "2.0.1", 501 + "resolved": "https://registry.npmjs.org/color/-/color-2.0.1.tgz", 502 + "integrity": "sha512-ubUCVVKfT7r2w2D3qtHakj8mbmKms+tThR8gI8zEYCbUBl8/voqFGt3kgBqGwXAopgXybnkuOq+qMYCRrp4cXw==", 503 + "requires": { 504 + "color-convert": "1.9.1", 505 + "color-string": "1.5.2" 506 + } 507 + }, 508 + "color-convert": { 509 + "version": "1.9.1", 510 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", 511 + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", 512 + "requires": { 513 + "color-name": "1.1.3" 514 + } 515 + }, 516 + "color-name": { 517 + "version": "1.1.3", 518 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 519 + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 520 + }, 521 + "color-string": { 522 + "version": "1.5.2", 523 + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.2.tgz", 524 + "integrity": "sha1-JuRYFLw8mny9Z1FkikFDRRSnc6k=", 525 + "requires": { 526 + "color-name": "1.1.3", 527 + "simple-swizzle": "0.2.2" 528 + } 529 + }, 530 + "concat-map": { 531 + "version": "0.0.1", 532 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 533 + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 534 + }, 535 + "concat-stream": { 536 + "version": "1.6.0", 537 + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", 538 + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", 539 + "dev": true, 540 + "requires": { 541 + "inherits": "2.0.3", 542 + "readable-stream": "2.3.3", 543 + "typedarray": "0.0.6" 544 + }, 545 + "dependencies": { 546 + "isarray": { 547 + "version": "1.0.0", 548 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 549 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 550 + "dev": true 551 + }, 552 + "readable-stream": { 553 + "version": "2.3.3", 554 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 555 + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", 556 + "dev": true, 557 + "requires": { 558 + "core-util-is": "1.0.2", 559 + "inherits": "2.0.3", 560 + "isarray": "1.0.0", 561 + "process-nextick-args": "1.0.7", 562 + "safe-buffer": "5.1.1", 563 + "string_decoder": "1.0.3", 564 + "util-deprecate": "1.0.2" 565 + } 566 + }, 567 + "string_decoder": { 568 + "version": "1.0.3", 569 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 570 + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 571 + "dev": true, 572 + "requires": { 573 + "safe-buffer": "5.1.1" 574 + } 575 + } 576 + } 577 + }, 578 + "config": { 579 + "version": "1.28.1", 580 + "resolved": "https://registry.npmjs.org/config/-/config-1.28.1.tgz", 581 + "integrity": "sha1-diXSoeTJDxMdinM0eYLZPDhzKC0=", 582 + "requires": { 583 + "json5": "0.4.0", 584 + "os-homedir": "1.0.2" 585 + } 586 + }, 587 + "config-chain": { 588 + "version": "1.1.11", 589 + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz", 590 + "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", 591 + "requires": { 592 + "ini": "1.3.5", 593 + "proto-list": "1.2.4" 594 + } 595 + }, 596 + "configstore": { 597 + "version": "3.1.1", 598 + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz", 599 + "integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==", 600 + "requires": { 601 + "dot-prop": "4.2.0", 602 + "graceful-fs": "4.1.11", 603 + "make-dir": "1.1.0", 604 + "unique-string": "1.0.0", 605 + "write-file-atomic": "2.3.0", 606 + "xdg-basedir": "3.0.0" 607 + } 608 + }, 609 + "contains-path": { 610 + "version": "0.1.0", 611 + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", 612 + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", 613 + "dev": true 614 + }, 615 + "content": { 616 + "version": "4.0.3", 617 + "resolved": "https://registry.npmjs.org/content/-/content-4.0.3.tgz", 618 + "integrity": "sha512-BrMfT1xXZHaXyPT/sneXc3IQzh8uL15JWV1R5tU0xo4sBGjF7BN+IRi9WoQLSbfNEs7bJ3E69rjxBKg/RL7lOQ==", 619 + "requires": { 620 + "boom": "7.1.1" 621 + } 622 + }, 623 + "core-util-is": { 624 + "version": "1.0.2", 625 + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 626 + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 627 + }, 628 + "create-error-class": { 629 + "version": "3.0.2", 630 + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", 631 + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", 632 + "requires": { 633 + "capture-stack-trace": "1.0.0" 634 + } 635 + }, 636 + "cron": { 637 + "version": "1.3.0", 638 + "resolved": "https://registry.npmjs.org/cron/-/cron-1.3.0.tgz", 639 + "integrity": "sha512-K/SF7JlgMmNjcThWxkKvsHhey2EDB4CeOEWJ9aXWj3fbQJppsvTPIeyLdHfNq5IbbsMUUjRW1nr5dSO95f2E4w==", 640 + "requires": { 641 + "moment-timezone": "0.5.14" 642 + } 643 + }, 644 + "cross-spawn": { 645 + "version": "5.1.0", 646 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 647 + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 648 + "requires": { 649 + "lru-cache": "4.1.1", 650 + "shebang-command": "1.2.0", 651 + "which": "1.3.0" 652 + } 653 + }, 654 + "cryptiles": { 655 + "version": "4.1.1", 656 + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.1.tgz", 657 + "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", 658 + "requires": { 659 + "boom": "7.1.1" 660 + } 661 + }, 662 + "crypto-random-string": { 663 + "version": "1.0.0", 664 + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", 665 + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" 666 + }, 667 + "css-select": { 668 + "version": "1.2.0", 669 + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", 670 + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", 671 + "requires": { 672 + "boolbase": "1.0.0", 673 + "css-what": "2.1.0", 674 + "domutils": "1.5.1", 675 + "nth-check": "1.0.1" 676 + } 677 + }, 678 + "css-what": { 679 + "version": "2.1.0", 680 + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", 681 + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=" 682 + }, 683 + "debug": { 684 + "version": "2.6.9", 685 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 686 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 687 + "requires": { 688 + "ms": "2.0.0" 689 + } 690 + }, 691 + "decompress-response": { 692 + "version": "3.3.0", 693 + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", 694 + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", 695 + "requires": { 696 + "mimic-response": "1.0.0" 697 + } 698 + }, 699 + "deep-extend": { 700 + "version": "0.4.2", 701 + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", 702 + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" 703 + }, 704 + "deep-is": { 705 + "version": "0.1.3", 706 + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 707 + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 708 + "dev": true 709 + }, 710 + "del": { 711 + "version": "2.2.2", 712 + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", 713 + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", 714 + "dev": true, 715 + "requires": { 716 + "globby": "5.0.0", 717 + "is-path-cwd": "1.0.0", 718 + "is-path-in-cwd": "1.0.0", 719 + "object-assign": "4.1.1", 720 + "pify": "2.3.0", 721 + "pinkie-promise": "2.0.1", 722 + "rimraf": "2.6.2" 723 + }, 724 + "dependencies": { 725 + "pify": { 726 + "version": "2.3.0", 727 + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 728 + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 729 + "dev": true 730 + } 731 + } 732 + }, 733 + "detect-libc": { 734 + "version": "0.2.0", 735 + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-0.2.0.tgz", 736 + "integrity": "sha1-R/31ZzSKF+wl/L8LnkRjSKdvn7U=" 737 + }, 738 + "doctrine": { 739 + "version": "2.0.2", 740 + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.2.tgz", 741 + "integrity": "sha512-y0tm5Pq6ywp3qSTZ1vPgVdAnbDEoeoc5wlOHXoY1c4Wug/a7JvqHIl7BTvwodaHmejWkK/9dSb3sCYfyo/om8A==", 742 + "dev": true, 743 + "requires": { 744 + "esutils": "2.0.2" 745 + } 746 + }, 747 + "dom-converter": { 748 + "version": "0.1.4", 749 + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz", 750 + "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", 751 + "requires": { 752 + "utila": "0.3.3" 753 + }, 754 + "dependencies": { 755 + "utila": { 756 + "version": "0.3.3", 757 + "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", 758 + "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=" 759 + } 760 + } 761 + }, 762 + "dom-serializer": { 763 + "version": "0.1.0", 764 + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", 765 + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", 766 + "requires": { 767 + "domelementtype": "1.1.3", 768 + "entities": "1.1.1" 769 + }, 770 + "dependencies": { 771 + "domelementtype": { 772 + "version": "1.1.3", 773 + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", 774 + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" 775 + } 776 + } 777 + }, 778 + "domelementtype": { 779 + "version": "1.3.0", 780 + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", 781 + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" 782 + }, 783 + "domhandler": { 784 + "version": "2.1.0", 785 + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", 786 + "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", 787 + "requires": { 788 + "domelementtype": "1.3.0" 789 + } 790 + }, 791 + "domutils": { 792 + "version": "1.5.1", 793 + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", 794 + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", 795 + "requires": { 796 + "dom-serializer": "0.1.0", 797 + "domelementtype": "1.3.0" 798 + } 799 + }, 800 + "dot-prop": { 801 + "version": "4.2.0", 802 + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", 803 + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", 804 + "requires": { 805 + "is-obj": "1.0.1" 806 + } 807 + }, 808 + "duplexer": { 809 + "version": "0.1.1", 810 + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", 811 + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" 812 + }, 813 + "duplexer3": { 814 + "version": "0.1.4", 815 + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", 816 + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" 817 + }, 818 + "entities": { 819 + "version": "1.1.1", 820 + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", 821 + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" 822 + }, 823 + "error-ex": { 824 + "version": "1.3.1", 825 + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", 826 + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", 827 + "dev": true, 828 + "requires": { 829 + "is-arrayish": "0.2.1" 830 + }, 831 + "dependencies": { 832 + "is-arrayish": { 833 + "version": "0.2.1", 834 + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 835 + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 836 + "dev": true 837 + } 838 + } 839 + }, 840 + "es6-promise": { 841 + "version": "3.3.1", 842 + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", 843 + "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=" 844 + }, 845 + "escape-string-regexp": { 846 + "version": "1.0.5", 847 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 848 + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 849 + }, 850 + "eslint": { 851 + "version": "4.12.0", 852 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.12.0.tgz", 853 + "integrity": "sha512-Ohv4NU0FffkEe4so8DBrdfRUbGUtM4XnBTDll2pY7OdW3VkjBOZPerx3Bmuhg6S6D6r8+cli0EezN0xawUfYwg==", 854 + "dev": true, 855 + "requires": { 856 + "ajv": "5.5.0", 857 + "babel-code-frame": "6.26.0", 858 + "chalk": "2.3.0", 859 + "concat-stream": "1.6.0", 860 + "cross-spawn": "5.1.0", 861 + "debug": "3.1.0", 862 + "doctrine": "2.0.2", 863 + "eslint-scope": "3.7.1", 864 + "espree": "3.5.2", 865 + "esquery": "1.0.0", 866 + "estraverse": "4.2.0", 867 + "esutils": "2.0.2", 868 + "file-entry-cache": "2.0.0", 869 + "functional-red-black-tree": "1.0.1", 870 + "glob": "7.1.2", 871 + "globals": "11.0.1", 872 + "ignore": "3.3.7", 873 + "imurmurhash": "0.1.4", 874 + "inquirer": "3.3.0", 875 + "is-resolvable": "1.0.0", 876 + "js-yaml": "3.10.0", 877 + "json-stable-stringify-without-jsonify": "1.0.1", 878 + "levn": "0.3.0", 879 + "lodash": "4.17.4", 880 + "minimatch": "3.0.4", 881 + "mkdirp": "0.5.1", 882 + "natural-compare": "1.4.0", 883 + "optionator": "0.8.2", 884 + "path-is-inside": "1.0.2", 885 + "pluralize": "7.0.0", 886 + "progress": "2.0.0", 887 + "require-uncached": "1.0.3", 888 + "semver": "5.4.1", 889 + "strip-ansi": "4.0.0", 890 + "strip-json-comments": "2.0.1", 891 + "table": "4.0.2", 892 + "text-table": "0.2.0" 893 + }, 894 + "dependencies": { 895 + "ansi-regex": { 896 + "version": "3.0.0", 897 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 898 + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 899 + "dev": true 900 + }, 901 + "debug": { 902 + "version": "3.1.0", 903 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 904 + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 905 + "dev": true, 906 + "requires": { 907 + "ms": "2.0.0" 908 + } 909 + }, 910 + "strip-ansi": { 911 + "version": "4.0.0", 912 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 913 + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 914 + "dev": true, 915 + "requires": { 916 + "ansi-regex": "3.0.0" 917 + } 918 + } 919 + } 920 + }, 921 + "eslint-config-standard": { 922 + "version": "10.2.1", 923 + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz", 924 + "integrity": "sha1-wGHk0GbzedwXzVYsZOgZtN1FRZE=", 925 + "dev": true 926 + }, 927 + "eslint-import-resolver-node": { 928 + "version": "0.3.1", 929 + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz", 930 + "integrity": "sha512-yUtXS15gIcij68NmXmP9Ni77AQuCN0itXbCc/jWd8C6/yKZaSNXicpC8cgvjnxVdmfsosIXrjpzFq7GcDryb6A==", 931 + "dev": true, 932 + "requires": { 933 + "debug": "2.6.9", 934 + "resolve": "1.5.0" 935 + } 936 + }, 937 + "eslint-module-utils": { 938 + "version": "2.1.1", 939 + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz", 940 + "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==", 941 + "dev": true, 942 + "requires": { 943 + "debug": "2.6.9", 944 + "pkg-dir": "1.0.0" 945 + } 946 + }, 947 + "eslint-plugin-html": { 948 + "version": "4.0.1", 949 + "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-4.0.1.tgz", 950 + "integrity": "sha512-w8mmUJQjtDMUNbw3NOa4+PjOH/r4W5T+RN2nCmYgXv+QHx+NiBodnbPHXmJFJgo7Dr0Yk4G/2LCIRhfKceNmNA==", 951 + "dev": true, 952 + "requires": { 953 + "htmlparser2": "3.9.2" 954 + }, 955 + "dependencies": { 956 + "domhandler": { 957 + "version": "2.4.1", 958 + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", 959 + "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", 960 + "dev": true, 961 + "requires": { 962 + "domelementtype": "1.3.0" 963 + } 964 + }, 965 + "htmlparser2": { 966 + "version": "3.9.2", 967 + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", 968 + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", 969 + "dev": true, 970 + "requires": { 971 + "domelementtype": "1.3.0", 972 + "domhandler": "2.4.1", 973 + "domutils": "1.5.1", 974 + "entities": "1.1.1", 975 + "inherits": "2.0.3", 976 + "readable-stream": "2.3.3" 977 + } 978 + }, 979 + "isarray": { 980 + "version": "1.0.0", 981 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 982 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 983 + "dev": true 984 + }, 985 + "readable-stream": { 986 + "version": "2.3.3", 987 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 988 + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", 989 + "dev": true, 990 + "requires": { 991 + "core-util-is": "1.0.2", 992 + "inherits": "2.0.3", 993 + "isarray": "1.0.0", 994 + "process-nextick-args": "1.0.7", 995 + "safe-buffer": "5.1.1", 996 + "string_decoder": "1.0.3", 997 + "util-deprecate": "1.0.2" 998 + } 999 + }, 1000 + "string_decoder": { 1001 + "version": "1.0.3", 1002 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 1003 + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 1004 + "dev": true, 1005 + "requires": { 1006 + "safe-buffer": "5.1.1" 1007 + } 1008 + } 1009 + } 1010 + }, 1011 + "eslint-plugin-import": { 1012 + "version": "2.8.0", 1013 + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz", 1014 + "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==", 1015 + "dev": true, 1016 + "requires": { 1017 + "builtin-modules": "1.1.1", 1018 + "contains-path": "0.1.0", 1019 + "debug": "2.6.9", 1020 + "doctrine": "1.5.0", 1021 + "eslint-import-resolver-node": "0.3.1", 1022 + "eslint-module-utils": "2.1.1", 1023 + "has": "1.0.1", 1024 + "lodash.cond": "4.5.2", 1025 + "minimatch": "3.0.4", 1026 + "read-pkg-up": "2.0.0" 1027 + }, 1028 + "dependencies": { 1029 + "doctrine": { 1030 + "version": "1.5.0", 1031 + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", 1032 + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", 1033 + "dev": true, 1034 + "requires": { 1035 + "esutils": "2.0.2", 1036 + "isarray": "1.0.0" 1037 + } 1038 + }, 1039 + "isarray": { 1040 + "version": "1.0.0", 1041 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1042 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 1043 + "dev": true 1044 + } 1045 + } 1046 + }, 1047 + "eslint-plugin-jest": { 1048 + "version": "21.3.2", 1049 + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-21.3.2.tgz", 1050 + "integrity": "sha512-Kbr3lUw7wcAEvjnK1mA9q08Td4sCZPUru6nnBmD1/8gg3UWNHXAZd3W3l3qYaBS2b9yrfJZvCtIHyjKYTHUqUw==", 1051 + "dev": true 1052 + }, 1053 + "eslint-plugin-node": { 1054 + "version": "5.2.1", 1055 + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-5.2.1.tgz", 1056 + "integrity": "sha512-xhPXrh0Vl/b7870uEbaumb2Q+LxaEcOQ3kS1jtIXanBAwpMre1l5q/l2l/hESYJGEFKuI78bp6Uw50hlpr7B+g==", 1057 + "dev": true, 1058 + "requires": { 1059 + "ignore": "3.3.7", 1060 + "minimatch": "3.0.4", 1061 + "resolve": "1.5.0", 1062 + "semver": "5.3.0" 1063 + }, 1064 + "dependencies": { 1065 + "semver": { 1066 + "version": "5.3.0", 1067 + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", 1068 + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", 1069 + "dev": true 1070 + } 1071 + } 1072 + }, 1073 + "eslint-plugin-promise": { 1074 + "version": "3.6.0", 1075 + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.6.0.tgz", 1076 + "integrity": "sha512-YQzM6TLTlApAr7Li8vWKR+K3WghjwKcYzY0d2roWap4SLK+kzuagJX/leTetIDWsFcTFnKNJXWupDCD6aZkP2Q==", 1077 + "dev": true 1078 + }, 1079 + "eslint-plugin-standard": { 1080 + "version": "3.0.1", 1081 + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", 1082 + "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=", 1083 + "dev": true 1084 + }, 1085 + "eslint-scope": { 1086 + "version": "3.7.1", 1087 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", 1088 + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", 1089 + "dev": true, 1090 + "requires": { 1091 + "esrecurse": "4.2.0", 1092 + "estraverse": "4.2.0" 1093 + } 1094 + }, 1095 + "espree": { 1096 + "version": "3.5.2", 1097 + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz", 1098 + "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==", 1099 + "dev": true, 1100 + "requires": { 1101 + "acorn": "5.2.1", 1102 + "acorn-jsx": "3.0.1" 1103 + } 1104 + }, 1105 + "esprima": { 1106 + "version": "4.0.0", 1107 + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", 1108 + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", 1109 + "dev": true 1110 + }, 1111 + "esquery": { 1112 + "version": "1.0.0", 1113 + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", 1114 + "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", 1115 + "dev": true, 1116 + "requires": { 1117 + "estraverse": "4.2.0" 1118 + } 1119 + }, 1120 + "esrecurse": { 1121 + "version": "4.2.0", 1122 + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", 1123 + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", 1124 + "dev": true, 1125 + "requires": { 1126 + "estraverse": "4.2.0", 1127 + "object-assign": "4.1.1" 1128 + } 1129 + }, 1130 + "estraverse": { 1131 + "version": "4.2.0", 1132 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 1133 + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 1134 + "dev": true 1135 + }, 1136 + "esutils": { 1137 + "version": "2.0.2", 1138 + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 1139 + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 1140 + "dev": true 1141 + }, 1142 + "event-stream": { 1143 + "version": "3.3.4", 1144 + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", 1145 + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", 1146 + "requires": { 1147 + "duplexer": "0.1.1", 1148 + "from": "0.1.7", 1149 + "map-stream": "0.1.0", 1150 + "pause-stream": "0.0.11", 1151 + "split": "0.3.3", 1152 + "stream-combiner": "0.0.4", 1153 + "through": "2.3.8" 1154 + } 1155 + }, 1156 + "execa": { 1157 + "version": "0.7.0", 1158 + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", 1159 + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", 1160 + "requires": { 1161 + "cross-spawn": "5.1.0", 1162 + "get-stream": "3.0.0", 1163 + "is-stream": "1.1.0", 1164 + "npm-run-path": "2.0.2", 1165 + "p-finally": "1.0.0", 1166 + "signal-exit": "3.0.2", 1167 + "strip-eof": "1.0.0" 1168 + } 1169 + }, 1170 + "expand-brackets": { 1171 + "version": "0.1.5", 1172 + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 1173 + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 1174 + "requires": { 1175 + "is-posix-bracket": "0.1.1" 1176 + } 1177 + }, 1178 + "expand-range": { 1179 + "version": "1.8.2", 1180 + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 1181 + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 1182 + "requires": { 1183 + "fill-range": "2.2.3" 1184 + } 1185 + }, 1186 + "external-editor": { 1187 + "version": "2.1.0", 1188 + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", 1189 + "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", 1190 + "dev": true, 1191 + "requires": { 1192 + "chardet": "0.4.2", 1193 + "iconv-lite": "0.4.19", 1194 + "tmp": "0.0.33" 1195 + } 1196 + }, 1197 + "extglob": { 1198 + "version": "0.3.2", 1199 + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 1200 + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 1201 + "requires": { 1202 + "is-extglob": "1.0.0" 1203 + } 1204 + }, 1205 + "fast-deep-equal": { 1206 + "version": "1.0.0", 1207 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", 1208 + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", 1209 + "dev": true 1210 + }, 1211 + "fast-json-stable-stringify": { 1212 + "version": "2.0.0", 1213 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 1214 + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", 1215 + "dev": true 1216 + }, 1217 + "fast-levenshtein": { 1218 + "version": "2.0.6", 1219 + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1220 + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 1221 + "dev": true 1222 + }, 1223 + "figures": { 1224 + "version": "2.0.0", 1225 + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 1226 + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 1227 + "dev": true, 1228 + "requires": { 1229 + "escape-string-regexp": "1.0.5" 1230 + } 1231 + }, 1232 + "file-entry-cache": { 1233 + "version": "2.0.0", 1234 + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", 1235 + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", 1236 + "dev": true, 1237 + "requires": { 1238 + "flat-cache": "1.3.0", 1239 + "object-assign": "4.1.1" 1240 + } 1241 + }, 1242 + "filename-regex": { 1243 + "version": "2.0.1", 1244 + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 1245 + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" 1246 + }, 1247 + "fill-range": { 1248 + "version": "2.2.3", 1249 + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", 1250 + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", 1251 + "requires": { 1252 + "is-number": "2.1.0", 1253 + "isobject": "2.1.0", 1254 + "randomatic": "1.1.7", 1255 + "repeat-element": "1.1.2", 1256 + "repeat-string": "1.6.1" 1257 + } 1258 + }, 1259 + "find-up": { 1260 + "version": "1.1.2", 1261 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 1262 + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 1263 + "dev": true, 1264 + "requires": { 1265 + "path-exists": "2.1.0", 1266 + "pinkie-promise": "2.0.1" 1267 + } 1268 + }, 1269 + "flat-cache": { 1270 + "version": "1.3.0", 1271 + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", 1272 + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", 1273 + "dev": true, 1274 + "requires": { 1275 + "circular-json": "0.3.3", 1276 + "del": "2.2.2", 1277 + "graceful-fs": "4.1.11", 1278 + "write": "0.2.1" 1279 + } 1280 + }, 1281 + "for-in": { 1282 + "version": "1.0.2", 1283 + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1284 + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" 1285 + }, 1286 + "for-own": { 1287 + "version": "0.1.5", 1288 + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 1289 + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 1290 + "requires": { 1291 + "for-in": "1.0.2" 1292 + } 1293 + }, 1294 + "from": { 1295 + "version": "0.1.7", 1296 + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", 1297 + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" 1298 + }, 1299 + "fs-extra": { 1300 + "version": "4.0.3", 1301 + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", 1302 + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", 1303 + "requires": { 1304 + "graceful-fs": "4.1.11", 1305 + "jsonfile": "4.0.0", 1306 + "universalify": "0.1.1" 1307 + } 1308 + }, 1309 + "fs.realpath": { 1310 + "version": "1.0.0", 1311 + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1312 + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1313 + "dev": true 1314 + }, 1315 + "fsevents": { 1316 + "version": "1.1.3", 1317 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", 1318 + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", 1319 + "optional": true, 1320 + "requires": { 1321 + "nan": "2.8.0", 1322 + "node-pre-gyp": "0.6.39" 1323 + }, 1324 + "dependencies": { 1325 + "abbrev": { 1326 + "version": "1.1.0", 1327 + "bundled": true, 1328 + "optional": true 1329 + }, 1330 + "ajv": { 1331 + "version": "4.11.8", 1332 + "bundled": true, 1333 + "optional": true, 1334 + "requires": { 1335 + "co": "4.6.0", 1336 + "json-stable-stringify": "1.0.1" 1337 + } 1338 + }, 1339 + "ansi-regex": { 1340 + "version": "2.1.1", 1341 + "bundled": true 1342 + }, 1343 + "aproba": { 1344 + "version": "1.1.1", 1345 + "bundled": true, 1346 + "optional": true 1347 + }, 1348 + "are-we-there-yet": { 1349 + "version": "1.1.4", 1350 + "bundled": true, 1351 + "optional": true, 1352 + "requires": { 1353 + "delegates": "1.0.0", 1354 + "readable-stream": "2.2.9" 1355 + } 1356 + }, 1357 + "asn1": { 1358 + "version": "0.2.3", 1359 + "bundled": true, 1360 + "optional": true 1361 + }, 1362 + "assert-plus": { 1363 + "version": "0.2.0", 1364 + "bundled": true, 1365 + "optional": true 1366 + }, 1367 + "asynckit": { 1368 + "version": "0.4.0", 1369 + "bundled": true, 1370 + "optional": true 1371 + }, 1372 + "aws-sign2": { 1373 + "version": "0.6.0", 1374 + "bundled": true, 1375 + "optional": true 1376 + }, 1377 + "aws4": { 1378 + "version": "1.6.0", 1379 + "bundled": true, 1380 + "optional": true 1381 + }, 1382 + "balanced-match": { 1383 + "version": "0.4.2", 1384 + "bundled": true 1385 + }, 1386 + "bcrypt-pbkdf": { 1387 + "version": "1.0.1", 1388 + "bundled": true, 1389 + "optional": true, 1390 + "requires": { 1391 + "tweetnacl": "0.14.5" 1392 + } 1393 + }, 1394 + "block-stream": { 1395 + "version": "0.0.9", 1396 + "bundled": true, 1397 + "requires": { 1398 + "inherits": "2.0.3" 1399 + } 1400 + }, 1401 + "boom": { 1402 + "version": "2.10.1", 1403 + "bundled": true, 1404 + "requires": { 1405 + "hoek": "2.16.3" 1406 + } 1407 + }, 1408 + "brace-expansion": { 1409 + "version": "1.1.7", 1410 + "bundled": true, 1411 + "requires": { 1412 + "balanced-match": "0.4.2", 1413 + "concat-map": "0.0.1" 1414 + } 1415 + }, 1416 + "buffer-shims": { 1417 + "version": "1.0.0", 1418 + "bundled": true 1419 + }, 1420 + "caseless": { 1421 + "version": "0.12.0", 1422 + "bundled": true, 1423 + "optional": true 1424 + }, 1425 + "co": { 1426 + "version": "4.6.0", 1427 + "bundled": true, 1428 + "optional": true 1429 + }, 1430 + "code-point-at": { 1431 + "version": "1.1.0", 1432 + "bundled": true 1433 + }, 1434 + "combined-stream": { 1435 + "version": "1.0.5", 1436 + "bundled": true, 1437 + "requires": { 1438 + "delayed-stream": "1.0.0" 1439 + } 1440 + }, 1441 + "concat-map": { 1442 + "version": "0.0.1", 1443 + "bundled": true 1444 + }, 1445 + "console-control-strings": { 1446 + "version": "1.1.0", 1447 + "bundled": true 1448 + }, 1449 + "core-util-is": { 1450 + "version": "1.0.2", 1451 + "bundled": true 1452 + }, 1453 + "cryptiles": { 1454 + "version": "2.0.5", 1455 + "bundled": true, 1456 + "requires": { 1457 + "boom": "2.10.1" 1458 + } 1459 + }, 1460 + "dashdash": { 1461 + "version": "1.14.1", 1462 + "bundled": true, 1463 + "optional": true, 1464 + "requires": { 1465 + "assert-plus": "1.0.0" 1466 + }, 1467 + "dependencies": { 1468 + "assert-plus": { 1469 + "version": "1.0.0", 1470 + "bundled": true, 1471 + "optional": true 1472 + } 1473 + } 1474 + }, 1475 + "debug": { 1476 + "version": "2.6.8", 1477 + "bundled": true, 1478 + "optional": true, 1479 + "requires": { 1480 + "ms": "2.0.0" 1481 + } 1482 + }, 1483 + "deep-extend": { 1484 + "version": "0.4.2", 1485 + "bundled": true, 1486 + "optional": true 1487 + }, 1488 + "delayed-stream": { 1489 + "version": "1.0.0", 1490 + "bundled": true 1491 + }, 1492 + "delegates": { 1493 + "version": "1.0.0", 1494 + "bundled": true, 1495 + "optional": true 1496 + }, 1497 + "detect-libc": { 1498 + "version": "1.0.2", 1499 + "bundled": true, 1500 + "optional": true 1501 + }, 1502 + "ecc-jsbn": { 1503 + "version": "0.1.1", 1504 + "bundled": true, 1505 + "optional": true, 1506 + "requires": { 1507 + "jsbn": "0.1.1" 1508 + } 1509 + }, 1510 + "extend": { 1511 + "version": "3.0.1", 1512 + "bundled": true, 1513 + "optional": true 1514 + }, 1515 + "extsprintf": { 1516 + "version": "1.0.2", 1517 + "bundled": true 1518 + }, 1519 + "forever-agent": { 1520 + "version": "0.6.1", 1521 + "bundled": true, 1522 + "optional": true 1523 + }, 1524 + "form-data": { 1525 + "version": "2.1.4", 1526 + "bundled": true, 1527 + "optional": true, 1528 + "requires": { 1529 + "asynckit": "0.4.0", 1530 + "combined-stream": "1.0.5", 1531 + "mime-types": "2.1.15" 1532 + } 1533 + }, 1534 + "fs.realpath": { 1535 + "version": "1.0.0", 1536 + "bundled": true 1537 + }, 1538 + "fstream": { 1539 + "version": "1.0.11", 1540 + "bundled": true, 1541 + "requires": { 1542 + "graceful-fs": "4.1.11", 1543 + "inherits": "2.0.3", 1544 + "mkdirp": "0.5.1", 1545 + "rimraf": "2.6.1" 1546 + } 1547 + }, 1548 + "fstream-ignore": { 1549 + "version": "1.0.5", 1550 + "bundled": true, 1551 + "optional": true, 1552 + "requires": { 1553 + "fstream": "1.0.11", 1554 + "inherits": "2.0.3", 1555 + "minimatch": "3.0.4" 1556 + } 1557 + }, 1558 + "gauge": { 1559 + "version": "2.7.4", 1560 + "bundled": true, 1561 + "optional": true, 1562 + "requires": { 1563 + "aproba": "1.1.1", 1564 + "console-control-strings": "1.1.0", 1565 + "has-unicode": "2.0.1", 1566 + "object-assign": "4.1.1", 1567 + "signal-exit": "3.0.2", 1568 + "string-width": "1.0.2", 1569 + "strip-ansi": "3.0.1", 1570 + "wide-align": "1.1.2" 1571 + } 1572 + }, 1573 + "getpass": { 1574 + "version": "0.1.7", 1575 + "bundled": true, 1576 + "optional": true, 1577 + "requires": { 1578 + "assert-plus": "1.0.0" 1579 + }, 1580 + "dependencies": { 1581 + "assert-plus": { 1582 + "version": "1.0.0", 1583 + "bundled": true, 1584 + "optional": true 1585 + } 1586 + } 1587 + }, 1588 + "glob": { 1589 + "version": "7.1.2", 1590 + "bundled": true, 1591 + "requires": { 1592 + "fs.realpath": "1.0.0", 1593 + "inflight": "1.0.6", 1594 + "inherits": "2.0.3", 1595 + "minimatch": "3.0.4", 1596 + "once": "1.4.0", 1597 + "path-is-absolute": "1.0.1" 1598 + } 1599 + }, 1600 + "graceful-fs": { 1601 + "version": "4.1.11", 1602 + "bundled": true 1603 + }, 1604 + "har-schema": { 1605 + "version": "1.0.5", 1606 + "bundled": true, 1607 + "optional": true 1608 + }, 1609 + "har-validator": { 1610 + "version": "4.2.1", 1611 + "bundled": true, 1612 + "optional": true, 1613 + "requires": { 1614 + "ajv": "4.11.8", 1615 + "har-schema": "1.0.5" 1616 + } 1617 + }, 1618 + "has-unicode": { 1619 + "version": "2.0.1", 1620 + "bundled": true, 1621 + "optional": true 1622 + }, 1623 + "hawk": { 1624 + "version": "3.1.3", 1625 + "bundled": true, 1626 + "requires": { 1627 + "boom": "2.10.1", 1628 + "cryptiles": "2.0.5", 1629 + "hoek": "2.16.3", 1630 + "sntp": "1.0.9" 1631 + } 1632 + }, 1633 + "hoek": { 1634 + "version": "2.16.3", 1635 + "bundled": true 1636 + }, 1637 + "http-signature": { 1638 + "version": "1.1.1", 1639 + "bundled": true, 1640 + "optional": true, 1641 + "requires": { 1642 + "assert-plus": "0.2.0", 1643 + "jsprim": "1.4.0", 1644 + "sshpk": "1.13.0" 1645 + } 1646 + }, 1647 + "inflight": { 1648 + "version": "1.0.6", 1649 + "bundled": true, 1650 + "requires": { 1651 + "once": "1.4.0", 1652 + "wrappy": "1.0.2" 1653 + } 1654 + }, 1655 + "inherits": { 1656 + "version": "2.0.3", 1657 + "bundled": true 1658 + }, 1659 + "ini": { 1660 + "version": "1.3.4", 1661 + "bundled": true, 1662 + "optional": true 1663 + }, 1664 + "is-fullwidth-code-point": { 1665 + "version": "1.0.0", 1666 + "bundled": true, 1667 + "requires": { 1668 + "number-is-nan": "1.0.1" 1669 + } 1670 + }, 1671 + "is-typedarray": { 1672 + "version": "1.0.0", 1673 + "bundled": true, 1674 + "optional": true 1675 + }, 1676 + "isarray": { 1677 + "version": "1.0.0", 1678 + "bundled": true 1679 + }, 1680 + "isstream": { 1681 + "version": "0.1.2", 1682 + "bundled": true, 1683 + "optional": true 1684 + }, 1685 + "jodid25519": { 1686 + "version": "1.0.2", 1687 + "bundled": true, 1688 + "optional": true, 1689 + "requires": { 1690 + "jsbn": "0.1.1" 1691 + } 1692 + }, 1693 + "jsbn": { 1694 + "version": "0.1.1", 1695 + "bundled": true, 1696 + "optional": true 1697 + }, 1698 + "json-schema": { 1699 + "version": "0.2.3", 1700 + "bundled": true, 1701 + "optional": true 1702 + }, 1703 + "json-stable-stringify": { 1704 + "version": "1.0.1", 1705 + "bundled": true, 1706 + "optional": true, 1707 + "requires": { 1708 + "jsonify": "0.0.0" 1709 + } 1710 + }, 1711 + "json-stringify-safe": { 1712 + "version": "5.0.1", 1713 + "bundled": true, 1714 + "optional": true 1715 + }, 1716 + "jsonify": { 1717 + "version": "0.0.0", 1718 + "bundled": true, 1719 + "optional": true 1720 + }, 1721 + "jsprim": { 1722 + "version": "1.4.0", 1723 + "bundled": true, 1724 + "optional": true, 1725 + "requires": { 1726 + "assert-plus": "1.0.0", 1727 + "extsprintf": "1.0.2", 1728 + "json-schema": "0.2.3", 1729 + "verror": "1.3.6" 1730 + }, 1731 + "dependencies": { 1732 + "assert-plus": { 1733 + "version": "1.0.0", 1734 + "bundled": true, 1735 + "optional": true 1736 + } 1737 + } 1738 + }, 1739 + "mime-db": { 1740 + "version": "1.27.0", 1741 + "bundled": true 1742 + }, 1743 + "mime-types": { 1744 + "version": "2.1.15", 1745 + "bundled": true, 1746 + "requires": { 1747 + "mime-db": "1.27.0" 1748 + } 1749 + }, 1750 + "minimatch": { 1751 + "version": "3.0.4", 1752 + "bundled": true, 1753 + "requires": { 1754 + "brace-expansion": "1.1.7" 1755 + } 1756 + }, 1757 + "minimist": { 1758 + "version": "0.0.8", 1759 + "bundled": true 1760 + }, 1761 + "mkdirp": { 1762 + "version": "0.5.1", 1763 + "bundled": true, 1764 + "requires": { 1765 + "minimist": "0.0.8" 1766 + } 1767 + }, 1768 + "ms": { 1769 + "version": "2.0.0", 1770 + "bundled": true, 1771 + "optional": true 1772 + }, 1773 + "node-pre-gyp": { 1774 + "version": "0.6.39", 1775 + "bundled": true, 1776 + "optional": true, 1777 + "requires": { 1778 + "detect-libc": "1.0.2", 1779 + "hawk": "3.1.3", 1780 + "mkdirp": "0.5.1", 1781 + "nopt": "4.0.1", 1782 + "npmlog": "4.1.0", 1783 + "rc": "1.2.1", 1784 + "request": "2.81.0", 1785 + "rimraf": "2.6.1", 1786 + "semver": "5.3.0", 1787 + "tar": "2.2.1", 1788 + "tar-pack": "3.4.0" 1789 + } 1790 + }, 1791 + "nopt": { 1792 + "version": "4.0.1", 1793 + "bundled": true, 1794 + "optional": true, 1795 + "requires": { 1796 + "abbrev": "1.1.0", 1797 + "osenv": "0.1.4" 1798 + } 1799 + }, 1800 + "npmlog": { 1801 + "version": "4.1.0", 1802 + "bundled": true, 1803 + "optional": true, 1804 + "requires": { 1805 + "are-we-there-yet": "1.1.4", 1806 + "console-control-strings": "1.1.0", 1807 + "gauge": "2.7.4", 1808 + "set-blocking": "2.0.0" 1809 + } 1810 + }, 1811 + "number-is-nan": { 1812 + "version": "1.0.1", 1813 + "bundled": true 1814 + }, 1815 + "oauth-sign": { 1816 + "version": "0.8.2", 1817 + "bundled": true, 1818 + "optional": true 1819 + }, 1820 + "object-assign": { 1821 + "version": "4.1.1", 1822 + "bundled": true, 1823 + "optional": true 1824 + }, 1825 + "once": { 1826 + "version": "1.4.0", 1827 + "bundled": true, 1828 + "requires": { 1829 + "wrappy": "1.0.2" 1830 + } 1831 + }, 1832 + "os-homedir": { 1833 + "version": "1.0.2", 1834 + "bundled": true, 1835 + "optional": true 1836 + }, 1837 + "os-tmpdir": { 1838 + "version": "1.0.2", 1839 + "bundled": true, 1840 + "optional": true 1841 + }, 1842 + "osenv": { 1843 + "version": "0.1.4", 1844 + "bundled": true, 1845 + "optional": true, 1846 + "requires": { 1847 + "os-homedir": "1.0.2", 1848 + "os-tmpdir": "1.0.2" 1849 + } 1850 + }, 1851 + "path-is-absolute": { 1852 + "version": "1.0.1", 1853 + "bundled": true 1854 + }, 1855 + "performance-now": { 1856 + "version": "0.2.0", 1857 + "bundled": true, 1858 + "optional": true 1859 + }, 1860 + "process-nextick-args": { 1861 + "version": "1.0.7", 1862 + "bundled": true 1863 + }, 1864 + "punycode": { 1865 + "version": "1.4.1", 1866 + "bundled": true, 1867 + "optional": true 1868 + }, 1869 + "qs": { 1870 + "version": "6.4.0", 1871 + "bundled": true, 1872 + "optional": true 1873 + }, 1874 + "rc": { 1875 + "version": "1.2.1", 1876 + "bundled": true, 1877 + "optional": true, 1878 + "requires": { 1879 + "deep-extend": "0.4.2", 1880 + "ini": "1.3.4", 1881 + "minimist": "1.2.0", 1882 + "strip-json-comments": "2.0.1" 1883 + }, 1884 + "dependencies": { 1885 + "minimist": { 1886 + "version": "1.2.0", 1887 + "bundled": true, 1888 + "optional": true 1889 + } 1890 + } 1891 + }, 1892 + "readable-stream": { 1893 + "version": "2.2.9", 1894 + "bundled": true, 1895 + "requires": { 1896 + "buffer-shims": "1.0.0", 1897 + "core-util-is": "1.0.2", 1898 + "inherits": "2.0.3", 1899 + "isarray": "1.0.0", 1900 + "process-nextick-args": "1.0.7", 1901 + "string_decoder": "1.0.1", 1902 + "util-deprecate": "1.0.2" 1903 + } 1904 + }, 1905 + "request": { 1906 + "version": "2.81.0", 1907 + "bundled": true, 1908 + "optional": true, 1909 + "requires": { 1910 + "aws-sign2": "0.6.0", 1911 + "aws4": "1.6.0", 1912 + "caseless": "0.12.0", 1913 + "combined-stream": "1.0.5", 1914 + "extend": "3.0.1", 1915 + "forever-agent": "0.6.1", 1916 + "form-data": "2.1.4", 1917 + "har-validator": "4.2.1", 1918 + "hawk": "3.1.3", 1919 + "http-signature": "1.1.1", 1920 + "is-typedarray": "1.0.0", 1921 + "isstream": "0.1.2", 1922 + "json-stringify-safe": "5.0.1", 1923 + "mime-types": "2.1.15", 1924 + "oauth-sign": "0.8.2", 1925 + "performance-now": "0.2.0", 1926 + "qs": "6.4.0", 1927 + "safe-buffer": "5.0.1", 1928 + "stringstream": "0.0.5", 1929 + "tough-cookie": "2.3.2", 1930 + "tunnel-agent": "0.6.0", 1931 + "uuid": "3.0.1" 1932 + } 1933 + }, 1934 + "rimraf": { 1935 + "version": "2.6.1", 1936 + "bundled": true, 1937 + "requires": { 1938 + "glob": "7.1.2" 1939 + } 1940 + }, 1941 + "safe-buffer": { 1942 + "version": "5.0.1", 1943 + "bundled": true 1944 + }, 1945 + "semver": { 1946 + "version": "5.3.0", 1947 + "bundled": true, 1948 + "optional": true 1949 + }, 1950 + "set-blocking": { 1951 + "version": "2.0.0", 1952 + "bundled": true, 1953 + "optional": true 1954 + }, 1955 + "signal-exit": { 1956 + "version": "3.0.2", 1957 + "bundled": true, 1958 + "optional": true 1959 + }, 1960 + "sntp": { 1961 + "version": "1.0.9", 1962 + "bundled": true, 1963 + "requires": { 1964 + "hoek": "2.16.3" 1965 + } 1966 + }, 1967 + "sshpk": { 1968 + "version": "1.13.0", 1969 + "bundled": true, 1970 + "optional": true, 1971 + "requires": { 1972 + "asn1": "0.2.3", 1973 + "assert-plus": "1.0.0", 1974 + "bcrypt-pbkdf": "1.0.1", 1975 + "dashdash": "1.14.1", 1976 + "ecc-jsbn": "0.1.1", 1977 + "getpass": "0.1.7", 1978 + "jodid25519": "1.0.2", 1979 + "jsbn": "0.1.1", 1980 + "tweetnacl": "0.14.5" 1981 + }, 1982 + "dependencies": { 1983 + "assert-plus": { 1984 + "version": "1.0.0", 1985 + "bundled": true, 1986 + "optional": true 1987 + } 1988 + } 1989 + }, 1990 + "string-width": { 1991 + "version": "1.0.2", 1992 + "bundled": true, 1993 + "requires": { 1994 + "code-point-at": "1.1.0", 1995 + "is-fullwidth-code-point": "1.0.0", 1996 + "strip-ansi": "3.0.1" 1997 + } 1998 + }, 1999 + "string_decoder": { 2000 + "version": "1.0.1", 2001 + "bundled": true, 2002 + "requires": { 2003 + "safe-buffer": "5.0.1" 2004 + } 2005 + }, 2006 + "stringstream": { 2007 + "version": "0.0.5", 2008 + "bundled": true, 2009 + "optional": true 2010 + }, 2011 + "strip-ansi": { 2012 + "version": "3.0.1", 2013 + "bundled": true, 2014 + "requires": { 2015 + "ansi-regex": "2.1.1" 2016 + } 2017 + }, 2018 + "strip-json-comments": { 2019 + "version": "2.0.1", 2020 + "bundled": true, 2021 + "optional": true 2022 + }, 2023 + "tar": { 2024 + "version": "2.2.1", 2025 + "bundled": true, 2026 + "requires": { 2027 + "block-stream": "0.0.9", 2028 + "fstream": "1.0.11", 2029 + "inherits": "2.0.3" 2030 + } 2031 + }, 2032 + "tar-pack": { 2033 + "version": "3.4.0", 2034 + "bundled": true, 2035 + "optional": true, 2036 + "requires": { 2037 + "debug": "2.6.8", 2038 + "fstream": "1.0.11", 2039 + "fstream-ignore": "1.0.5", 2040 + "once": "1.4.0", 2041 + "readable-stream": "2.2.9", 2042 + "rimraf": "2.6.1", 2043 + "tar": "2.2.1", 2044 + "uid-number": "0.0.6" 2045 + } 2046 + }, 2047 + "tough-cookie": { 2048 + "version": "2.3.2", 2049 + "bundled": true, 2050 + "optional": true, 2051 + "requires": { 2052 + "punycode": "1.4.1" 2053 + } 2054 + }, 2055 + "tunnel-agent": { 2056 + "version": "0.6.0", 2057 + "bundled": true, 2058 + "optional": true, 2059 + "requires": { 2060 + "safe-buffer": "5.0.1" 2061 + } 2062 + }, 2063 + "tweetnacl": { 2064 + "version": "0.14.5", 2065 + "bundled": true, 2066 + "optional": true 2067 + }, 2068 + "uid-number": { 2069 + "version": "0.0.6", 2070 + "bundled": true, 2071 + "optional": true 2072 + }, 2073 + "util-deprecate": { 2074 + "version": "1.0.2", 2075 + "bundled": true 2076 + }, 2077 + "uuid": { 2078 + "version": "3.0.1", 2079 + "bundled": true, 2080 + "optional": true 2081 + }, 2082 + "verror": { 2083 + "version": "1.3.6", 2084 + "bundled": true, 2085 + "optional": true, 2086 + "requires": { 2087 + "extsprintf": "1.0.2" 2088 + } 2089 + }, 2090 + "wide-align": { 2091 + "version": "1.1.2", 2092 + "bundled": true, 2093 + "optional": true, 2094 + "requires": { 2095 + "string-width": "1.0.2" 2096 + } 2097 + }, 2098 + "wrappy": { 2099 + "version": "1.0.2", 2100 + "bundled": true 2101 + } 2102 + } 2103 + }, 2104 + "function-bind": { 2105 + "version": "1.1.1", 2106 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 2107 + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 2108 + "dev": true 2109 + }, 2110 + "functional-red-black-tree": { 2111 + "version": "1.0.1", 2112 + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 2113 + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 2114 + "dev": true 2115 + }, 2116 + "get-proxy": { 2117 + "version": "2.1.0", 2118 + "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz", 2119 + "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==", 2120 + "requires": { 2121 + "npm-conf": "1.1.3" 2122 + } 2123 + }, 2124 + "get-stream": { 2125 + "version": "3.0.0", 2126 + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 2127 + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" 2128 + }, 2129 + "glob": { 2130 + "version": "7.1.2", 2131 + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 2132 + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 2133 + "dev": true, 2134 + "requires": { 2135 + "fs.realpath": "1.0.0", 2136 + "inflight": "1.0.6", 2137 + "inherits": "2.0.3", 2138 + "minimatch": "3.0.4", 2139 + "once": "1.4.0", 2140 + "path-is-absolute": "1.0.1" 2141 + } 2142 + }, 2143 + "glob-base": { 2144 + "version": "0.3.0", 2145 + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 2146 + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 2147 + "requires": { 2148 + "glob-parent": "2.0.0", 2149 + "is-glob": "2.0.1" 2150 + } 2151 + }, 2152 + "glob-parent": { 2153 + "version": "2.0.0", 2154 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 2155 + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 2156 + "requires": { 2157 + "is-glob": "2.0.1" 2158 + } 2159 + }, 2160 + "global-dirs": { 2161 + "version": "0.1.1", 2162 + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", 2163 + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", 2164 + "requires": { 2165 + "ini": "1.3.5" 2166 + } 2167 + }, 2168 + "globals": { 2169 + "version": "11.0.1", 2170 + "resolved": "https://registry.npmjs.org/globals/-/globals-11.0.1.tgz", 2171 + "integrity": "sha1-Eqh7sBDlFUOWrMU14eQ/x1Ow5eg=", 2172 + "dev": true 2173 + }, 2174 + "globby": { 2175 + "version": "5.0.0", 2176 + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", 2177 + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", 2178 + "dev": true, 2179 + "requires": { 2180 + "array-union": "1.0.2", 2181 + "arrify": "1.0.1", 2182 + "glob": "7.1.2", 2183 + "object-assign": "4.1.1", 2184 + "pify": "2.3.0", 2185 + "pinkie-promise": "2.0.1" 2186 + }, 2187 + "dependencies": { 2188 + "pify": { 2189 + "version": "2.3.0", 2190 + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 2191 + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 2192 + "dev": true 2193 + } 2194 + } 2195 + }, 2196 + "got": { 2197 + "version": "6.7.1", 2198 + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", 2199 + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", 2200 + "requires": { 2201 + "create-error-class": "3.0.2", 2202 + "duplexer3": "0.1.4", 2203 + "get-stream": "3.0.0", 2204 + "is-redirect": "1.0.0", 2205 + "is-retry-allowed": "1.1.0", 2206 + "is-stream": "1.1.0", 2207 + "lowercase-keys": "1.0.0", 2208 + "safe-buffer": "5.1.1", 2209 + "timed-out": "4.0.1", 2210 + "unzip-response": "2.0.1", 2211 + "url-parse-lax": "1.0.0" 2212 + } 2213 + }, 2214 + "graceful-fs": { 2215 + "version": "4.1.11", 2216 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 2217 + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" 2218 + }, 2219 + "hapi": { 2220 + "version": "17.1.1", 2221 + "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.1.1.tgz", 2222 + "integrity": "sha512-KuZEpq8CQEMCWqJOVk//Kq1TQFlWoUHB4CLe3KBkOqRa2OWMa/A/StH37fJRDTkZvPWIKNIN94O2J0yfITE8QQ==", 2223 + "requires": { 2224 + "accept": "3.0.2", 2225 + "ammo": "3.0.0", 2226 + "boom": "7.1.1", 2227 + "bounce": "1.2.0", 2228 + "call": "5.0.1", 2229 + "catbox": "10.0.2", 2230 + "catbox-memory": "3.1.1", 2231 + "heavy": "6.0.0", 2232 + "hoek": "5.0.2", 2233 + "joi": "13.0.2", 2234 + "mimos": "4.0.0", 2235 + "podium": "3.1.2", 2236 + "shot": "4.0.4", 2237 + "statehood": "6.0.5", 2238 + "subtext": "6.0.7", 2239 + "teamwork": "3.0.1", 2240 + "topo": "3.0.0" 2241 + } 2242 + }, 2243 + "hapi-compat": { 2244 + "version": "1.1.0", 2245 + "resolved": "https://registry.npmjs.org/hapi-compat/-/hapi-compat-1.1.0.tgz", 2246 + "integrity": "sha512-B3CQYheQzwZ2tQUZ+Qo73GJrKMsKFpLxYwNBJEMwSIv/sbjPaRLXkO5Mp3zhGN1aSXccDGWHchN44QD1KUn5lQ==", 2247 + "requires": { 2248 + "caller-id": "0.1.0", 2249 + "chalk": "2.3.0", 2250 + "hoek": "5.0.2", 2251 + "joi": "13.0.2" 2252 + } 2253 + }, 2254 + "has": { 2255 + "version": "1.0.1", 2256 + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", 2257 + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", 2258 + "dev": true, 2259 + "requires": { 2260 + "function-bind": "1.1.1" 2261 + } 2262 + }, 2263 + "has-ansi": { 2264 + "version": "2.0.0", 2265 + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 2266 + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 2267 + "dev": true, 2268 + "requires": { 2269 + "ansi-regex": "2.1.1" 2270 + } 2271 + }, 2272 + "has-flag": { 2273 + "version": "2.0.0", 2274 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", 2275 + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" 2276 + }, 2277 + "has-symbol-support-x": { 2278 + "version": "1.4.1", 2279 + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.1.tgz", 2280 + "integrity": "sha512-JkaetveU7hFbqnAC1EV1sF4rlojU2D4Usc5CmS69l6NfmPDnpnFUegzFg33eDkkpNCxZ0mQp65HwUDrNFS/8MA==" 2281 + }, 2282 + "has-to-string-tag-x": { 2283 + "version": "1.4.1", 2284 + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", 2285 + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", 2286 + "requires": { 2287 + "has-symbol-support-x": "1.4.1" 2288 + } 2289 + }, 2290 + "heavy": { 2291 + "version": "6.0.0", 2292 + "resolved": "https://registry.npmjs.org/heavy/-/heavy-6.0.0.tgz", 2293 + "integrity": "sha512-iswuGt0zTjFRiltTEw+y1c+9cFroh5nUei9aVy1ToPpscs2DRQuHNKpaRdcjaCJNEuKVQYVyDx4ytEpzpZnQgg==", 2294 + "requires": { 2295 + "boom": "7.1.1", 2296 + "hoek": "5.0.2", 2297 + "joi": "13.0.2" 2298 + } 2299 + }, 2300 + "hoek": { 2301 + "version": "5.0.2", 2302 + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.2.tgz", 2303 + "integrity": "sha512-NA10UYP9ufCtY2qYGkZktcQXwVyYK4zK0gkaFSB96xhtlo6V8tKXdQgx8eHolQTRemaW0uLn8BhjhwqrOU+QLQ==" 2304 + }, 2305 + "hosted-git-info": { 2306 + "version": "2.5.0", 2307 + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", 2308 + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", 2309 + "dev": true 2310 + }, 2311 + "htmlparser2": { 2312 + "version": "3.3.0", 2313 + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", 2314 + "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", 2315 + "requires": { 2316 + "domelementtype": "1.3.0", 2317 + "domhandler": "2.1.0", 2318 + "domutils": "1.1.6", 2319 + "readable-stream": "1.0.34" 2320 + }, 2321 + "dependencies": { 2322 + "domutils": { 2323 + "version": "1.1.6", 2324 + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", 2325 + "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", 2326 + "requires": { 2327 + "domelementtype": "1.3.0" 2328 + } 2329 + } 2330 + } 2331 + }, 2332 + "iconv-lite": { 2333 + "version": "0.4.19", 2334 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", 2335 + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", 2336 + "dev": true 2337 + }, 2338 + "ignore": { 2339 + "version": "3.3.7", 2340 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", 2341 + "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", 2342 + "dev": true 2343 + }, 2344 + "ignore-by-default": { 2345 + "version": "1.0.1", 2346 + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", 2347 + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" 2348 + }, 2349 + "import-lazy": { 2350 + "version": "2.1.0", 2351 + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", 2352 + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" 2353 + }, 2354 + "imurmurhash": { 2355 + "version": "0.1.4", 2356 + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 2357 + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" 2358 + }, 2359 + "inflight": { 2360 + "version": "1.0.6", 2361 + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2362 + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2363 + "dev": true, 2364 + "requires": { 2365 + "once": "1.4.0", 2366 + "wrappy": "1.0.2" 2367 + } 2368 + }, 2369 + "inherits": { 2370 + "version": "2.0.3", 2371 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 2372 + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 2373 + }, 2374 + "ini": { 2375 + "version": "1.3.5", 2376 + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 2377 + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" 2378 + }, 2379 + "inquirer": { 2380 + "version": "3.3.0", 2381 + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", 2382 + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", 2383 + "dev": true, 2384 + "requires": { 2385 + "ansi-escapes": "3.0.0", 2386 + "chalk": "2.3.0", 2387 + "cli-cursor": "2.1.0", 2388 + "cli-width": "2.2.0", 2389 + "external-editor": "2.1.0", 2390 + "figures": "2.0.0", 2391 + "lodash": "4.17.4", 2392 + "mute-stream": "0.0.7", 2393 + "run-async": "2.3.0", 2394 + "rx-lite": "4.0.8", 2395 + "rx-lite-aggregates": "4.0.8", 2396 + "string-width": "2.1.1", 2397 + "strip-ansi": "4.0.0", 2398 + "through": "2.3.8" 2399 + }, 2400 + "dependencies": { 2401 + "ansi-regex": { 2402 + "version": "3.0.0", 2403 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 2404 + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 2405 + "dev": true 2406 + }, 2407 + "strip-ansi": { 2408 + "version": "4.0.0", 2409 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 2410 + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 2411 + "dev": true, 2412 + "requires": { 2413 + "ansi-regex": "3.0.0" 2414 + } 2415 + } 2416 + } 2417 + }, 2418 + "iron": { 2419 + "version": "5.0.4", 2420 + "resolved": "https://registry.npmjs.org/iron/-/iron-5.0.4.tgz", 2421 + "integrity": "sha512-7iQ5/xFMIYaNt9g2oiNiWdhrOTdRUMFaWENUd0KghxwPUhrIH8DUY8FEyLNTTzf75jaII+jMexLdY/2HfV61RQ==", 2422 + "requires": { 2423 + "boom": "7.1.1", 2424 + "cryptiles": "4.1.1", 2425 + "hoek": "5.0.2" 2426 + } 2427 + }, 2428 + "is-arrayish": { 2429 + "version": "0.3.1", 2430 + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.1.tgz", 2431 + "integrity": "sha1-wt/DhquqDD4zxI2z/ocFnmkGXv0=" 2432 + }, 2433 + "is-binary-path": { 2434 + "version": "1.0.1", 2435 + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 2436 + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 2437 + "requires": { 2438 + "binary-extensions": "1.11.0" 2439 + } 2440 + }, 2441 + "is-buffer": { 2442 + "version": "1.1.6", 2443 + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 2444 + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" 2445 + }, 2446 + "is-builtin-module": { 2447 + "version": "1.0.0", 2448 + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", 2449 + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", 2450 + "dev": true, 2451 + "requires": { 2452 + "builtin-modules": "1.1.1" 2453 + } 2454 + }, 2455 + "is-dotfile": { 2456 + "version": "1.0.3", 2457 + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 2458 + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" 2459 + }, 2460 + "is-equal-shallow": { 2461 + "version": "0.1.3", 2462 + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 2463 + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 2464 + "requires": { 2465 + "is-primitive": "2.0.0" 2466 + } 2467 + }, 2468 + "is-extendable": { 2469 + "version": "0.1.1", 2470 + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 2471 + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" 2472 + }, 2473 + "is-extglob": { 2474 + "version": "1.0.0", 2475 + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 2476 + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" 2477 + }, 2478 + "is-fullwidth-code-point": { 2479 + "version": "2.0.0", 2480 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 2481 + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" 2482 + }, 2483 + "is-glob": { 2484 + "version": "2.0.1", 2485 + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 2486 + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 2487 + "requires": { 2488 + "is-extglob": "1.0.0" 2489 + } 2490 + }, 2491 + "is-installed-globally": { 2492 + "version": "0.1.0", 2493 + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", 2494 + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", 2495 + "requires": { 2496 + "global-dirs": "0.1.1", 2497 + "is-path-inside": "1.0.0" 2498 + } 2499 + }, 2500 + "is-invalid-path": { 2501 + "version": "0.1.0", 2502 + "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", 2503 + "integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=", 2504 + "requires": { 2505 + "is-glob": "2.0.1" 2506 + } 2507 + }, 2508 + "is-npm": { 2509 + "version": "1.0.0", 2510 + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", 2511 + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" 2512 + }, 2513 + "is-number": { 2514 + "version": "2.1.0", 2515 + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 2516 + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 2517 + "requires": { 2518 + "kind-of": "3.2.2" 2519 + } 2520 + }, 2521 + "is-obj": { 2522 + "version": "1.0.1", 2523 + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", 2524 + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" 2525 + }, 2526 + "is-object": { 2527 + "version": "1.0.1", 2528 + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", 2529 + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" 2530 + }, 2531 + "is-path-cwd": { 2532 + "version": "1.0.0", 2533 + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 2534 + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", 2535 + "dev": true 2536 + }, 2537 + "is-path-in-cwd": { 2538 + "version": "1.0.0", 2539 + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", 2540 + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", 2541 + "dev": true, 2542 + "requires": { 2543 + "is-path-inside": "1.0.0" 2544 + } 2545 + }, 2546 + "is-path-inside": { 2547 + "version": "1.0.0", 2548 + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", 2549 + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", 2550 + "requires": { 2551 + "path-is-inside": "1.0.2" 2552 + } 2553 + }, 2554 + "is-posix-bracket": { 2555 + "version": "0.1.1", 2556 + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 2557 + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" 2558 + }, 2559 + "is-primitive": { 2560 + "version": "2.0.0", 2561 + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 2562 + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" 2563 + }, 2564 + "is-promise": { 2565 + "version": "2.1.0", 2566 + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", 2567 + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", 2568 + "dev": true 2569 + }, 2570 + "is-redirect": { 2571 + "version": "1.0.0", 2572 + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", 2573 + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" 2574 + }, 2575 + "is-resolvable": { 2576 + "version": "1.0.0", 2577 + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", 2578 + "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", 2579 + "dev": true, 2580 + "requires": { 2581 + "tryit": "1.0.3" 2582 + } 2583 + }, 2584 + "is-retry-allowed": { 2585 + "version": "1.1.0", 2586 + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", 2587 + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" 2588 + }, 2589 + "is-stream": { 2590 + "version": "1.1.0", 2591 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 2592 + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" 2593 + }, 2594 + "is-valid-path": { 2595 + "version": "0.1.1", 2596 + "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", 2597 + "integrity": "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8=", 2598 + "requires": { 2599 + "is-invalid-path": "0.1.0" 2600 + } 2601 + }, 2602 + "isarray": { 2603 + "version": "0.0.1", 2604 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 2605 + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" 2606 + }, 2607 + "isemail": { 2608 + "version": "3.0.0", 2609 + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.0.0.tgz", 2610 + "integrity": "sha512-rz0ng/c+fX+zACpLgDB8fnUQ845WSU06f4hlhk4K8TJxmR6f5hyvitu9a9JdMD7aq/P4E0XdG1uaab2OiXgHlA==", 2611 + "requires": { 2612 + "punycode": "2.1.0" 2613 + } 2614 + }, 2615 + "isexe": { 2616 + "version": "2.0.0", 2617 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2618 + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" 2619 + }, 2620 + "isobject": { 2621 + "version": "2.1.0", 2622 + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 2623 + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 2624 + "requires": { 2625 + "isarray": "1.0.0" 2626 + }, 2627 + "dependencies": { 2628 + "isarray": { 2629 + "version": "1.0.0", 2630 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2631 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 2632 + } 2633 + } 2634 + }, 2635 + "isurl": { 2636 + "version": "1.0.0", 2637 + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", 2638 + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", 2639 + "requires": { 2640 + "has-to-string-tag-x": "1.4.1", 2641 + "is-object": "1.0.1" 2642 + } 2643 + }, 2644 + "items-promise": { 2645 + "version": "1.0.0", 2646 + "resolved": "https://registry.npmjs.org/items-promise/-/items-promise-1.0.0.tgz", 2647 + "integrity": "sha512-t+3w4E51IlviTn1b/gesEsH9Jf0gEs2+VhSbwgMaVyK2IxXYSwZkL6sOmr+FBhMT0sSFzcc4Rn5X7sz6NvS2GQ==" 2648 + }, 2649 + "joi": { 2650 + "version": "13.0.2", 2651 + "resolved": "https://registry.npmjs.org/joi/-/joi-13.0.2.tgz", 2652 + "integrity": "sha512-kVka3LaHQyENvcMW4WJPSepGM43oCofcKxfs9HbbKd/FrwBAAt4lNNTPKOzSMmV53GIspmNO4U3O2TzoGvxxCA==", 2653 + "requires": { 2654 + "hoek": "5.0.2", 2655 + "isemail": "3.0.0", 2656 + "topo": "3.0.0" 2657 + } 2658 + }, 2659 + "js-tokens": { 2660 + "version": "3.0.2", 2661 + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 2662 + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 2663 + "dev": true 2664 + }, 2665 + "js-yaml": { 2666 + "version": "3.10.0", 2667 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", 2668 + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", 2669 + "dev": true, 2670 + "requires": { 2671 + "argparse": "1.0.9", 2672 + "esprima": "4.0.0" 2673 + } 2674 + }, 2675 + "json-schema-traverse": { 2676 + "version": "0.3.1", 2677 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", 2678 + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", 2679 + "dev": true 2680 + }, 2681 + "json-stable-stringify-without-jsonify": { 2682 + "version": "1.0.1", 2683 + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 2684 + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 2685 + "dev": true 2686 + }, 2687 + "json5": { 2688 + "version": "0.4.0", 2689 + "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz", 2690 + "integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0=" 2691 + }, 2692 + "jsonfile": { 2693 + "version": "4.0.0", 2694 + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", 2695 + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", 2696 + "requires": { 2697 + "graceful-fs": "4.1.11" 2698 + } 2699 + }, 2700 + "kind-of": { 2701 + "version": "3.2.2", 2702 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2703 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2704 + "requires": { 2705 + "is-buffer": "1.1.6" 2706 + } 2707 + }, 2708 + "latest-version": { 2709 + "version": "3.1.0", 2710 + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", 2711 + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", 2712 + "requires": { 2713 + "package-json": "4.0.1" 2714 + } 2715 + }, 2716 + "levn": { 2717 + "version": "0.3.0", 2718 + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 2719 + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 2720 + "dev": true, 2721 + "requires": { 2722 + "prelude-ls": "1.1.2", 2723 + "type-check": "0.3.2" 2724 + } 2725 + }, 2726 + "load-json-file": { 2727 + "version": "2.0.0", 2728 + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", 2729 + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", 2730 + "dev": true, 2731 + "requires": { 2732 + "graceful-fs": "4.1.11", 2733 + "parse-json": "2.2.0", 2734 + "pify": "2.3.0", 2735 + "strip-bom": "3.0.0" 2736 + }, 2737 + "dependencies": { 2738 + "pify": { 2739 + "version": "2.3.0", 2740 + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 2741 + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 2742 + "dev": true 2743 + } 2744 + } 2745 + }, 2746 + "locate-path": { 2747 + "version": "2.0.0", 2748 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 2749 + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 2750 + "dev": true, 2751 + "requires": { 2752 + "p-locate": "2.0.0", 2753 + "path-exists": "3.0.0" 2754 + }, 2755 + "dependencies": { 2756 + "path-exists": { 2757 + "version": "3.0.0", 2758 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 2759 + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 2760 + "dev": true 2761 + } 2762 + } 2763 + }, 2764 + "lodash": { 2765 + "version": "4.17.4", 2766 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", 2767 + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" 2768 + }, 2769 + "lodash._baseassign": { 2770 + "version": "3.2.0", 2771 + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", 2772 + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", 2773 + "requires": { 2774 + "lodash._basecopy": "3.0.1", 2775 + "lodash.keys": "3.1.2" 2776 + } 2777 + }, 2778 + "lodash._basecopy": { 2779 + "version": "3.0.1", 2780 + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", 2781 + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" 2782 + }, 2783 + "lodash._bindcallback": { 2784 + "version": "3.0.1", 2785 + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", 2786 + "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=" 2787 + }, 2788 + "lodash._createassigner": { 2789 + "version": "3.1.1", 2790 + "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", 2791 + "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", 2792 + "requires": { 2793 + "lodash._bindcallback": "3.0.1", 2794 + "lodash._isiterateecall": "3.0.9", 2795 + "lodash.restparam": "3.6.1" 2796 + } 2797 + }, 2798 + "lodash._getnative": { 2799 + "version": "3.9.1", 2800 + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", 2801 + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" 2802 + }, 2803 + "lodash._isiterateecall": { 2804 + "version": "3.0.9", 2805 + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", 2806 + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" 2807 + }, 2808 + "lodash.assign": { 2809 + "version": "3.2.0", 2810 + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", 2811 + "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", 2812 + "requires": { 2813 + "lodash._baseassign": "3.2.0", 2814 + "lodash._createassigner": "3.1.1", 2815 + "lodash.keys": "3.1.2" 2816 + } 2817 + }, 2818 + "lodash.cond": { 2819 + "version": "4.5.2", 2820 + "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", 2821 + "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=", 2822 + "dev": true 2823 + }, 2824 + "lodash.defaults": { 2825 + "version": "3.1.2", 2826 + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz", 2827 + "integrity": "sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw=", 2828 + "requires": { 2829 + "lodash.assign": "3.2.0", 2830 + "lodash.restparam": "3.6.1" 2831 + } 2832 + }, 2833 + "lodash.isarguments": { 2834 + "version": "3.1.0", 2835 + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", 2836 + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" 2837 + }, 2838 + "lodash.isarray": { 2839 + "version": "3.0.4", 2840 + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", 2841 + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" 2842 + }, 2843 + "lodash.keys": { 2844 + "version": "3.1.2", 2845 + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", 2846 + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", 2847 + "requires": { 2848 + "lodash._getnative": "3.9.1", 2849 + "lodash.isarguments": "3.1.0", 2850 + "lodash.isarray": "3.0.4" 2851 + } 2852 + }, 2853 + "lodash.restparam": { 2854 + "version": "3.6.1", 2855 + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", 2856 + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" 2857 + }, 2858 + "lowercase-keys": { 2859 + "version": "1.0.0", 2860 + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", 2861 + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" 2862 + }, 2863 + "lru-cache": { 2864 + "version": "4.1.1", 2865 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", 2866 + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", 2867 + "requires": { 2868 + "pseudomap": "1.0.2", 2869 + "yallist": "2.1.2" 2870 + }, 2871 + "dependencies": { 2872 + "yallist": { 2873 + "version": "2.1.2", 2874 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 2875 + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" 2876 + } 2877 + } 2878 + }, 2879 + "make-dir": { 2880 + "version": "1.1.0", 2881 + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", 2882 + "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", 2883 + "requires": { 2884 + "pify": "3.0.0" 2885 + } 2886 + }, 2887 + "map-stream": { 2888 + "version": "0.1.0", 2889 + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", 2890 + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" 2891 + }, 2892 + "micromatch": { 2893 + "version": "2.3.11", 2894 + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 2895 + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 2896 + "requires": { 2897 + "arr-diff": "2.0.0", 2898 + "array-unique": "0.2.1", 2899 + "braces": "1.8.5", 2900 + "expand-brackets": "0.1.5", 2901 + "extglob": "0.3.2", 2902 + "filename-regex": "2.0.1", 2903 + "is-extglob": "1.0.0", 2904 + "is-glob": "2.0.1", 2905 + "kind-of": "3.2.2", 2906 + "normalize-path": "2.1.1", 2907 + "object.omit": "2.0.1", 2908 + "parse-glob": "3.0.4", 2909 + "regex-cache": "0.4.4" 2910 + } 2911 + }, 2912 + "mime-db": { 2913 + "version": "1.31.0", 2914 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.31.0.tgz", 2915 + "integrity": "sha512-oB3w9lx50CMd6nfonoV5rBRUbJtjMifUHaFb5MfzjC8ksAIfVjT0BsX46SjjqBz7n9JGTrTX3paIeLSK+rS5fQ==" 2916 + }, 2917 + "mimic-fn": { 2918 + "version": "1.1.0", 2919 + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", 2920 + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", 2921 + "dev": true 2922 + }, 2923 + "mimic-response": { 2924 + "version": "1.0.0", 2925 + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", 2926 + "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=" 2927 + }, 2928 + "mimos": { 2929 + "version": "4.0.0", 2930 + "resolved": "https://registry.npmjs.org/mimos/-/mimos-4.0.0.tgz", 2931 + "integrity": "sha512-JvlvRLqGIlk+AYypWrbrDmhsM+6JVx/xBM5S3AMwTBz1trPCEoPN/swO2L4Wu653fL7oJdgk8DMQyG/Gq3JkZg==", 2932 + "requires": { 2933 + "hoek": "5.0.2", 2934 + "mime-db": "1.31.0" 2935 + } 2936 + }, 2937 + "minimatch": { 2938 + "version": "3.0.4", 2939 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2940 + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2941 + "requires": { 2942 + "brace-expansion": "1.1.8" 2943 + } 2944 + }, 2945 + "minimist": { 2946 + "version": "0.0.8", 2947 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 2948 + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" 2949 + }, 2950 + "minipass": { 2951 + "version": "2.2.1", 2952 + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.1.tgz", 2953 + "integrity": "sha512-u1aUllxPJUI07cOqzR7reGmQxmCqlH88uIIsf6XZFEWgw7gXKpJdR+5R9Y3KEDmWYkdIz9wXZs3C0jOPxejk/Q==", 2954 + "requires": { 2955 + "yallist": "3.0.2" 2956 + } 2957 + }, 2958 + "minizlib": { 2959 + "version": "1.0.4", 2960 + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.0.4.tgz", 2961 + "integrity": "sha512-sN4U9tIJtBRwKbwgFh9qJfrPIQ/GGTRr1MGqkgOeMTLy8/lM0FcWU//FqlnZ3Vb7gJ+Mxh3FOg1EklibdajbaQ==", 2962 + "requires": { 2963 + "minipass": "2.2.1" 2964 + } 2965 + }, 2966 + "mkdirp": { 2967 + "version": "0.5.1", 2968 + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 2969 + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 2970 + "requires": { 2971 + "minimist": "0.0.8" 2972 + } 2973 + }, 2974 + "moment": { 2975 + "version": "2.19.3", 2976 + "resolved": "https://registry.npmjs.org/moment/-/moment-2.19.3.tgz", 2977 + "integrity": "sha1-vbmdJw1tf9p4zA+6zoVeJ/59pp8=" 2978 + }, 2979 + "moment-timezone": { 2980 + "version": "0.5.14", 2981 + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.14.tgz", 2982 + "integrity": "sha1-TrOP+VOLgBCLpGekWPPtQmjM/LE=", 2983 + "requires": { 2984 + "moment": "2.19.3" 2985 + } 2986 + }, 2987 + "ms": { 2988 + "version": "2.0.0", 2989 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2990 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 2991 + }, 2992 + "mute-stream": { 2993 + "version": "0.0.7", 2994 + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 2995 + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", 2996 + "dev": true 2997 + }, 2998 + "nan": { 2999 + "version": "2.8.0", 3000 + "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", 3001 + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=" 3002 + }, 3003 + "natural-compare": { 3004 + "version": "1.4.0", 3005 + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 3006 + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 3007 + "dev": true 3008 + }, 3009 + "nigel": { 3010 + "version": "3.0.0", 3011 + "resolved": "https://registry.npmjs.org/nigel/-/nigel-3.0.0.tgz", 3012 + "integrity": "sha512-ufFVFCe1zS/pfIQzQNa5uJxB8v8IcVTUn1zyPvQwb4CQGRxxBfdQPSXpEnI6ZzIwbV5L+GuAoRhYgcVSvTO7fA==", 3013 + "requires": { 3014 + "hoek": "5.0.2", 3015 + "vise": "3.0.0" 3016 + } 3017 + }, 3018 + "nodemon": { 3019 + "version": "1.12.1", 3020 + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.12.1.tgz", 3021 + "integrity": "sha1-mWpW3EnZ8Wu/G3ik3gjxNjSzh40=", 3022 + "requires": { 3023 + "chokidar": "1.7.0", 3024 + "debug": "2.6.9", 3025 + "es6-promise": "3.3.1", 3026 + "ignore-by-default": "1.0.1", 3027 + "lodash.defaults": "3.1.2", 3028 + "minimatch": "3.0.4", 3029 + "ps-tree": "1.1.0", 3030 + "touch": "3.1.0", 3031 + "undefsafe": "0.0.3", 3032 + "update-notifier": "2.3.0" 3033 + } 3034 + }, 3035 + "nopt": { 3036 + "version": "1.0.10", 3037 + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", 3038 + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", 3039 + "requires": { 3040 + "abbrev": "1.1.1" 3041 + } 3042 + }, 3043 + "normalize-package-data": { 3044 + "version": "2.4.0", 3045 + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 3046 + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", 3047 + "dev": true, 3048 + "requires": { 3049 + "hosted-git-info": "2.5.0", 3050 + "is-builtin-module": "1.0.0", 3051 + "semver": "5.4.1", 3052 + "validate-npm-package-license": "3.0.1" 3053 + } 3054 + }, 3055 + "normalize-path": { 3056 + "version": "2.1.1", 3057 + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 3058 + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 3059 + "requires": { 3060 + "remove-trailing-separator": "1.1.0" 3061 + } 3062 + }, 3063 + "npm-conf": { 3064 + "version": "1.1.3", 3065 + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", 3066 + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", 3067 + "requires": { 3068 + "config-chain": "1.1.11", 3069 + "pify": "3.0.0" 3070 + } 3071 + }, 3072 + "npm-run-path": { 3073 + "version": "2.0.2", 3074 + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 3075 + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 3076 + "requires": { 3077 + "path-key": "2.0.1" 3078 + } 3079 + }, 3080 + "nth-check": { 3081 + "version": "1.0.1", 3082 + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", 3083 + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", 3084 + "requires": { 3085 + "boolbase": "1.0.0" 3086 + } 3087 + }, 3088 + "number-is-nan": { 3089 + "version": "1.0.1", 3090 + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 3091 + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" 3092 + }, 3093 + "object-assign": { 3094 + "version": "4.1.1", 3095 + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 3096 + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 3097 + "dev": true 3098 + }, 3099 + "object.omit": { 3100 + "version": "2.0.1", 3101 + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 3102 + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 3103 + "requires": { 3104 + "for-own": "0.1.5", 3105 + "is-extendable": "0.1.1" 3106 + } 3107 + }, 3108 + "once": { 3109 + "version": "1.4.0", 3110 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3111 + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 3112 + "requires": { 3113 + "wrappy": "1.0.2" 3114 + } 3115 + }, 3116 + "onetime": { 3117 + "version": "2.0.1", 3118 + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 3119 + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", 3120 + "dev": true, 3121 + "requires": { 3122 + "mimic-fn": "1.1.0" 3123 + } 3124 + }, 3125 + "optionator": { 3126 + "version": "0.8.2", 3127 + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 3128 + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 3129 + "dev": true, 3130 + "requires": { 3131 + "deep-is": "0.1.3", 3132 + "fast-levenshtein": "2.0.6", 3133 + "levn": "0.3.0", 3134 + "prelude-ls": "1.1.2", 3135 + "type-check": "0.3.2", 3136 + "wordwrap": "1.0.0" 3137 + } 3138 + }, 3139 + "os-homedir": { 3140 + "version": "1.0.2", 3141 + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 3142 + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" 3143 + }, 3144 + "os-tmpdir": { 3145 + "version": "1.0.2", 3146 + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 3147 + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 3148 + "dev": true 3149 + }, 3150 + "p-finally": { 3151 + "version": "1.0.0", 3152 + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 3153 + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" 3154 + }, 3155 + "p-limit": { 3156 + "version": "1.1.0", 3157 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", 3158 + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", 3159 + "dev": true 3160 + }, 3161 + "p-locate": { 3162 + "version": "2.0.0", 3163 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 3164 + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 3165 + "dev": true, 3166 + "requires": { 3167 + "p-limit": "1.1.0" 3168 + } 3169 + }, 3170 + "package-json": { 3171 + "version": "4.0.1", 3172 + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", 3173 + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", 3174 + "requires": { 3175 + "got": "6.7.1", 3176 + "registry-auth-token": "3.3.1", 3177 + "registry-url": "3.1.0", 3178 + "semver": "5.4.1" 3179 + } 3180 + }, 3181 + "parse-glob": { 3182 + "version": "3.0.4", 3183 + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 3184 + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 3185 + "requires": { 3186 + "glob-base": "0.3.0", 3187 + "is-dotfile": "1.0.3", 3188 + "is-extglob": "1.0.0", 3189 + "is-glob": "2.0.1" 3190 + } 3191 + }, 3192 + "parse-json": { 3193 + "version": "2.2.0", 3194 + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 3195 + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 3196 + "dev": true, 3197 + "requires": { 3198 + "error-ex": "1.3.1" 3199 + } 3200 + }, 3201 + "path-exists": { 3202 + "version": "2.1.0", 3203 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 3204 + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 3205 + "dev": true, 3206 + "requires": { 3207 + "pinkie-promise": "2.0.1" 3208 + } 3209 + }, 3210 + "path-is-absolute": { 3211 + "version": "1.0.1", 3212 + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3213 + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 3214 + }, 3215 + "path-is-inside": { 3216 + "version": "1.0.2", 3217 + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 3218 + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" 3219 + }, 3220 + "path-key": { 3221 + "version": "2.0.1", 3222 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 3223 + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" 3224 + }, 3225 + "path-parse": { 3226 + "version": "1.0.5", 3227 + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", 3228 + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", 3229 + "dev": true 3230 + }, 3231 + "path-type": { 3232 + "version": "2.0.0", 3233 + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", 3234 + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", 3235 + "dev": true, 3236 + "requires": { 3237 + "pify": "2.3.0" 3238 + }, 3239 + "dependencies": { 3240 + "pify": { 3241 + "version": "2.3.0", 3242 + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 3243 + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 3244 + "dev": true 3245 + } 3246 + } 3247 + }, 3248 + "pause-stream": { 3249 + "version": "0.0.11", 3250 + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", 3251 + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", 3252 + "requires": { 3253 + "through": "2.3.8" 3254 + } 3255 + }, 3256 + "pez": { 3257 + "version": "4.0.1", 3258 + "resolved": "https://registry.npmjs.org/pez/-/pez-4.0.1.tgz", 3259 + "integrity": "sha512-0c/SoW5MY7lPdc5U1Q/ixyjLZbluGWJonHVmn4mKwSq7vgO9+a9WzoCopHubIwkot6Q+fevNVElaA+1M9SqHrA==", 3260 + "requires": { 3261 + "b64": "4.0.0", 3262 + "boom": "7.1.1", 3263 + "content": "4.0.3", 3264 + "hoek": "5.0.2", 3265 + "nigel": "3.0.0" 3266 + } 3267 + }, 3268 + "pify": { 3269 + "version": "3.0.0", 3270 + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 3271 + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" 3272 + }, 3273 + "pinkie": { 3274 + "version": "2.0.4", 3275 + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 3276 + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 3277 + "dev": true 3278 + }, 3279 + "pinkie-promise": { 3280 + "version": "2.0.1", 3281 + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 3282 + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 3283 + "dev": true, 3284 + "requires": { 3285 + "pinkie": "2.0.4" 3286 + } 3287 + }, 3288 + "pkg-dir": { 3289 + "version": "1.0.0", 3290 + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", 3291 + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", 3292 + "dev": true, 3293 + "requires": { 3294 + "find-up": "1.1.2" 3295 + } 3296 + }, 3297 + "pluralize": { 3298 + "version": "7.0.0", 3299 + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", 3300 + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", 3301 + "dev": true 3302 + }, 3303 + "podium": { 3304 + "version": "3.1.2", 3305 + "resolved": "https://registry.npmjs.org/podium/-/podium-3.1.2.tgz", 3306 + "integrity": "sha512-18VrjJAduIdPv7d9zWsfmKxTj3cQTYC5Pv5gtKxcWujYBpGbV+mhNSPYhlHW5xeWoazYyKfB9FEsPT12r5rY1A==", 3307 + "requires": { 3308 + "hoek": "5.0.2", 3309 + "joi": "13.0.2" 3310 + } 3311 + }, 3312 + "prelude-ls": { 3313 + "version": "1.1.2", 3314 + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 3315 + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 3316 + "dev": true 3317 + }, 3318 + "prepend-http": { 3319 + "version": "1.0.4", 3320 + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", 3321 + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" 3322 + }, 3323 + "preserve": { 3324 + "version": "0.2.0", 3325 + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 3326 + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" 3327 + }, 3328 + "pretty-error": { 3329 + "version": "2.1.1", 3330 + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", 3331 + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", 3332 + "requires": { 3333 + "renderkid": "2.0.1", 3334 + "utila": "0.4.0" 3335 + } 3336 + }, 3337 + "process-nextick-args": { 3338 + "version": "1.0.7", 3339 + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 3340 + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" 3341 + }, 3342 + "progress": { 3343 + "version": "2.0.0", 3344 + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", 3345 + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", 3346 + "dev": true 3347 + }, 3348 + "proto-list": { 3349 + "version": "1.2.4", 3350 + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", 3351 + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" 3352 + }, 3353 + "ps-tree": { 3354 + "version": "1.1.0", 3355 + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz", 3356 + "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", 3357 + "requires": { 3358 + "event-stream": "3.3.4" 3359 + } 3360 + }, 3361 + "pseudomap": { 3362 + "version": "1.0.2", 3363 + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 3364 + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" 3365 + }, 3366 + "punycode": { 3367 + "version": "2.1.0", 3368 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", 3369 + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" 3370 + }, 3371 + "randomatic": { 3372 + "version": "1.1.7", 3373 + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", 3374 + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", 3375 + "requires": { 3376 + "is-number": "3.0.0", 3377 + "kind-of": "4.0.0" 3378 + }, 3379 + "dependencies": { 3380 + "is-number": { 3381 + "version": "3.0.0", 3382 + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 3383 + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 3384 + "requires": { 3385 + "kind-of": "3.2.2" 3386 + }, 3387 + "dependencies": { 3388 + "kind-of": { 3389 + "version": "3.2.2", 3390 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 3391 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3392 + "requires": { 3393 + "is-buffer": "1.1.6" 3394 + } 3395 + } 3396 + } 3397 + }, 3398 + "kind-of": { 3399 + "version": "4.0.0", 3400 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 3401 + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 3402 + "requires": { 3403 + "is-buffer": "1.1.6" 3404 + } 3405 + } 3406 + } 3407 + }, 3408 + "rc": { 3409 + "version": "1.2.2", 3410 + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz", 3411 + "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=", 3412 + "requires": { 3413 + "deep-extend": "0.4.2", 3414 + "ini": "1.3.5", 3415 + "minimist": "1.2.0", 3416 + "strip-json-comments": "2.0.1" 3417 + }, 3418 + "dependencies": { 3419 + "minimist": { 3420 + "version": "1.2.0", 3421 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 3422 + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" 3423 + } 3424 + } 3425 + }, 3426 + "read-pkg": { 3427 + "version": "2.0.0", 3428 + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", 3429 + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", 3430 + "dev": true, 3431 + "requires": { 3432 + "load-json-file": "2.0.0", 3433 + "normalize-package-data": "2.4.0", 3434 + "path-type": "2.0.0" 3435 + } 3436 + }, 3437 + "read-pkg-up": { 3438 + "version": "2.0.0", 3439 + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", 3440 + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", 3441 + "dev": true, 3442 + "requires": { 3443 + "find-up": "2.1.0", 3444 + "read-pkg": "2.0.0" 3445 + }, 3446 + "dependencies": { 3447 + "find-up": { 3448 + "version": "2.1.0", 3449 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 3450 + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 3451 + "dev": true, 3452 + "requires": { 3453 + "locate-path": "2.0.0" 3454 + } 3455 + } 3456 + } 3457 + }, 3458 + "readable-stream": { 3459 + "version": "1.0.34", 3460 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", 3461 + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", 3462 + "requires": { 3463 + "core-util-is": "1.0.2", 3464 + "inherits": "2.0.3", 3465 + "isarray": "0.0.1", 3466 + "string_decoder": "0.10.31" 3467 + } 3468 + }, 3469 + "readdirp": { 3470 + "version": "2.1.0", 3471 + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", 3472 + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", 3473 + "requires": { 3474 + "graceful-fs": "4.1.11", 3475 + "minimatch": "3.0.4", 3476 + "readable-stream": "2.3.3", 3477 + "set-immediate-shim": "1.0.1" 3478 + }, 3479 + "dependencies": { 3480 + "isarray": { 3481 + "version": "1.0.0", 3482 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 3483 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 3484 + }, 3485 + "readable-stream": { 3486 + "version": "2.3.3", 3487 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 3488 + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", 3489 + "requires": { 3490 + "core-util-is": "1.0.2", 3491 + "inherits": "2.0.3", 3492 + "isarray": "1.0.0", 3493 + "process-nextick-args": "1.0.7", 3494 + "safe-buffer": "5.1.1", 3495 + "string_decoder": "1.0.3", 3496 + "util-deprecate": "1.0.2" 3497 + } 3498 + }, 3499 + "string_decoder": { 3500 + "version": "1.0.3", 3501 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 3502 + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 3503 + "requires": { 3504 + "safe-buffer": "5.1.1" 3505 + } 3506 + } 3507 + } 3508 + }, 3509 + "recursive-readdir": { 3510 + "version": "2.2.1", 3511 + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.1.tgz", 3512 + "integrity": "sha1-kO8jHQd4xc4JPJpI105cVCLROpk=", 3513 + "requires": { 3514 + "minimatch": "3.0.3" 3515 + }, 3516 + "dependencies": { 3517 + "minimatch": { 3518 + "version": "3.0.3", 3519 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", 3520 + "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", 3521 + "requires": { 3522 + "brace-expansion": "1.1.8" 3523 + } 3524 + } 3525 + } 3526 + }, 3527 + "regex-cache": { 3528 + "version": "0.4.4", 3529 + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", 3530 + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", 3531 + "requires": { 3532 + "is-equal-shallow": "0.1.3" 3533 + } 3534 + }, 3535 + "registry-auth-token": { 3536 + "version": "3.3.1", 3537 + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz", 3538 + "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=", 3539 + "requires": { 3540 + "rc": "1.2.2", 3541 + "safe-buffer": "5.1.1" 3542 + } 3543 + }, 3544 + "registry-url": { 3545 + "version": "3.1.0", 3546 + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", 3547 + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", 3548 + "requires": { 3549 + "rc": "1.2.2" 3550 + } 3551 + }, 3552 + "remove-trailing-separator": { 3553 + "version": "1.1.0", 3554 + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 3555 + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" 3556 + }, 3557 + "renderkid": { 3558 + "version": "2.0.1", 3559 + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz", 3560 + "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=", 3561 + "requires": { 3562 + "css-select": "1.2.0", 3563 + "dom-converter": "0.1.4", 3564 + "htmlparser2": "3.3.0", 3565 + "strip-ansi": "3.0.1", 3566 + "utila": "0.3.3" 3567 + }, 3568 + "dependencies": { 3569 + "utila": { 3570 + "version": "0.3.3", 3571 + "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", 3572 + "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=" 3573 + } 3574 + } 3575 + }, 3576 + "repeat-element": { 3577 + "version": "1.1.2", 3578 + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 3579 + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" 3580 + }, 3581 + "repeat-string": { 3582 + "version": "1.6.1", 3583 + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 3584 + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" 3585 + }, 3586 + "require-uncached": { 3587 + "version": "1.0.3", 3588 + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", 3589 + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", 3590 + "dev": true, 3591 + "requires": { 3592 + "caller-path": "0.1.0", 3593 + "resolve-from": "1.0.1" 3594 + } 3595 + }, 3596 + "resolve": { 3597 + "version": "1.5.0", 3598 + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", 3599 + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", 3600 + "dev": true, 3601 + "requires": { 3602 + "path-parse": "1.0.5" 3603 + } 3604 + }, 3605 + "resolve-from": { 3606 + "version": "1.0.1", 3607 + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", 3608 + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", 3609 + "dev": true 3610 + }, 3611 + "restore-cursor": { 3612 + "version": "2.0.0", 3613 + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 3614 + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", 3615 + "dev": true, 3616 + "requires": { 3617 + "onetime": "2.0.1", 3618 + "signal-exit": "3.0.2" 3619 + } 3620 + }, 3621 + "rimraf": { 3622 + "version": "2.6.2", 3623 + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", 3624 + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", 3625 + "dev": true, 3626 + "requires": { 3627 + "glob": "7.1.2" 3628 + } 3629 + }, 3630 + "run-async": { 3631 + "version": "2.3.0", 3632 + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", 3633 + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", 3634 + "dev": true, 3635 + "requires": { 3636 + "is-promise": "2.1.0" 3637 + } 3638 + }, 3639 + "rx-lite": { 3640 + "version": "4.0.8", 3641 + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", 3642 + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", 3643 + "dev": true 3644 + }, 3645 + "rx-lite-aggregates": { 3646 + "version": "4.0.8", 3647 + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", 3648 + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", 3649 + "dev": true, 3650 + "requires": { 3651 + "rx-lite": "4.0.8" 3652 + } 3653 + }, 3654 + "safe-buffer": { 3655 + "version": "5.1.1", 3656 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 3657 + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" 3658 + }, 3659 + "semver": { 3660 + "version": "5.4.1", 3661 + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", 3662 + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" 3663 + }, 3664 + "semver-diff": { 3665 + "version": "2.1.0", 3666 + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", 3667 + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", 3668 + "requires": { 3669 + "semver": "5.4.1" 3670 + } 3671 + }, 3672 + "set-immediate-shim": { 3673 + "version": "1.0.1", 3674 + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 3675 + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" 3676 + }, 3677 + "sharp": { 3678 + "version": "0.18.4", 3679 + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.18.4.tgz", 3680 + "integrity": "sha1-/jKcDwaJbCiqJDdt8f/wKuV/LTQ=", 3681 + "requires": { 3682 + "caw": "2.0.1", 3683 + "color": "2.0.1", 3684 + "detect-libc": "0.2.0", 3685 + "nan": "2.8.0", 3686 + "semver": "5.4.1", 3687 + "simple-get": "2.7.0", 3688 + "tar": "3.2.1" 3689 + } 3690 + }, 3691 + "shebang-command": { 3692 + "version": "1.2.0", 3693 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 3694 + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 3695 + "requires": { 3696 + "shebang-regex": "1.0.0" 3697 + } 3698 + }, 3699 + "shebang-regex": { 3700 + "version": "1.0.0", 3701 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 3702 + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" 3703 + }, 3704 + "shot": { 3705 + "version": "4.0.4", 3706 + "resolved": "https://registry.npmjs.org/shot/-/shot-4.0.4.tgz", 3707 + "integrity": "sha512-V8wHSJSNqt8ZIgdbTQCFIrp5BwBH+tsFLNBL1REmkFN/0PJdmzUBQscZqsbdSvdLc+Qxq7J5mcwzai66vs3ozA==", 3708 + "requires": { 3709 + "hoek": "5.0.2", 3710 + "joi": "13.0.2" 3711 + } 3712 + }, 3713 + "signal-exit": { 3714 + "version": "3.0.2", 3715 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 3716 + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" 3717 + }, 3718 + "simple-concat": { 3719 + "version": "1.0.0", 3720 + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", 3721 + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" 3722 + }, 3723 + "simple-get": { 3724 + "version": "2.7.0", 3725 + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.7.0.tgz", 3726 + "integrity": "sha512-RkE9rGPHcxYZ/baYmgJtOSM63vH0Vyq+ma5TijBcLla41SWlh8t6XYIGMR/oeZcmr+/G8k+zrClkkVrtnQ0esg==", 3727 + "requires": { 3728 + "decompress-response": "3.3.0", 3729 + "once": "1.4.0", 3730 + "simple-concat": "1.0.0" 3731 + } 3732 + }, 3733 + "simple-swizzle": { 3734 + "version": "0.2.2", 3735 + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", 3736 + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", 3737 + "requires": { 3738 + "is-arrayish": "0.3.1" 3739 + } 3740 + }, 3741 + "slice-ansi": { 3742 + "version": "1.0.0", 3743 + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", 3744 + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", 3745 + "dev": true, 3746 + "requires": { 3747 + "is-fullwidth-code-point": "2.0.0" 3748 + } 3749 + }, 3750 + "spdx-correct": { 3751 + "version": "1.0.2", 3752 + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", 3753 + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", 3754 + "dev": true, 3755 + "requires": { 3756 + "spdx-license-ids": "1.2.2" 3757 + } 3758 + }, 3759 + "spdx-expression-parse": { 3760 + "version": "1.0.4", 3761 + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", 3762 + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", 3763 + "dev": true 3764 + }, 3765 + "spdx-license-ids": { 3766 + "version": "1.2.2", 3767 + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", 3768 + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", 3769 + "dev": true 3770 + }, 3771 + "split": { 3772 + "version": "0.3.3", 3773 + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", 3774 + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", 3775 + "requires": { 3776 + "through": "2.3.8" 3777 + } 3778 + }, 3779 + "sprintf-js": { 3780 + "version": "1.0.3", 3781 + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 3782 + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 3783 + "dev": true 3784 + }, 3785 + "stack-trace": { 3786 + "version": "0.0.10", 3787 + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", 3788 + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" 3789 + }, 3790 + "statehood": { 3791 + "version": "6.0.5", 3792 + "resolved": "https://registry.npmjs.org/statehood/-/statehood-6.0.5.tgz", 3793 + "integrity": "sha512-HPa8qT5sGTBVn1Fc9czBYR1oo7gBaay3ysnb04cvcF80YrDIV7880KpjmMj54j7CrFuQFfgMRb44QCRxRmAdTg==", 3794 + "requires": { 3795 + "boom": "7.1.1", 3796 + "bounce": "1.2.0", 3797 + "cryptiles": "4.1.1", 3798 + "hoek": "5.0.2", 3799 + "iron": "5.0.4", 3800 + "joi": "13.0.2" 3801 + } 3802 + }, 3803 + "stream-combiner": { 3804 + "version": "0.0.4", 3805 + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", 3806 + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", 3807 + "requires": { 3808 + "duplexer": "0.1.1" 3809 + } 3810 + }, 3811 + "string-width": { 3812 + "version": "2.1.1", 3813 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 3814 + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 3815 + "requires": { 3816 + "is-fullwidth-code-point": "2.0.0", 3817 + "strip-ansi": "4.0.0" 3818 + }, 3819 + "dependencies": { 3820 + "ansi-regex": { 3821 + "version": "3.0.0", 3822 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 3823 + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" 3824 + }, 3825 + "strip-ansi": { 3826 + "version": "4.0.0", 3827 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 3828 + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 3829 + "requires": { 3830 + "ansi-regex": "3.0.0" 3831 + } 3832 + } 3833 + } 3834 + }, 3835 + "string_decoder": { 3836 + "version": "0.10.31", 3837 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 3838 + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" 3839 + }, 3840 + "strip-ansi": { 3841 + "version": "3.0.1", 3842 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 3843 + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 3844 + "requires": { 3845 + "ansi-regex": "2.1.1" 3846 + } 3847 + }, 3848 + "strip-bom": { 3849 + "version": "3.0.0", 3850 + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 3851 + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 3852 + "dev": true 3853 + }, 3854 + "strip-eof": { 3855 + "version": "1.0.0", 3856 + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 3857 + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" 3858 + }, 3859 + "strip-json-comments": { 3860 + "version": "2.0.1", 3861 + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 3862 + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" 3863 + }, 3864 + "subtext": { 3865 + "version": "6.0.7", 3866 + "resolved": "https://registry.npmjs.org/subtext/-/subtext-6.0.7.tgz", 3867 + "integrity": "sha512-IcJUvRjeR+NB437Iq+LORFNJW4L6Knqkj3oQrBrkdhIaS2VKJvx/9aYEq7vi+PEx5/OuehOL/40SkSZotLi/MA==", 3868 + "requires": { 3869 + "boom": "7.1.1", 3870 + "content": "4.0.3", 3871 + "hoek": "5.0.2", 3872 + "pez": "4.0.1", 3873 + "wreck": "14.0.2" 3874 + } 3875 + }, 3876 + "supports-color": { 3877 + "version": "4.5.0", 3878 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", 3879 + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", 3880 + "requires": { 3881 + "has-flag": "2.0.0" 3882 + } 3883 + }, 3884 + "sywac": { 3885 + "version": "1.2.0", 3886 + "resolved": "https://registry.npmjs.org/sywac/-/sywac-1.2.0.tgz", 3887 + "integrity": "sha512-78wpxGqTfJJ8Evfc8YCItmmkcJQ9CwFgCXGeIbzzlfUSJ8UFKTrgWer86ZeSWQCj/NYN8MfFKzrlH1F9jSrlTg==" 3888 + }, 3889 + "table": { 3890 + "version": "4.0.2", 3891 + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", 3892 + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", 3893 + "dev": true, 3894 + "requires": { 3895 + "ajv": "5.5.0", 3896 + "ajv-keywords": "2.1.1", 3897 + "chalk": "2.3.0", 3898 + "lodash": "4.17.4", 3899 + "slice-ansi": "1.0.0", 3900 + "string-width": "2.1.1" 3901 + } 3902 + }, 3903 + "tar": { 3904 + "version": "3.2.1", 3905 + "resolved": "https://registry.npmjs.org/tar/-/tar-3.2.1.tgz", 3906 + "integrity": "sha512-ZSzds1E0IqutvMU8HxjMaU8eB7urw2fGwTq88ukDOVuUIh0656l7/P7LiVPxhO5kS4flcRJQk8USG+cghQbTUQ==", 3907 + "requires": { 3908 + "chownr": "1.0.1", 3909 + "minipass": "2.2.1", 3910 + "minizlib": "1.0.4", 3911 + "mkdirp": "0.5.1", 3912 + "yallist": "3.0.2" 3913 + } 3914 + }, 3915 + "teamwork": { 3916 + "version": "3.0.1", 3917 + "resolved": "https://registry.npmjs.org/teamwork/-/teamwork-3.0.1.tgz", 3918 + "integrity": "sha512-hEkJIpDOfOYe9NYaLFk00zQbzZeKNCY8T2pRH3I13Y1mJwxaSQ6NEsjY5rCp+11ezCiZpWGoGFTbOuhg4qKevQ==" 3919 + }, 3920 + "term-size": { 3921 + "version": "1.2.0", 3922 + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", 3923 + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", 3924 + "requires": { 3925 + "execa": "0.7.0" 3926 + } 3927 + }, 3928 + "text-table": { 3929 + "version": "0.2.0", 3930 + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 3931 + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 3932 + "dev": true 3933 + }, 3934 + "through": { 3935 + "version": "2.3.8", 3936 + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 3937 + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" 3938 + }, 3939 + "timed-out": { 3940 + "version": "4.0.1", 3941 + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", 3942 + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" 3943 + }, 3944 + "tmp": { 3945 + "version": "0.0.33", 3946 + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 3947 + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 3948 + "dev": true, 3949 + "requires": { 3950 + "os-tmpdir": "1.0.2" 3951 + } 3952 + }, 3953 + "topo": { 3954 + "version": "3.0.0", 3955 + "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.0.tgz", 3956 + "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", 3957 + "requires": { 3958 + "hoek": "5.0.2" 3959 + } 3960 + }, 3961 + "touch": { 3962 + "version": "3.1.0", 3963 + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", 3964 + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", 3965 + "requires": { 3966 + "nopt": "1.0.10" 3967 + } 3968 + }, 3969 + "tryit": { 3970 + "version": "1.0.3", 3971 + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", 3972 + "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", 3973 + "dev": true 3974 + }, 3975 + "tunnel-agent": { 3976 + "version": "0.6.0", 3977 + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 3978 + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 3979 + "requires": { 3980 + "safe-buffer": "5.1.1" 3981 + } 3982 + }, 3983 + "type-check": { 3984 + "version": "0.3.2", 3985 + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 3986 + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 3987 + "dev": true, 3988 + "requires": { 3989 + "prelude-ls": "1.1.2" 3990 + } 3991 + }, 3992 + "typedarray": { 3993 + "version": "0.0.6", 3994 + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 3995 + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 3996 + "dev": true 3997 + }, 3998 + "undefsafe": { 3999 + "version": "0.0.3", 4000 + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-0.0.3.tgz", 4001 + "integrity": "sha1-7Mo6A+VrmvFzhbqsgSrIO5lKli8=" 4002 + }, 4003 + "unique-string": { 4004 + "version": "1.0.0", 4005 + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", 4006 + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", 4007 + "requires": { 4008 + "crypto-random-string": "1.0.0" 4009 + } 4010 + }, 4011 + "universalify": { 4012 + "version": "0.1.1", 4013 + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", 4014 + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=" 4015 + }, 4016 + "unzip-response": { 4017 + "version": "2.0.1", 4018 + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", 4019 + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" 4020 + }, 4021 + "update-notifier": { 4022 + "version": "2.3.0", 4023 + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.3.0.tgz", 4024 + "integrity": "sha1-TognpruRUUCrCTVZ1wFOPruDdFE=", 4025 + "requires": { 4026 + "boxen": "1.2.2", 4027 + "chalk": "2.3.0", 4028 + "configstore": "3.1.1", 4029 + "import-lazy": "2.1.0", 4030 + "is-installed-globally": "0.1.0", 4031 + "is-npm": "1.0.0", 4032 + "latest-version": "3.1.0", 4033 + "semver-diff": "2.1.0", 4034 + "xdg-basedir": "3.0.0" 4035 + } 4036 + }, 4037 + "url-parse-lax": { 4038 + "version": "1.0.0", 4039 + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", 4040 + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", 4041 + "requires": { 4042 + "prepend-http": "1.0.4" 4043 + } 4044 + }, 4045 + "url-to-options": { 4046 + "version": "1.0.1", 4047 + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", 4048 + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" 4049 + }, 4050 + "util-deprecate": { 4051 + "version": "1.0.2", 4052 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 4053 + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 4054 + }, 4055 + "utila": { 4056 + "version": "0.4.0", 4057 + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", 4058 + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" 4059 + }, 4060 + "validate-npm-package-license": { 4061 + "version": "3.0.1", 4062 + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", 4063 + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", 4064 + "dev": true, 4065 + "requires": { 4066 + "spdx-correct": "1.0.2", 4067 + "spdx-expression-parse": "1.0.4" 4068 + } 4069 + }, 4070 + "vise": { 4071 + "version": "3.0.0", 4072 + "resolved": "https://registry.npmjs.org/vise/-/vise-3.0.0.tgz", 4073 + "integrity": "sha512-kBFZLmiL1Vm3rHXphkhvvAcsjgeQXRrOFCbJb0I50YZZP4HGRNH+xGzK3matIMcpbsfr3I02u9odj4oCD0TWgA==", 4074 + "requires": { 4075 + "hoek": "5.0.2" 4076 + } 4077 + }, 4078 + "which": { 4079 + "version": "1.3.0", 4080 + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", 4081 + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", 4082 + "requires": { 4083 + "isexe": "2.0.0" 4084 + } 4085 + }, 4086 + "widest-line": { 4087 + "version": "1.0.0", 4088 + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz", 4089 + "integrity": "sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=", 4090 + "requires": { 4091 + "string-width": "1.0.2" 4092 + }, 4093 + "dependencies": { 4094 + "is-fullwidth-code-point": { 4095 + "version": "1.0.0", 4096 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 4097 + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 4098 + "requires": { 4099 + "number-is-nan": "1.0.1" 4100 + } 4101 + }, 4102 + "string-width": { 4103 + "version": "1.0.2", 4104 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 4105 + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 4106 + "requires": { 4107 + "code-point-at": "1.1.0", 4108 + "is-fullwidth-code-point": "1.0.0", 4109 + "strip-ansi": "3.0.1" 4110 + } 4111 + } 4112 + } 4113 + }, 4114 + "wordwrap": { 4115 + "version": "1.0.0", 4116 + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 4117 + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 4118 + "dev": true 4119 + }, 4120 + "wrappy": { 4121 + "version": "1.0.2", 4122 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4123 + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 4124 + }, 4125 + "wreck": { 4126 + "version": "14.0.2", 4127 + "resolved": "https://registry.npmjs.org/wreck/-/wreck-14.0.2.tgz", 4128 + "integrity": "sha512-QCm3omWNJUseqrSzwX2QZi1rBbmCfbFHJAXputLLyZ37VSiFnSYQB0ms/mPnSvrlIu7GVm89Y/gBNhSY26uVIQ==", 4129 + "requires": { 4130 + "boom": "7.1.1", 4131 + "hoek": "5.0.2" 4132 + } 4133 + }, 4134 + "write": { 4135 + "version": "0.2.1", 4136 + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", 4137 + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", 4138 + "dev": true, 4139 + "requires": { 4140 + "mkdirp": "0.5.1" 4141 + } 4142 + }, 4143 + "write-file-atomic": { 4144 + "version": "2.3.0", 4145 + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", 4146 + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", 4147 + "requires": { 4148 + "graceful-fs": "4.1.11", 4149 + "imurmurhash": "0.1.4", 4150 + "signal-exit": "3.0.2" 4151 + } 4152 + }, 4153 + "xdg-basedir": { 4154 + "version": "3.0.0", 4155 + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", 4156 + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" 4157 + }, 4158 + "yallist": { 4159 + "version": "3.0.2", 4160 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", 4161 + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" 4162 + } 4163 + } 4164 + }
+33
package.json
··· 1 + { 2 + "name": "ipx", 3 + "version": "0.0.1", 4 + "license": "MIT", 5 + "contributors": [ 6 + "Pooya Parsa <pooya@fandogh.org>" 7 + ], 8 + "main": "src/index.js", 9 + "scripts": { 10 + "start": "bak start", 11 + "dev": "nodemon node_modules/.bin/bak start" 12 + }, 13 + "dependencies": { 14 + "bak": "^2.0.3", 15 + "config": "^1.28.1", 16 + "cron": "^1.3.0", 17 + "fs-extra": "^4.0.3", 18 + "is-valid-path": "^0.1.1", 19 + "nodemon": "^1.12.1", 20 + "recursive-readdir": "^2.2.1", 21 + "sharp": "^0.18.4" 22 + }, 23 + "devDependencies": { 24 + "eslint": "^4.12.0", 25 + "eslint-config-standard": "^10.2.1", 26 + "eslint-plugin-html": "^4.0.1", 27 + "eslint-plugin-import": "^2.8.0", 28 + "eslint-plugin-jest": "^21.3.2", 29 + "eslint-plugin-node": "^5.2.1", 30 + "eslint-plugin-promise": "^3.6.0", 31 + "eslint-plugin-standard": "^3.0.1" 32 + } 33 + }
+28
src/api.js
··· 1 + const Boom = require('boom') 2 + const Config = require('config') 3 + const IPX = require('./ipx') 4 + 5 + const ipx = new IPX(Config.get('ipx')) 6 + 7 + module.exports = { 8 + method: 'GET', 9 + path: '{format}/{operations}/{src*}', 10 + async handler ({ params = {} }, h) { 11 + const { format, operations, src } = params 12 + 13 + if (!src || !operations || !format) { 14 + throw Boom.badRequest('Invalid URL') 15 + } 16 + 17 + const img = await ipx.get({ format, operations, src }) 18 + const response = h.response(img.data) 19 + 20 + if (img.format) { 21 + response.type('image/' + img.format) 22 + } else { 23 + response.type('image') 24 + } 25 + 26 + return response 27 + } 28 + }
+9
src/index.js
··· 1 + const IPX = require('./ipx') 2 + const Utils = require('./utils') 3 + const Operations = require('./operations') 4 + 5 + module.exports = { 6 + IPX, 7 + Utils, 8 + Operations 9 + }
+47
src/input/file.js
··· 1 + const { isAbsolute } = require('path').posix 2 + const isValidPath = require('is-valid-path') 3 + const { resolve, relative } = require('path') 4 + const { exists, readFile } = require('fs-extra') 5 + 6 + module.exports = class fileAdapter { 7 + constructor (sharp) { 8 + this.sharp = sharp 9 + this.options = sharp.options 10 + } 11 + 12 + get dir () { 13 + return this.options.input.dir 14 + } 15 + 16 + _resolve (src) { 17 + return resolve(this.dir, src) 18 + } 19 + 20 + async validate (src) { 21 + if (isAbsolute(src) || !isValidPath(src)) { 22 + return false 23 + } 24 + 25 + const _src = this._resolve(src) 26 + 27 + if (relative(this.dir, _src).indexOf('..') !== -1) { 28 + return false 29 + } 30 + 31 + if (!await exists(_src)) { 32 + return false 33 + } 34 + 35 + return true 36 + } 37 + 38 + /** 39 + * @param {String} src 40 + * @returns Promise<Buffer> 41 + */ 42 + get (src) { 43 + const _src = this._resolve(src) 44 + const buff = readFile(_src) 45 + return buff 46 + } 47 + }
+197
src/ipx.js
··· 1 + const OPERATIONS = require('./operations') 2 + const { resolve, extname } = require('path') 3 + const Boom = require('boom') 4 + const Sharp = require('sharp') 5 + const { CronJob } = require('cron') 6 + 7 + const operationSeparator = ',' 8 + const argSeparator = '_' 9 + 10 + class Shark { 11 + constructor (options) { 12 + this.options = options 13 + this.operations = {} 14 + this.adapter = null 15 + 16 + this.init() 17 + } 18 + 19 + init () { 20 + // Merge and normalize operations 21 + const _operations = Object.assign({}, OPERATIONS, this.options.operations) 22 + Object.keys(_operations) 23 + .filter(_key => _operations[_key]) 24 + .forEach(_key => { 25 + const operation = _operations[_key] 26 + const key = _key || operation.key 27 + this.operations[key] = { 28 + name: operation.name || key, 29 + handler: operation.handler || operation, 30 + multiply: Boolean(operation.multiply), 31 + order: Boolean(operation.order), 32 + args: operation.args || [] 33 + } 34 + }) 35 + 36 + // Create instance of input 37 + let InputCtor = this.options.input.adapter 38 + if (typeof InputCtor === 'string') { 39 + InputCtor = require(resolve(__dirname, 'input', InputCtor)) 40 + } 41 + this.input = new InputCtor(this) 42 + 43 + // Create instance of cache 44 + let CacheCtor = this.options.cache.adapter 45 + if (typeof CacheCtor === 'string') { 46 + CacheCtor = require(resolve(__dirname, 'cache', CacheCtor)) 47 + } 48 + this.cache = new CacheCtor(this) 49 + 50 + // Start cache cleaning cron 51 + if (this.options.cache.cleanCron) { 52 + this.cacheCleanCron = new CronJob( 53 + this.options.cache.cleanCron, 54 + () => this.cleanCache().catch(console.error) 55 + ) 56 + this.cacheCleanCron.start() 57 + } 58 + } 59 + 60 + /** 61 + * Parse operations 62 + * @param {String} operations 63 + */ 64 + parseOperations (operations) { 65 + const ops = {} 66 + 67 + if (operations === '_') { 68 + return [] 69 + } 70 + 71 + return operations.split(operationSeparator).map(_o => { 72 + let [key, ...args] = _o.split(argSeparator) 73 + 74 + const operation = this.operations[key] 75 + if (!operation) { 76 + throw Boom.badRequest('Invalid operation: ' + key) 77 + } 78 + 79 + if (operation.args.length !== args.length) { 80 + throw Boom.badRequest('Invalid number of args for ' + key + '. Expected ' + operation.args.length + ' got ' + args.length) 81 + } 82 + 83 + for (let i = 0; i < operation.args.length; i++) { 84 + args[i] = operation.args[i](args[i]) 85 + } 86 + 87 + if (!operation.multiply) { 88 + if (ops[operation.name]) { 89 + throw Boom.badRequest(key + ' can be only used once') 90 + } 91 + ops[operation.name] = true 92 + } 93 + 94 + return { 95 + operation, 96 + args, 97 + cacheKey: key + argSeparator + args.join(argSeparator) 98 + } 99 + }) 100 + } 101 + 102 + /** 103 + * Convert and get the result 104 + * @param {String} format 105 + * @param {String} operations 106 + * @param {String} src 107 + */ 108 + async get ({ format, operations, src }) { 109 + // Validate format 110 + if (format === '_') { 111 + format = extname(src).substr(1) 112 + } 113 + 114 + if (format === 'jpg') { 115 + format = 'jpeg' 116 + } 117 + 118 + if (['jpeg', 'webp', 'png'].indexOf(format) === -1) { 119 + throw Boom.badRequest('Invalid format ' + format) 120 + } 121 + 122 + // Validate src 123 + if (!src || src.indexOf('..') >= 0 || !await this.input.validate(src)) { 124 + throw Boom.notFound() 125 + } 126 + 127 + // Parse and validate operations 128 + let _operations = this.parseOperations(operations) 129 + 130 + // Reorder operations 131 + _operations = [].concat( 132 + _operations.filter(o => o.operation.order !== true).sort(), 133 + _operations.filter(o => o.operation.order === true) 134 + ) 135 + 136 + // Calculate unique hash key 137 + const cacheKey = 138 + src + 139 + '/' + 140 + (_operations.length ? _operations.map(o => o.cacheKey).join(argSeparator) : '_') + 141 + '.' + 142 + format 143 + 144 + // Check cache existence 145 + const cache = await this.cache.get(cacheKey) 146 + if (cache) { 147 + console.log('HIT!') 148 + return { 149 + format, 150 + data: cache 151 + } 152 + } 153 + 154 + // Read buffer from input 155 + const srcBuff = await this.input.get(src) 156 + 157 + // Process using Sharp 158 + let sharp = new Sharp(srcBuff) 159 + 160 + if (format !== '_') { 161 + sharp = sharp.toFormat(format) 162 + } 163 + 164 + _operations.forEach(({ operation, args }) => { 165 + try { 166 + sharp = operation.handler(this, sharp, ...args) 167 + } catch (e) { 168 + if (Boom.isBoom(e)) { 169 + throw e 170 + } 171 + console.error(e + '') 172 + throw Boom.internal() 173 + } 174 + }) 175 + const data = await sharp.toBuffer() 176 + 177 + // Put data into cache 178 + try { 179 + await this.cache.set(cacheKey, data) 180 + } catch (e) { 181 + console.error(e) 182 + } 183 + 184 + return { 185 + data, 186 + format 187 + } 188 + } 189 + 190 + async cleanCache () { 191 + if (this.cache) { 192 + await this.cache.clean() 193 + } 194 + } 195 + } 196 + 197 + module.exports = Shark
+36
src/operations.js
··· 1 + const { VSize } = require('./utils') 2 + 3 + module.exports = { 4 + s: { 5 + name: 'resize', 6 + args: [ VSize, VSize ], 7 + handler: (context, pipe, width, height) => pipe.resize(width, height) 8 + }, 9 + 10 + w: { 11 + name: 'width', 12 + args: [ VSize ], 13 + handler: (context, pipe, width) => pipe.resize(width, null) 14 + }, 15 + 16 + h: { 17 + name: 'height', 18 + args: [ VSize ], 19 + handler: (context, pipe, height) => pipe.resize(null, height) 20 + }, 21 + 22 + embed: { 23 + name: 'embed', 24 + handler: (context, pipe) => pipe.embed() 25 + }, 26 + 27 + max: { 28 + name: 'max', 29 + handler: (context, pipe) => pipe.max() 30 + }, 31 + 32 + min: { 33 + name: 'min', 34 + handler: (context, pipe) => pipe.min() 35 + } 36 + }
+28
src/utils.js
··· 1 + const Boom = require('boom') 2 + 3 + const MAX_SIZE = 2048 4 + 5 + const argRegex = /^[a-z0-9]+$/i 6 + const numRegex = /^[1-9][0-9]*$/ 7 + 8 + const VArg = arg => { 9 + if (!argRegex.test(arg)) { 10 + throw Boom.badRequest('Invalid argument: ' + arg) 11 + } 12 + return arg 13 + } 14 + 15 + const VMax = max => num => { 16 + if (!numRegex.test(num)) { 17 + throw Boom.badRequest('Invalid numeric argument: ' + num) 18 + } 19 + return Math.min(parseInt(num), max) || null 20 + } 21 + 22 + const VSize = VMax(MAX_SIZE) 23 + 24 + module.exports = { 25 + VArg, 26 + VMax, 27 + VSize 28 + }