├── example.js ├── index.js ├── package-lock.json ├── package.json ├── readme.md └── test ├── fixtures └── nightmare.json └── index.js /example.js: -------------------------------------------------------------------------------- 1 | const getPackage = require('./') 2 | 3 | getPackage('segmentio/nightmare', function (err, pkg) { 4 | if (err) throw err 5 | // pkg is a JSON object 6 | }) 7 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const URL = require('url') 4 | const got = require('got') 5 | const gh = require('github-url-to-object') 6 | 7 | function getRepoPackageJSON (repository, opts = {}) { 8 | // extract username and repo name from parsed URL 9 | // https://zeke.github.io/github-url-to-object/ 10 | let repoParts = gh(repository) 11 | if (!repoParts) throw new Error('Invalid repo name') 12 | 13 | let {user, repo, branch} = repoParts 14 | 15 | let urlParts = { 16 | protocol: 'https:', 17 | host: 'api.github.com', 18 | pathname: `/repos/${user}/${repo}/contents/package.json`, 19 | query: {} 20 | } 21 | 22 | // The name of the commit/branch/tag 23 | // Default: the repository’s default branch (usually master) 24 | if (opts.ref) urlParts.query.ref = opts.ref 25 | 26 | // If a non-master branch was specified in the given URL 27 | if (branch && branch !== 'master' && !opts.ref) { 28 | urlParts.query.ref = branch 29 | } 30 | 31 | // Token can be set in opts 32 | if (opts.access_token) urlParts.query.access_token = opts.access_token 33 | 34 | // Token can be set in environment 35 | if (process.env.GITHUB_ACCESS_TOKEN) { 36 | urlParts.query.access_token = process.env.GITHUB_ACCESS_TOKEN 37 | } 38 | 39 | // Alternative token name 40 | if (process.env.GH_TOKEN) { 41 | urlParts.query.access_token = process.env.GH_TOKEN 42 | } 43 | 44 | let url = URL.format(urlParts) 45 | 46 | return got(url, {json: true}) 47 | .then(response => { 48 | let pkg = JSON.parse(Buffer.from(response.body.content, response.body.encoding).toString()) 49 | return pkg 50 | }) 51 | } 52 | 53 | module.exports = getRepoPackageJSON 54 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "get-repo-package-json", 3 | "version": "2.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "acorn": { 8 | "version": "5.6.2", 9 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.6.2.tgz", 10 | "integrity": "sha512-zUzo1E5dI2Ey8+82egfnttyMlMZ2y0D8xOCO3PNPPlYXpl8NZvF6Qk9L9BEtJs+43FqEmfBViDqc5d1ckRDguw==", 11 | "dev": true 12 | }, 13 | "acorn-jsx": { 14 | "version": "3.0.1", 15 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", 16 | "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", 17 | "dev": true, 18 | "requires": { 19 | "acorn": "3.3.0" 20 | }, 21 | "dependencies": { 22 | "acorn": { 23 | "version": "3.3.0", 24 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", 25 | "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", 26 | "dev": true 27 | } 28 | } 29 | }, 30 | "ajv": { 31 | "version": "5.5.2", 32 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", 33 | "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", 34 | "dev": true, 35 | "requires": { 36 | "co": "4.6.0", 37 | "fast-deep-equal": "1.1.0", 38 | "fast-json-stable-stringify": "2.0.0", 39 | "json-schema-traverse": "0.3.1" 40 | } 41 | }, 42 | "ajv-keywords": { 43 | "version": "2.1.1", 44 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", 45 | "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", 46 | "dev": true 47 | }, 48 | "ansi-escapes": { 49 | "version": "3.1.0", 50 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", 51 | "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", 52 | "dev": true 53 | }, 54 | "ansi-regex": { 55 | "version": "2.1.1", 56 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 57 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 58 | "dev": true 59 | }, 60 | "ansi-styles": { 61 | "version": "2.2.1", 62 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 63 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 64 | "dev": true 65 | }, 66 | "argparse": { 67 | "version": "1.0.10", 68 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 69 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 70 | "dev": true, 71 | "requires": { 72 | "sprintf-js": "1.0.3" 73 | } 74 | }, 75 | "array-includes": { 76 | "version": "3.0.3", 77 | "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", 78 | "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", 79 | "dev": true, 80 | "requires": { 81 | "define-properties": "1.1.2", 82 | "es-abstract": "1.12.0" 83 | } 84 | }, 85 | "array-union": { 86 | "version": "1.0.2", 87 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 88 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 89 | "dev": true, 90 | "requires": { 91 | "array-uniq": "1.0.3" 92 | } 93 | }, 94 | "array-uniq": { 95 | "version": "1.0.3", 96 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 97 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 98 | "dev": true 99 | }, 100 | "arrify": { 101 | "version": "1.0.1", 102 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 103 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 104 | "dev": true 105 | }, 106 | "asap": { 107 | "version": "2.0.6", 108 | "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", 109 | "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", 110 | "dev": true 111 | }, 112 | "assertion-error": { 113 | "version": "1.0.2", 114 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", 115 | "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=", 116 | "dev": true 117 | }, 118 | "babel-code-frame": { 119 | "version": "6.26.0", 120 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 121 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 122 | "dev": true, 123 | "requires": { 124 | "chalk": "1.1.3", 125 | "esutils": "2.0.2", 126 | "js-tokens": "3.0.2" 127 | }, 128 | "dependencies": { 129 | "chalk": { 130 | "version": "1.1.3", 131 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 132 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 133 | "dev": true, 134 | "requires": { 135 | "ansi-styles": "2.2.1", 136 | "escape-string-regexp": "1.0.5", 137 | "has-ansi": "2.0.0", 138 | "strip-ansi": "3.0.1", 139 | "supports-color": "2.0.0" 140 | } 141 | }, 142 | "strip-ansi": { 143 | "version": "3.0.1", 144 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 145 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 146 | "dev": true, 147 | "requires": { 148 | "ansi-regex": "2.1.1" 149 | } 150 | }, 151 | "supports-color": { 152 | "version": "2.0.0", 153 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 154 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 155 | "dev": true 156 | } 157 | } 158 | }, 159 | "balanced-match": { 160 | "version": "1.0.0", 161 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 162 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 163 | "dev": true 164 | }, 165 | "brace-expansion": { 166 | "version": "1.1.8", 167 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 168 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 169 | "dev": true, 170 | "requires": { 171 | "balanced-match": "1.0.0", 172 | "concat-map": "0.0.1" 173 | } 174 | }, 175 | "browser-stdout": { 176 | "version": "1.3.1", 177 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", 178 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", 179 | "dev": true 180 | }, 181 | "buffer-from": { 182 | "version": "1.1.0", 183 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", 184 | "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", 185 | "dev": true 186 | }, 187 | "builtin-modules": { 188 | "version": "1.1.1", 189 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 190 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 191 | "dev": true 192 | }, 193 | "caller-path": { 194 | "version": "0.1.0", 195 | "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", 196 | "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", 197 | "dev": true, 198 | "requires": { 199 | "callsites": "0.2.0" 200 | } 201 | }, 202 | "callsites": { 203 | "version": "0.2.0", 204 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", 205 | "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", 206 | "dev": true 207 | }, 208 | "capture-stack-trace": { 209 | "version": "1.0.0", 210 | "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", 211 | "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=" 212 | }, 213 | "chai": { 214 | "version": "3.5.0", 215 | "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", 216 | "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", 217 | "dev": true, 218 | "requires": { 219 | "assertion-error": "1.0.2", 220 | "deep-eql": "0.1.3", 221 | "type-detect": "1.0.0" 222 | } 223 | }, 224 | "chalk": { 225 | "version": "2.4.1", 226 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", 227 | "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", 228 | "dev": true, 229 | "requires": { 230 | "ansi-styles": "3.2.1", 231 | "escape-string-regexp": "1.0.5", 232 | "supports-color": "5.4.0" 233 | }, 234 | "dependencies": { 235 | "ansi-styles": { 236 | "version": "3.2.1", 237 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 238 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 239 | "dev": true, 240 | "requires": { 241 | "color-convert": "1.9.1" 242 | } 243 | } 244 | } 245 | }, 246 | "chardet": { 247 | "version": "0.4.2", 248 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", 249 | "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", 250 | "dev": true 251 | }, 252 | "check-error": { 253 | "version": "1.0.2", 254 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", 255 | "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", 256 | "dev": true 257 | }, 258 | "circular-json": { 259 | "version": "0.3.3", 260 | "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", 261 | "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", 262 | "dev": true 263 | }, 264 | "cli-cursor": { 265 | "version": "2.1.0", 266 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 267 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", 268 | "dev": true, 269 | "requires": { 270 | "restore-cursor": "2.0.0" 271 | } 272 | }, 273 | "cli-width": { 274 | "version": "2.2.0", 275 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", 276 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", 277 | "dev": true 278 | }, 279 | "co": { 280 | "version": "4.6.0", 281 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 282 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 283 | "dev": true 284 | }, 285 | "color-convert": { 286 | "version": "1.9.1", 287 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", 288 | "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", 289 | "dev": true, 290 | "requires": { 291 | "color-name": "1.1.3" 292 | } 293 | }, 294 | "color-name": { 295 | "version": "1.1.3", 296 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 297 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 298 | "dev": true 299 | }, 300 | "commander": { 301 | "version": "2.15.1", 302 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", 303 | "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", 304 | "dev": true 305 | }, 306 | "concat-map": { 307 | "version": "0.0.1", 308 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 309 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 310 | "dev": true 311 | }, 312 | "concat-stream": { 313 | "version": "1.6.2", 314 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 315 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 316 | "dev": true, 317 | "requires": { 318 | "buffer-from": "1.1.0", 319 | "inherits": "2.0.3", 320 | "readable-stream": "2.3.6", 321 | "typedarray": "0.0.6" 322 | } 323 | }, 324 | "contains-path": { 325 | "version": "0.1.0", 326 | "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", 327 | "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", 328 | "dev": true 329 | }, 330 | "core-js": { 331 | "version": "1.2.7", 332 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", 333 | "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", 334 | "dev": true 335 | }, 336 | "core-util-is": { 337 | "version": "1.0.2", 338 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 339 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 340 | "dev": true 341 | }, 342 | "create-error-class": { 343 | "version": "3.0.2", 344 | "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", 345 | "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", 346 | "requires": { 347 | "capture-stack-trace": "1.0.0" 348 | } 349 | }, 350 | "cross-spawn": { 351 | "version": "5.1.0", 352 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 353 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 354 | "dev": true, 355 | "requires": { 356 | "lru-cache": "4.1.3", 357 | "shebang-command": "1.2.0", 358 | "which": "1.3.1" 359 | } 360 | }, 361 | "debug": { 362 | "version": "3.1.0", 363 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 364 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 365 | "dev": true, 366 | "requires": { 367 | "ms": "2.0.0" 368 | } 369 | }, 370 | "debug-log": { 371 | "version": "1.0.1", 372 | "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", 373 | "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", 374 | "dev": true 375 | }, 376 | "deep-eql": { 377 | "version": "0.1.3", 378 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", 379 | "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", 380 | "dev": true, 381 | "requires": { 382 | "type-detect": "0.1.1" 383 | }, 384 | "dependencies": { 385 | "type-detect": { 386 | "version": "0.1.1", 387 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", 388 | "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", 389 | "dev": true 390 | } 391 | } 392 | }, 393 | "deep-equal": { 394 | "version": "1.0.1", 395 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", 396 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", 397 | "dev": true 398 | }, 399 | "deep-is": { 400 | "version": "0.1.3", 401 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 402 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 403 | "dev": true 404 | }, 405 | "define-properties": { 406 | "version": "1.1.2", 407 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", 408 | "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", 409 | "dev": true, 410 | "requires": { 411 | "foreach": "2.0.5", 412 | "object-keys": "1.0.11" 413 | } 414 | }, 415 | "deglob": { 416 | "version": "2.1.0", 417 | "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.0.tgz", 418 | "integrity": "sha1-TUSr4W7zLHebSXK9FBqAMlApoUo=", 419 | "dev": true, 420 | "requires": { 421 | "find-root": "1.1.0", 422 | "glob": "7.1.2", 423 | "ignore": "3.3.8", 424 | "pkg-config": "1.1.1", 425 | "run-parallel": "1.1.9", 426 | "uniq": "1.0.1" 427 | } 428 | }, 429 | "del": { 430 | "version": "2.2.2", 431 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", 432 | "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", 433 | "dev": true, 434 | "requires": { 435 | "globby": "5.0.0", 436 | "is-path-cwd": "1.0.0", 437 | "is-path-in-cwd": "1.0.1", 438 | "object-assign": "4.1.1", 439 | "pify": "2.3.0", 440 | "pinkie-promise": "2.0.1", 441 | "rimraf": "2.6.2" 442 | } 443 | }, 444 | "diff": { 445 | "version": "3.5.0", 446 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", 447 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", 448 | "dev": true 449 | }, 450 | "doctrine": { 451 | "version": "2.1.0", 452 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", 453 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", 454 | "dev": true, 455 | "requires": { 456 | "esutils": "2.0.2" 457 | } 458 | }, 459 | "duplexer3": { 460 | "version": "0.1.4", 461 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", 462 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" 463 | }, 464 | "encoding": { 465 | "version": "0.1.12", 466 | "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", 467 | "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", 468 | "dev": true, 469 | "requires": { 470 | "iconv-lite": "0.4.23" 471 | } 472 | }, 473 | "error-ex": { 474 | "version": "1.3.1", 475 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", 476 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", 477 | "dev": true, 478 | "requires": { 479 | "is-arrayish": "0.2.1" 480 | } 481 | }, 482 | "es-abstract": { 483 | "version": "1.12.0", 484 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", 485 | "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", 486 | "dev": true, 487 | "requires": { 488 | "es-to-primitive": "1.1.1", 489 | "function-bind": "1.1.1", 490 | "has": "1.0.3", 491 | "is-callable": "1.1.3", 492 | "is-regex": "1.0.4" 493 | } 494 | }, 495 | "es-to-primitive": { 496 | "version": "1.1.1", 497 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", 498 | "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", 499 | "dev": true, 500 | "requires": { 501 | "is-callable": "1.1.3", 502 | "is-date-object": "1.0.1", 503 | "is-symbol": "1.0.1" 504 | } 505 | }, 506 | "escape-string-regexp": { 507 | "version": "1.0.5", 508 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 509 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 510 | "dev": true 511 | }, 512 | "eslint": { 513 | "version": "4.18.2", 514 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", 515 | "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", 516 | "dev": true, 517 | "requires": { 518 | "ajv": "5.5.2", 519 | "babel-code-frame": "6.26.0", 520 | "chalk": "2.4.1", 521 | "concat-stream": "1.6.2", 522 | "cross-spawn": "5.1.0", 523 | "debug": "3.1.0", 524 | "doctrine": "2.1.0", 525 | "eslint-scope": "3.7.1", 526 | "eslint-visitor-keys": "1.0.0", 527 | "espree": "3.5.4", 528 | "esquery": "1.0.1", 529 | "esutils": "2.0.2", 530 | "file-entry-cache": "2.0.0", 531 | "functional-red-black-tree": "1.0.1", 532 | "glob": "7.1.2", 533 | "globals": "11.5.0", 534 | "ignore": "3.3.8", 535 | "imurmurhash": "0.1.4", 536 | "inquirer": "3.3.0", 537 | "is-resolvable": "1.1.0", 538 | "js-yaml": "3.12.0", 539 | "json-stable-stringify-without-jsonify": "1.0.1", 540 | "levn": "0.3.0", 541 | "lodash": "4.17.10", 542 | "minimatch": "3.0.4", 543 | "mkdirp": "0.5.1", 544 | "natural-compare": "1.4.0", 545 | "optionator": "0.8.2", 546 | "path-is-inside": "1.0.2", 547 | "pluralize": "7.0.0", 548 | "progress": "2.0.0", 549 | "require-uncached": "1.0.3", 550 | "semver": "5.5.0", 551 | "strip-ansi": "4.0.0", 552 | "strip-json-comments": "2.0.1", 553 | "table": "4.0.2", 554 | "text-table": "0.2.0" 555 | } 556 | }, 557 | "eslint-config-standard": { 558 | "version": "11.0.0", 559 | "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz", 560 | "integrity": "sha512-oDdENzpViEe5fwuRCWla7AXQd++/oyIp8zP+iP9jiUPG6NBj3SHgdgtl/kTn00AjeN+1HNvavTKmYbMo+xMOlw==", 561 | "dev": true 562 | }, 563 | "eslint-config-standard-jsx": { 564 | "version": "5.0.0", 565 | "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz", 566 | "integrity": "sha512-rLToPAEqLMPBfWnYTu6xRhm2OWziS2n40QFqJ8jAM8NSVzeVKTa3nclhsU4DpPJQRY60F34Oo1wi/71PN/eITg==", 567 | "dev": true 568 | }, 569 | "eslint-import-resolver-node": { 570 | "version": "0.3.2", 571 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", 572 | "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", 573 | "dev": true, 574 | "requires": { 575 | "debug": "2.6.9", 576 | "resolve": "1.7.1" 577 | }, 578 | "dependencies": { 579 | "debug": { 580 | "version": "2.6.9", 581 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 582 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 583 | "dev": true, 584 | "requires": { 585 | "ms": "2.0.0" 586 | } 587 | } 588 | } 589 | }, 590 | "eslint-module-utils": { 591 | "version": "2.2.0", 592 | "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", 593 | "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", 594 | "dev": true, 595 | "requires": { 596 | "debug": "2.6.9", 597 | "pkg-dir": "1.0.0" 598 | }, 599 | "dependencies": { 600 | "debug": { 601 | "version": "2.6.9", 602 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 603 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 604 | "dev": true, 605 | "requires": { 606 | "ms": "2.0.0" 607 | } 608 | } 609 | } 610 | }, 611 | "eslint-plugin-import": { 612 | "version": "2.9.0", 613 | "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", 614 | "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", 615 | "dev": true, 616 | "requires": { 617 | "builtin-modules": "1.1.1", 618 | "contains-path": "0.1.0", 619 | "debug": "2.6.9", 620 | "doctrine": "1.5.0", 621 | "eslint-import-resolver-node": "0.3.2", 622 | "eslint-module-utils": "2.2.0", 623 | "has": "1.0.3", 624 | "lodash": "4.17.10", 625 | "minimatch": "3.0.4", 626 | "read-pkg-up": "2.0.0" 627 | }, 628 | "dependencies": { 629 | "debug": { 630 | "version": "2.6.9", 631 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 632 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 633 | "dev": true, 634 | "requires": { 635 | "ms": "2.0.0" 636 | } 637 | }, 638 | "doctrine": { 639 | "version": "1.5.0", 640 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", 641 | "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", 642 | "dev": true, 643 | "requires": { 644 | "esutils": "2.0.2", 645 | "isarray": "1.0.0" 646 | } 647 | } 648 | } 649 | }, 650 | "eslint-plugin-node": { 651 | "version": "6.0.1", 652 | "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", 653 | "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", 654 | "dev": true, 655 | "requires": { 656 | "ignore": "3.3.8", 657 | "minimatch": "3.0.4", 658 | "resolve": "1.7.1", 659 | "semver": "5.5.0" 660 | } 661 | }, 662 | "eslint-plugin-promise": { 663 | "version": "3.7.0", 664 | "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz", 665 | "integrity": "sha512-2WO+ZFh7vxUKRfR0cOIMrWgYKdR6S1AlOezw6pC52B6oYpd5WFghN+QHxvrRdZMtbo8h3dfUZ2o1rWb0UPbKtg==", 666 | "dev": true 667 | }, 668 | "eslint-plugin-react": { 669 | "version": "7.7.0", 670 | "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", 671 | "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", 672 | "dev": true, 673 | "requires": { 674 | "doctrine": "2.1.0", 675 | "has": "1.0.3", 676 | "jsx-ast-utils": "2.0.1", 677 | "prop-types": "15.6.1" 678 | } 679 | }, 680 | "eslint-plugin-standard": { 681 | "version": "3.0.1", 682 | "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", 683 | "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=", 684 | "dev": true 685 | }, 686 | "eslint-scope": { 687 | "version": "3.7.1", 688 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", 689 | "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", 690 | "dev": true, 691 | "requires": { 692 | "esrecurse": "4.2.1", 693 | "estraverse": "4.2.0" 694 | } 695 | }, 696 | "eslint-visitor-keys": { 697 | "version": "1.0.0", 698 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", 699 | "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", 700 | "dev": true 701 | }, 702 | "espree": { 703 | "version": "3.5.4", 704 | "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", 705 | "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", 706 | "dev": true, 707 | "requires": { 708 | "acorn": "5.6.2", 709 | "acorn-jsx": "3.0.1" 710 | } 711 | }, 712 | "esprima": { 713 | "version": "4.0.0", 714 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", 715 | "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", 716 | "dev": true 717 | }, 718 | "esquery": { 719 | "version": "1.0.1", 720 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", 721 | "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", 722 | "dev": true, 723 | "requires": { 724 | "estraverse": "4.2.0" 725 | } 726 | }, 727 | "esrecurse": { 728 | "version": "4.2.1", 729 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", 730 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", 731 | "dev": true, 732 | "requires": { 733 | "estraverse": "4.2.0" 734 | } 735 | }, 736 | "estraverse": { 737 | "version": "4.2.0", 738 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 739 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 740 | "dev": true 741 | }, 742 | "esutils": { 743 | "version": "2.0.2", 744 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 745 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 746 | "dev": true 747 | }, 748 | "external-editor": { 749 | "version": "2.2.0", 750 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", 751 | "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", 752 | "dev": true, 753 | "requires": { 754 | "chardet": "0.4.2", 755 | "iconv-lite": "0.4.23", 756 | "tmp": "0.0.33" 757 | } 758 | }, 759 | "fast-deep-equal": { 760 | "version": "1.1.0", 761 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", 762 | "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", 763 | "dev": true 764 | }, 765 | "fast-json-stable-stringify": { 766 | "version": "2.0.0", 767 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 768 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", 769 | "dev": true 770 | }, 771 | "fast-levenshtein": { 772 | "version": "2.0.6", 773 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 774 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 775 | "dev": true 776 | }, 777 | "fbjs": { 778 | "version": "0.8.16", 779 | "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", 780 | "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", 781 | "dev": true, 782 | "requires": { 783 | "core-js": "1.2.7", 784 | "isomorphic-fetch": "2.2.1", 785 | "loose-envify": "1.3.1", 786 | "object-assign": "4.1.1", 787 | "promise": "7.3.1", 788 | "setimmediate": "1.0.5", 789 | "ua-parser-js": "0.7.18" 790 | } 791 | }, 792 | "figures": { 793 | "version": "2.0.0", 794 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 795 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 796 | "dev": true, 797 | "requires": { 798 | "escape-string-regexp": "1.0.5" 799 | } 800 | }, 801 | "file-entry-cache": { 802 | "version": "2.0.0", 803 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", 804 | "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", 805 | "dev": true, 806 | "requires": { 807 | "flat-cache": "1.3.0", 808 | "object-assign": "4.1.1" 809 | } 810 | }, 811 | "find-root": { 812 | "version": "1.1.0", 813 | "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", 814 | "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", 815 | "dev": true 816 | }, 817 | "find-up": { 818 | "version": "1.1.2", 819 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 820 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 821 | "dev": true, 822 | "requires": { 823 | "path-exists": "2.1.0", 824 | "pinkie-promise": "2.0.1" 825 | } 826 | }, 827 | "flat-cache": { 828 | "version": "1.3.0", 829 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", 830 | "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", 831 | "dev": true, 832 | "requires": { 833 | "circular-json": "0.3.3", 834 | "del": "2.2.2", 835 | "graceful-fs": "4.1.11", 836 | "write": "0.2.1" 837 | } 838 | }, 839 | "foreach": { 840 | "version": "2.0.5", 841 | "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", 842 | "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", 843 | "dev": true 844 | }, 845 | "fs.realpath": { 846 | "version": "1.0.0", 847 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 848 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 849 | "dev": true 850 | }, 851 | "function-bind": { 852 | "version": "1.1.1", 853 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 854 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 855 | "dev": true 856 | }, 857 | "functional-red-black-tree": { 858 | "version": "1.0.1", 859 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 860 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 861 | "dev": true 862 | }, 863 | "get-func-name": { 864 | "version": "2.0.0", 865 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", 866 | "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", 867 | "dev": true 868 | }, 869 | "get-stdin": { 870 | "version": "6.0.0", 871 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", 872 | "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", 873 | "dev": true 874 | }, 875 | "get-stream": { 876 | "version": "3.0.0", 877 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 878 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" 879 | }, 880 | "github-url-to-object": { 881 | "version": "2.2.6", 882 | "resolved": "https://registry.npmjs.org/github-url-to-object/-/github-url-to-object-2.2.6.tgz", 883 | "integrity": "sha1-ypJQFlFJdI7uswv8xgAMb+DSQvc=", 884 | "requires": { 885 | "is-url": "1.2.2" 886 | } 887 | }, 888 | "glob": { 889 | "version": "7.1.2", 890 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 891 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 892 | "dev": true, 893 | "requires": { 894 | "fs.realpath": "1.0.0", 895 | "inflight": "1.0.6", 896 | "inherits": "2.0.3", 897 | "minimatch": "3.0.4", 898 | "once": "1.4.0", 899 | "path-is-absolute": "1.0.1" 900 | } 901 | }, 902 | "globals": { 903 | "version": "11.5.0", 904 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.5.0.tgz", 905 | "integrity": "sha512-hYyf+kI8dm3nORsiiXUQigOU62hDLfJ9G01uyGMxhc6BKsircrUhC4uJPQPUSuq2GrTmiiEt7ewxlMdBewfmKQ==", 906 | "dev": true 907 | }, 908 | "globby": { 909 | "version": "5.0.0", 910 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", 911 | "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", 912 | "dev": true, 913 | "requires": { 914 | "array-union": "1.0.2", 915 | "arrify": "1.0.1", 916 | "glob": "7.1.2", 917 | "object-assign": "4.1.1", 918 | "pify": "2.3.0", 919 | "pinkie-promise": "2.0.1" 920 | } 921 | }, 922 | "got": { 923 | "version": "6.7.1", 924 | "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", 925 | "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", 926 | "requires": { 927 | "create-error-class": "3.0.2", 928 | "duplexer3": "0.1.4", 929 | "get-stream": "3.0.0", 930 | "is-redirect": "1.0.0", 931 | "is-retry-allowed": "1.1.0", 932 | "is-stream": "1.1.0", 933 | "lowercase-keys": "1.0.0", 934 | "safe-buffer": "5.1.1", 935 | "timed-out": "4.0.1", 936 | "unzip-response": "2.0.1", 937 | "url-parse-lax": "1.0.0" 938 | } 939 | }, 940 | "graceful-fs": { 941 | "version": "4.1.11", 942 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 943 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 944 | "dev": true 945 | }, 946 | "growl": { 947 | "version": "1.10.5", 948 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", 949 | "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", 950 | "dev": true 951 | }, 952 | "has": { 953 | "version": "1.0.3", 954 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 955 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 956 | "dev": true, 957 | "requires": { 958 | "function-bind": "1.1.1" 959 | } 960 | }, 961 | "has-ansi": { 962 | "version": "2.0.0", 963 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 964 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 965 | "dev": true, 966 | "requires": { 967 | "ansi-regex": "2.1.1" 968 | } 969 | }, 970 | "has-flag": { 971 | "version": "3.0.0", 972 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 973 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 974 | "dev": true 975 | }, 976 | "he": { 977 | "version": "1.1.1", 978 | "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", 979 | "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", 980 | "dev": true 981 | }, 982 | "hosted-git-info": { 983 | "version": "2.6.0", 984 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", 985 | "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", 986 | "dev": true 987 | }, 988 | "iconv-lite": { 989 | "version": "0.4.23", 990 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", 991 | "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", 992 | "dev": true, 993 | "requires": { 994 | "safer-buffer": "2.1.2" 995 | } 996 | }, 997 | "ignore": { 998 | "version": "3.3.8", 999 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz", 1000 | "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==", 1001 | "dev": true 1002 | }, 1003 | "imurmurhash": { 1004 | "version": "0.1.4", 1005 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1006 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 1007 | "dev": true 1008 | }, 1009 | "inflight": { 1010 | "version": "1.0.6", 1011 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1012 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1013 | "dev": true, 1014 | "requires": { 1015 | "once": "1.4.0", 1016 | "wrappy": "1.0.2" 1017 | } 1018 | }, 1019 | "inherits": { 1020 | "version": "2.0.3", 1021 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1022 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 1023 | "dev": true 1024 | }, 1025 | "inquirer": { 1026 | "version": "3.3.0", 1027 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", 1028 | "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", 1029 | "dev": true, 1030 | "requires": { 1031 | "ansi-escapes": "3.1.0", 1032 | "chalk": "2.4.1", 1033 | "cli-cursor": "2.1.0", 1034 | "cli-width": "2.2.0", 1035 | "external-editor": "2.2.0", 1036 | "figures": "2.0.0", 1037 | "lodash": "4.17.10", 1038 | "mute-stream": "0.0.7", 1039 | "run-async": "2.3.0", 1040 | "rx-lite": "4.0.8", 1041 | "rx-lite-aggregates": "4.0.8", 1042 | "string-width": "2.1.1", 1043 | "strip-ansi": "4.0.0", 1044 | "through": "2.3.8" 1045 | } 1046 | }, 1047 | "is-arrayish": { 1048 | "version": "0.2.1", 1049 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 1050 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 1051 | "dev": true 1052 | }, 1053 | "is-builtin-module": { 1054 | "version": "1.0.0", 1055 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", 1056 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", 1057 | "dev": true, 1058 | "requires": { 1059 | "builtin-modules": "1.1.1" 1060 | } 1061 | }, 1062 | "is-callable": { 1063 | "version": "1.1.3", 1064 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", 1065 | "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", 1066 | "dev": true 1067 | }, 1068 | "is-date-object": { 1069 | "version": "1.0.1", 1070 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", 1071 | "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", 1072 | "dev": true 1073 | }, 1074 | "is-fullwidth-code-point": { 1075 | "version": "2.0.0", 1076 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 1077 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 1078 | "dev": true 1079 | }, 1080 | "is-path-cwd": { 1081 | "version": "1.0.0", 1082 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 1083 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", 1084 | "dev": true 1085 | }, 1086 | "is-path-in-cwd": { 1087 | "version": "1.0.1", 1088 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", 1089 | "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", 1090 | "dev": true, 1091 | "requires": { 1092 | "is-path-inside": "1.0.1" 1093 | } 1094 | }, 1095 | "is-path-inside": { 1096 | "version": "1.0.1", 1097 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", 1098 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", 1099 | "dev": true, 1100 | "requires": { 1101 | "path-is-inside": "1.0.2" 1102 | } 1103 | }, 1104 | "is-promise": { 1105 | "version": "2.1.0", 1106 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", 1107 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", 1108 | "dev": true 1109 | }, 1110 | "is-redirect": { 1111 | "version": "1.0.0", 1112 | "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", 1113 | "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" 1114 | }, 1115 | "is-regex": { 1116 | "version": "1.0.4", 1117 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", 1118 | "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", 1119 | "dev": true, 1120 | "requires": { 1121 | "has": "1.0.3" 1122 | } 1123 | }, 1124 | "is-resolvable": { 1125 | "version": "1.1.0", 1126 | "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", 1127 | "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", 1128 | "dev": true 1129 | }, 1130 | "is-retry-allowed": { 1131 | "version": "1.1.0", 1132 | "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", 1133 | "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" 1134 | }, 1135 | "is-stream": { 1136 | "version": "1.1.0", 1137 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 1138 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" 1139 | }, 1140 | "is-symbol": { 1141 | "version": "1.0.1", 1142 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", 1143 | "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", 1144 | "dev": true 1145 | }, 1146 | "is-url": { 1147 | "version": "1.2.2", 1148 | "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", 1149 | "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY=" 1150 | }, 1151 | "isarray": { 1152 | "version": "1.0.0", 1153 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1154 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 1155 | "dev": true 1156 | }, 1157 | "isexe": { 1158 | "version": "2.0.0", 1159 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1160 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1161 | "dev": true 1162 | }, 1163 | "isomorphic-fetch": { 1164 | "version": "2.2.1", 1165 | "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", 1166 | "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", 1167 | "dev": true, 1168 | "requires": { 1169 | "node-fetch": "1.7.3", 1170 | "whatwg-fetch": "2.0.4" 1171 | } 1172 | }, 1173 | "js-tokens": { 1174 | "version": "3.0.2", 1175 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 1176 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 1177 | "dev": true 1178 | }, 1179 | "js-yaml": { 1180 | "version": "3.12.0", 1181 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", 1182 | "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", 1183 | "dev": true, 1184 | "requires": { 1185 | "argparse": "1.0.10", 1186 | "esprima": "4.0.0" 1187 | } 1188 | }, 1189 | "json-parse-better-errors": { 1190 | "version": "1.0.2", 1191 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 1192 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 1193 | "dev": true 1194 | }, 1195 | "json-schema-traverse": { 1196 | "version": "0.3.1", 1197 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", 1198 | "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", 1199 | "dev": true 1200 | }, 1201 | "json-stable-stringify-without-jsonify": { 1202 | "version": "1.0.1", 1203 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 1204 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 1205 | "dev": true 1206 | }, 1207 | "json-stringify-safe": { 1208 | "version": "5.0.1", 1209 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 1210 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 1211 | "dev": true 1212 | }, 1213 | "jsx-ast-utils": { 1214 | "version": "2.0.1", 1215 | "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", 1216 | "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", 1217 | "dev": true, 1218 | "requires": { 1219 | "array-includes": "3.0.3" 1220 | } 1221 | }, 1222 | "levn": { 1223 | "version": "0.3.0", 1224 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 1225 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 1226 | "dev": true, 1227 | "requires": { 1228 | "prelude-ls": "1.1.2", 1229 | "type-check": "0.3.2" 1230 | } 1231 | }, 1232 | "load-json-file": { 1233 | "version": "2.0.0", 1234 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", 1235 | "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", 1236 | "dev": true, 1237 | "requires": { 1238 | "graceful-fs": "4.1.11", 1239 | "parse-json": "2.2.0", 1240 | "pify": "2.3.0", 1241 | "strip-bom": "3.0.0" 1242 | } 1243 | }, 1244 | "locate-path": { 1245 | "version": "2.0.0", 1246 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 1247 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 1248 | "dev": true, 1249 | "requires": { 1250 | "p-locate": "2.0.0", 1251 | "path-exists": "3.0.0" 1252 | }, 1253 | "dependencies": { 1254 | "path-exists": { 1255 | "version": "3.0.0", 1256 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 1257 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 1258 | "dev": true 1259 | } 1260 | } 1261 | }, 1262 | "lodash": { 1263 | "version": "4.17.10", 1264 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", 1265 | "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", 1266 | "dev": true 1267 | }, 1268 | "loose-envify": { 1269 | "version": "1.3.1", 1270 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", 1271 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", 1272 | "dev": true, 1273 | "requires": { 1274 | "js-tokens": "3.0.2" 1275 | } 1276 | }, 1277 | "lowercase-keys": { 1278 | "version": "1.0.0", 1279 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", 1280 | "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" 1281 | }, 1282 | "lru-cache": { 1283 | "version": "4.1.3", 1284 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", 1285 | "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", 1286 | "dev": true, 1287 | "requires": { 1288 | "pseudomap": "1.0.2", 1289 | "yallist": "2.1.2" 1290 | } 1291 | }, 1292 | "mimic-fn": { 1293 | "version": "1.2.0", 1294 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 1295 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", 1296 | "dev": true 1297 | }, 1298 | "minimatch": { 1299 | "version": "3.0.4", 1300 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1301 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1302 | "dev": true, 1303 | "requires": { 1304 | "brace-expansion": "1.1.8" 1305 | } 1306 | }, 1307 | "minimist": { 1308 | "version": "0.0.8", 1309 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1310 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 1311 | "dev": true 1312 | }, 1313 | "mkdirp": { 1314 | "version": "0.5.1", 1315 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 1316 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 1317 | "dev": true, 1318 | "requires": { 1319 | "minimist": "0.0.8" 1320 | } 1321 | }, 1322 | "mocha": { 1323 | "version": "5.2.0", 1324 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", 1325 | "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", 1326 | "dev": true, 1327 | "requires": { 1328 | "browser-stdout": "1.3.1", 1329 | "commander": "2.15.1", 1330 | "debug": "3.1.0", 1331 | "diff": "3.5.0", 1332 | "escape-string-regexp": "1.0.5", 1333 | "glob": "7.1.2", 1334 | "growl": "1.10.5", 1335 | "he": "1.1.1", 1336 | "minimatch": "3.0.4", 1337 | "mkdirp": "0.5.1", 1338 | "supports-color": "5.4.0" 1339 | }, 1340 | "dependencies": { 1341 | "debug": { 1342 | "version": "3.1.0", 1343 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 1344 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 1345 | "dev": true, 1346 | "requires": { 1347 | "ms": "2.0.0" 1348 | } 1349 | }, 1350 | "glob": { 1351 | "version": "7.1.2", 1352 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 1353 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 1354 | "dev": true, 1355 | "requires": { 1356 | "fs.realpath": "1.0.0", 1357 | "inflight": "1.0.6", 1358 | "inherits": "2.0.3", 1359 | "minimatch": "3.0.4", 1360 | "once": "1.4.0", 1361 | "path-is-absolute": "1.0.1" 1362 | } 1363 | } 1364 | } 1365 | }, 1366 | "ms": { 1367 | "version": "2.0.0", 1368 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1369 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 1370 | "dev": true 1371 | }, 1372 | "mute-stream": { 1373 | "version": "0.0.7", 1374 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 1375 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", 1376 | "dev": true 1377 | }, 1378 | "natural-compare": { 1379 | "version": "1.4.0", 1380 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 1381 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 1382 | "dev": true 1383 | }, 1384 | "nock": { 1385 | "version": "9.3.1", 1386 | "resolved": "https://registry.npmjs.org/nock/-/nock-9.3.1.tgz", 1387 | "integrity": "sha512-ad1oEgM8H3AJwLcXJI64qtZ73UdusFZwFdPN72uQZmfSeXfr0TsSGoZFJ7gk9JWWaExchfVQCa+NugPcm7XHrQ==", 1388 | "dev": true, 1389 | "requires": { 1390 | "chai": "4.1.2", 1391 | "debug": "3.1.0", 1392 | "deep-equal": "1.0.1", 1393 | "json-stringify-safe": "5.0.1", 1394 | "lodash": "4.17.10", 1395 | "mkdirp": "0.5.1", 1396 | "propagate": "1.0.0", 1397 | "qs": "6.5.2", 1398 | "semver": "5.5.0" 1399 | }, 1400 | "dependencies": { 1401 | "chai": { 1402 | "version": "4.1.2", 1403 | "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", 1404 | "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", 1405 | "dev": true, 1406 | "requires": { 1407 | "assertion-error": "1.0.2", 1408 | "check-error": "1.0.2", 1409 | "deep-eql": "3.0.1", 1410 | "get-func-name": "2.0.0", 1411 | "pathval": "1.1.0", 1412 | "type-detect": "4.0.8" 1413 | } 1414 | }, 1415 | "debug": { 1416 | "version": "3.1.0", 1417 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 1418 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 1419 | "dev": true, 1420 | "requires": { 1421 | "ms": "2.0.0" 1422 | } 1423 | }, 1424 | "deep-eql": { 1425 | "version": "3.0.1", 1426 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", 1427 | "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", 1428 | "dev": true, 1429 | "requires": { 1430 | "type-detect": "4.0.8" 1431 | } 1432 | }, 1433 | "lodash": { 1434 | "version": "4.17.10", 1435 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", 1436 | "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", 1437 | "dev": true 1438 | }, 1439 | "semver": { 1440 | "version": "5.5.0", 1441 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", 1442 | "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", 1443 | "dev": true 1444 | }, 1445 | "type-detect": { 1446 | "version": "4.0.8", 1447 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", 1448 | "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", 1449 | "dev": true 1450 | } 1451 | } 1452 | }, 1453 | "node-fetch": { 1454 | "version": "1.7.3", 1455 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", 1456 | "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", 1457 | "dev": true, 1458 | "requires": { 1459 | "encoding": "0.1.12", 1460 | "is-stream": "1.1.0" 1461 | } 1462 | }, 1463 | "normalize-package-data": { 1464 | "version": "2.4.0", 1465 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 1466 | "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", 1467 | "dev": true, 1468 | "requires": { 1469 | "hosted-git-info": "2.6.0", 1470 | "is-builtin-module": "1.0.0", 1471 | "semver": "5.5.0", 1472 | "validate-npm-package-license": "3.0.3" 1473 | } 1474 | }, 1475 | "object-assign": { 1476 | "version": "4.1.1", 1477 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1478 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 1479 | "dev": true 1480 | }, 1481 | "object-keys": { 1482 | "version": "1.0.11", 1483 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", 1484 | "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", 1485 | "dev": true 1486 | }, 1487 | "once": { 1488 | "version": "1.4.0", 1489 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1490 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1491 | "dev": true, 1492 | "requires": { 1493 | "wrappy": "1.0.2" 1494 | } 1495 | }, 1496 | "onetime": { 1497 | "version": "2.0.1", 1498 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 1499 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", 1500 | "dev": true, 1501 | "requires": { 1502 | "mimic-fn": "1.2.0" 1503 | } 1504 | }, 1505 | "optionator": { 1506 | "version": "0.8.2", 1507 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 1508 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 1509 | "dev": true, 1510 | "requires": { 1511 | "deep-is": "0.1.3", 1512 | "fast-levenshtein": "2.0.6", 1513 | "levn": "0.3.0", 1514 | "prelude-ls": "1.1.2", 1515 | "type-check": "0.3.2", 1516 | "wordwrap": "1.0.0" 1517 | } 1518 | }, 1519 | "os-tmpdir": { 1520 | "version": "1.0.2", 1521 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 1522 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 1523 | "dev": true 1524 | }, 1525 | "p-limit": { 1526 | "version": "1.3.0", 1527 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", 1528 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", 1529 | "dev": true, 1530 | "requires": { 1531 | "p-try": "1.0.0" 1532 | } 1533 | }, 1534 | "p-locate": { 1535 | "version": "2.0.0", 1536 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 1537 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 1538 | "dev": true, 1539 | "requires": { 1540 | "p-limit": "1.3.0" 1541 | } 1542 | }, 1543 | "p-try": { 1544 | "version": "1.0.0", 1545 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", 1546 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", 1547 | "dev": true 1548 | }, 1549 | "parse-json": { 1550 | "version": "2.2.0", 1551 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 1552 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 1553 | "dev": true, 1554 | "requires": { 1555 | "error-ex": "1.3.1" 1556 | } 1557 | }, 1558 | "path-exists": { 1559 | "version": "2.1.0", 1560 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 1561 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 1562 | "dev": true, 1563 | "requires": { 1564 | "pinkie-promise": "2.0.1" 1565 | } 1566 | }, 1567 | "path-is-absolute": { 1568 | "version": "1.0.1", 1569 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1570 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1571 | "dev": true 1572 | }, 1573 | "path-is-inside": { 1574 | "version": "1.0.2", 1575 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 1576 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 1577 | "dev": true 1578 | }, 1579 | "path-parse": { 1580 | "version": "1.0.5", 1581 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", 1582 | "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", 1583 | "dev": true 1584 | }, 1585 | "path-type": { 1586 | "version": "2.0.0", 1587 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", 1588 | "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", 1589 | "dev": true, 1590 | "requires": { 1591 | "pify": "2.3.0" 1592 | } 1593 | }, 1594 | "pathval": { 1595 | "version": "1.1.0", 1596 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", 1597 | "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", 1598 | "dev": true 1599 | }, 1600 | "pify": { 1601 | "version": "2.3.0", 1602 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1603 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 1604 | "dev": true 1605 | }, 1606 | "pinkie": { 1607 | "version": "2.0.4", 1608 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 1609 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 1610 | "dev": true 1611 | }, 1612 | "pinkie-promise": { 1613 | "version": "2.0.1", 1614 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 1615 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 1616 | "dev": true, 1617 | "requires": { 1618 | "pinkie": "2.0.4" 1619 | } 1620 | }, 1621 | "pkg-conf": { 1622 | "version": "2.1.0", 1623 | "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", 1624 | "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", 1625 | "dev": true, 1626 | "requires": { 1627 | "find-up": "2.1.0", 1628 | "load-json-file": "4.0.0" 1629 | }, 1630 | "dependencies": { 1631 | "find-up": { 1632 | "version": "2.1.0", 1633 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 1634 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 1635 | "dev": true, 1636 | "requires": { 1637 | "locate-path": "2.0.0" 1638 | } 1639 | }, 1640 | "load-json-file": { 1641 | "version": "4.0.0", 1642 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", 1643 | "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", 1644 | "dev": true, 1645 | "requires": { 1646 | "graceful-fs": "4.1.11", 1647 | "parse-json": "4.0.0", 1648 | "pify": "3.0.0", 1649 | "strip-bom": "3.0.0" 1650 | } 1651 | }, 1652 | "parse-json": { 1653 | "version": "4.0.0", 1654 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 1655 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", 1656 | "dev": true, 1657 | "requires": { 1658 | "error-ex": "1.3.1", 1659 | "json-parse-better-errors": "1.0.2" 1660 | } 1661 | }, 1662 | "pify": { 1663 | "version": "3.0.0", 1664 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 1665 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 1666 | "dev": true 1667 | } 1668 | } 1669 | }, 1670 | "pkg-config": { 1671 | "version": "1.1.1", 1672 | "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", 1673 | "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", 1674 | "dev": true, 1675 | "requires": { 1676 | "debug-log": "1.0.1", 1677 | "find-root": "1.1.0", 1678 | "xtend": "4.0.1" 1679 | } 1680 | }, 1681 | "pkg-dir": { 1682 | "version": "1.0.0", 1683 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", 1684 | "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", 1685 | "dev": true, 1686 | "requires": { 1687 | "find-up": "1.1.2" 1688 | } 1689 | }, 1690 | "pluralize": { 1691 | "version": "7.0.0", 1692 | "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", 1693 | "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", 1694 | "dev": true 1695 | }, 1696 | "prelude-ls": { 1697 | "version": "1.1.2", 1698 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 1699 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 1700 | "dev": true 1701 | }, 1702 | "prepend-http": { 1703 | "version": "1.0.4", 1704 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", 1705 | "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" 1706 | }, 1707 | "process-nextick-args": { 1708 | "version": "2.0.0", 1709 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", 1710 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", 1711 | "dev": true 1712 | }, 1713 | "progress": { 1714 | "version": "2.0.0", 1715 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", 1716 | "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", 1717 | "dev": true 1718 | }, 1719 | "promise": { 1720 | "version": "7.3.1", 1721 | "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", 1722 | "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", 1723 | "dev": true, 1724 | "requires": { 1725 | "asap": "2.0.6" 1726 | } 1727 | }, 1728 | "prop-types": { 1729 | "version": "15.6.1", 1730 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz", 1731 | "integrity": "sha512-4ec7bY1Y66LymSUOH/zARVYObB23AT2h8cf6e/O6ZALB/N0sqZFEx7rq6EYPX2MkOdKORuooI/H5k9TlR4q7kQ==", 1732 | "dev": true, 1733 | "requires": { 1734 | "fbjs": "0.8.16", 1735 | "loose-envify": "1.3.1", 1736 | "object-assign": "4.1.1" 1737 | } 1738 | }, 1739 | "propagate": { 1740 | "version": "1.0.0", 1741 | "resolved": "https://registry.npmjs.org/propagate/-/propagate-1.0.0.tgz", 1742 | "integrity": "sha1-AMLa7t2iDofjeCs0Stuhzd1q1wk=", 1743 | "dev": true 1744 | }, 1745 | "pseudomap": { 1746 | "version": "1.0.2", 1747 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 1748 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 1749 | "dev": true 1750 | }, 1751 | "qs": { 1752 | "version": "6.5.2", 1753 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 1754 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", 1755 | "dev": true 1756 | }, 1757 | "read-pkg": { 1758 | "version": "2.0.0", 1759 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", 1760 | "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", 1761 | "dev": true, 1762 | "requires": { 1763 | "load-json-file": "2.0.0", 1764 | "normalize-package-data": "2.4.0", 1765 | "path-type": "2.0.0" 1766 | } 1767 | }, 1768 | "read-pkg-up": { 1769 | "version": "2.0.0", 1770 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", 1771 | "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", 1772 | "dev": true, 1773 | "requires": { 1774 | "find-up": "2.1.0", 1775 | "read-pkg": "2.0.0" 1776 | }, 1777 | "dependencies": { 1778 | "find-up": { 1779 | "version": "2.1.0", 1780 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 1781 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 1782 | "dev": true, 1783 | "requires": { 1784 | "locate-path": "2.0.0" 1785 | } 1786 | } 1787 | } 1788 | }, 1789 | "readable-stream": { 1790 | "version": "2.3.6", 1791 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 1792 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 1793 | "dev": true, 1794 | "requires": { 1795 | "core-util-is": "1.0.2", 1796 | "inherits": "2.0.3", 1797 | "isarray": "1.0.0", 1798 | "process-nextick-args": "2.0.0", 1799 | "safe-buffer": "5.1.1", 1800 | "string_decoder": "1.1.1", 1801 | "util-deprecate": "1.0.2" 1802 | } 1803 | }, 1804 | "require-dir": { 1805 | "version": "0.3.2", 1806 | "resolved": "https://registry.npmjs.org/require-dir/-/require-dir-0.3.2.tgz", 1807 | "integrity": "sha1-wdXHXp+//eny5rM+OD209ZS1pqk=", 1808 | "dev": true 1809 | }, 1810 | "require-uncached": { 1811 | "version": "1.0.3", 1812 | "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", 1813 | "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", 1814 | "dev": true, 1815 | "requires": { 1816 | "caller-path": "0.1.0", 1817 | "resolve-from": "1.0.1" 1818 | } 1819 | }, 1820 | "resolve": { 1821 | "version": "1.7.1", 1822 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", 1823 | "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", 1824 | "dev": true, 1825 | "requires": { 1826 | "path-parse": "1.0.5" 1827 | } 1828 | }, 1829 | "resolve-from": { 1830 | "version": "1.0.1", 1831 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", 1832 | "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", 1833 | "dev": true 1834 | }, 1835 | "restore-cursor": { 1836 | "version": "2.0.0", 1837 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 1838 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", 1839 | "dev": true, 1840 | "requires": { 1841 | "onetime": "2.0.1", 1842 | "signal-exit": "3.0.2" 1843 | } 1844 | }, 1845 | "rimraf": { 1846 | "version": "2.6.2", 1847 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", 1848 | "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", 1849 | "dev": true, 1850 | "requires": { 1851 | "glob": "7.1.2" 1852 | } 1853 | }, 1854 | "run-async": { 1855 | "version": "2.3.0", 1856 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", 1857 | "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", 1858 | "dev": true, 1859 | "requires": { 1860 | "is-promise": "2.1.0" 1861 | } 1862 | }, 1863 | "run-parallel": { 1864 | "version": "1.1.9", 1865 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", 1866 | "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", 1867 | "dev": true 1868 | }, 1869 | "rx-lite": { 1870 | "version": "4.0.8", 1871 | "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", 1872 | "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", 1873 | "dev": true 1874 | }, 1875 | "rx-lite-aggregates": { 1876 | "version": "4.0.8", 1877 | "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", 1878 | "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", 1879 | "dev": true, 1880 | "requires": { 1881 | "rx-lite": "4.0.8" 1882 | } 1883 | }, 1884 | "safe-buffer": { 1885 | "version": "5.1.1", 1886 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 1887 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" 1888 | }, 1889 | "safer-buffer": { 1890 | "version": "2.1.2", 1891 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1892 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 1893 | "dev": true 1894 | }, 1895 | "semver": { 1896 | "version": "5.5.0", 1897 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", 1898 | "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", 1899 | "dev": true 1900 | }, 1901 | "setimmediate": { 1902 | "version": "1.0.5", 1903 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 1904 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", 1905 | "dev": true 1906 | }, 1907 | "shebang-command": { 1908 | "version": "1.2.0", 1909 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 1910 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 1911 | "dev": true, 1912 | "requires": { 1913 | "shebang-regex": "1.0.0" 1914 | } 1915 | }, 1916 | "shebang-regex": { 1917 | "version": "1.0.0", 1918 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 1919 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 1920 | "dev": true 1921 | }, 1922 | "signal-exit": { 1923 | "version": "3.0.2", 1924 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 1925 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 1926 | "dev": true 1927 | }, 1928 | "slice-ansi": { 1929 | "version": "1.0.0", 1930 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", 1931 | "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", 1932 | "dev": true, 1933 | "requires": { 1934 | "is-fullwidth-code-point": "2.0.0" 1935 | } 1936 | }, 1937 | "spdx-correct": { 1938 | "version": "3.0.0", 1939 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", 1940 | "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", 1941 | "dev": true, 1942 | "requires": { 1943 | "spdx-expression-parse": "3.0.0", 1944 | "spdx-license-ids": "3.0.0" 1945 | } 1946 | }, 1947 | "spdx-exceptions": { 1948 | "version": "2.1.0", 1949 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", 1950 | "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", 1951 | "dev": true 1952 | }, 1953 | "spdx-expression-parse": { 1954 | "version": "3.0.0", 1955 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", 1956 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", 1957 | "dev": true, 1958 | "requires": { 1959 | "spdx-exceptions": "2.1.0", 1960 | "spdx-license-ids": "3.0.0" 1961 | } 1962 | }, 1963 | "spdx-license-ids": { 1964 | "version": "3.0.0", 1965 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", 1966 | "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", 1967 | "dev": true 1968 | }, 1969 | "sprintf-js": { 1970 | "version": "1.0.3", 1971 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 1972 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 1973 | "dev": true 1974 | }, 1975 | "standard": { 1976 | "version": "11.0.1", 1977 | "resolved": "https://registry.npmjs.org/standard/-/standard-11.0.1.tgz", 1978 | "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", 1979 | "dev": true, 1980 | "requires": { 1981 | "eslint": "4.18.2", 1982 | "eslint-config-standard": "11.0.0", 1983 | "eslint-config-standard-jsx": "5.0.0", 1984 | "eslint-plugin-import": "2.9.0", 1985 | "eslint-plugin-node": "6.0.1", 1986 | "eslint-plugin-promise": "3.7.0", 1987 | "eslint-plugin-react": "7.7.0", 1988 | "eslint-plugin-standard": "3.0.1", 1989 | "standard-engine": "8.0.1" 1990 | } 1991 | }, 1992 | "standard-engine": { 1993 | "version": "8.0.1", 1994 | "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", 1995 | "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", 1996 | "dev": true, 1997 | "requires": { 1998 | "deglob": "2.1.0", 1999 | "get-stdin": "6.0.0", 2000 | "minimist": "1.2.0", 2001 | "pkg-conf": "2.1.0" 2002 | }, 2003 | "dependencies": { 2004 | "minimist": { 2005 | "version": "1.2.0", 2006 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 2007 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 2008 | "dev": true 2009 | } 2010 | } 2011 | }, 2012 | "string-width": { 2013 | "version": "2.1.1", 2014 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 2015 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 2016 | "dev": true, 2017 | "requires": { 2018 | "is-fullwidth-code-point": "2.0.0", 2019 | "strip-ansi": "4.0.0" 2020 | } 2021 | }, 2022 | "string_decoder": { 2023 | "version": "1.1.1", 2024 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 2025 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2026 | "dev": true, 2027 | "requires": { 2028 | "safe-buffer": "5.1.1" 2029 | } 2030 | }, 2031 | "strip-ansi": { 2032 | "version": "4.0.0", 2033 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 2034 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 2035 | "dev": true, 2036 | "requires": { 2037 | "ansi-regex": "3.0.0" 2038 | }, 2039 | "dependencies": { 2040 | "ansi-regex": { 2041 | "version": "3.0.0", 2042 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 2043 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 2044 | "dev": true 2045 | } 2046 | } 2047 | }, 2048 | "strip-bom": { 2049 | "version": "3.0.0", 2050 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 2051 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 2052 | "dev": true 2053 | }, 2054 | "strip-json-comments": { 2055 | "version": "2.0.1", 2056 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 2057 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 2058 | "dev": true 2059 | }, 2060 | "supports-color": { 2061 | "version": "5.4.0", 2062 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", 2063 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", 2064 | "dev": true, 2065 | "requires": { 2066 | "has-flag": "3.0.0" 2067 | } 2068 | }, 2069 | "table": { 2070 | "version": "4.0.2", 2071 | "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", 2072 | "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", 2073 | "dev": true, 2074 | "requires": { 2075 | "ajv": "5.5.2", 2076 | "ajv-keywords": "2.1.1", 2077 | "chalk": "2.4.1", 2078 | "lodash": "4.17.10", 2079 | "slice-ansi": "1.0.0", 2080 | "string-width": "2.1.1" 2081 | } 2082 | }, 2083 | "text-table": { 2084 | "version": "0.2.0", 2085 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 2086 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 2087 | "dev": true 2088 | }, 2089 | "through": { 2090 | "version": "2.3.8", 2091 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2092 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 2093 | "dev": true 2094 | }, 2095 | "timed-out": { 2096 | "version": "4.0.1", 2097 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", 2098 | "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" 2099 | }, 2100 | "tmp": { 2101 | "version": "0.0.33", 2102 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 2103 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 2104 | "dev": true, 2105 | "requires": { 2106 | "os-tmpdir": "1.0.2" 2107 | } 2108 | }, 2109 | "type-check": { 2110 | "version": "0.3.2", 2111 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 2112 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 2113 | "dev": true, 2114 | "requires": { 2115 | "prelude-ls": "1.1.2" 2116 | } 2117 | }, 2118 | "type-detect": { 2119 | "version": "1.0.0", 2120 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", 2121 | "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", 2122 | "dev": true 2123 | }, 2124 | "typedarray": { 2125 | "version": "0.0.6", 2126 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 2127 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 2128 | "dev": true 2129 | }, 2130 | "ua-parser-js": { 2131 | "version": "0.7.18", 2132 | "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", 2133 | "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==", 2134 | "dev": true 2135 | }, 2136 | "uniq": { 2137 | "version": "1.0.1", 2138 | "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", 2139 | "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", 2140 | "dev": true 2141 | }, 2142 | "unzip-response": { 2143 | "version": "2.0.1", 2144 | "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", 2145 | "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" 2146 | }, 2147 | "url-parse-lax": { 2148 | "version": "1.0.0", 2149 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", 2150 | "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", 2151 | "requires": { 2152 | "prepend-http": "1.0.4" 2153 | } 2154 | }, 2155 | "util-deprecate": { 2156 | "version": "1.0.2", 2157 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2158 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 2159 | "dev": true 2160 | }, 2161 | "validate-npm-package-license": { 2162 | "version": "3.0.3", 2163 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", 2164 | "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", 2165 | "dev": true, 2166 | "requires": { 2167 | "spdx-correct": "3.0.0", 2168 | "spdx-expression-parse": "3.0.0" 2169 | } 2170 | }, 2171 | "whatwg-fetch": { 2172 | "version": "2.0.4", 2173 | "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", 2174 | "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", 2175 | "dev": true 2176 | }, 2177 | "which": { 2178 | "version": "1.3.1", 2179 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 2180 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 2181 | "dev": true, 2182 | "requires": { 2183 | "isexe": "2.0.0" 2184 | } 2185 | }, 2186 | "wordwrap": { 2187 | "version": "1.0.0", 2188 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 2189 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 2190 | "dev": true 2191 | }, 2192 | "wrappy": { 2193 | "version": "1.0.2", 2194 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2195 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2196 | "dev": true 2197 | }, 2198 | "write": { 2199 | "version": "0.2.1", 2200 | "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", 2201 | "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", 2202 | "dev": true, 2203 | "requires": { 2204 | "mkdirp": "0.5.1" 2205 | } 2206 | }, 2207 | "xtend": { 2208 | "version": "4.0.1", 2209 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 2210 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 2211 | "dev": true 2212 | }, 2213 | "yallist": { 2214 | "version": "2.1.2", 2215 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 2216 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 2217 | "dev": true 2218 | } 2219 | } 2220 | } 2221 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "get-repo-package-json", 3 | "version": "2.0.0", 4 | "description": "Fetch a GitHub repository's package.json file using the GitHub API", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "mocha && standard --fix" 8 | }, 9 | "repository": "https://github.com/zeke/get-repo-package-json", 10 | "keywords": [ 11 | "package.json", 12 | "github", 13 | "api", 14 | "repository", 15 | "metadata", 16 | "npm" 17 | ], 18 | "author": "Zeke Sikelianos (http://zeke.sikelianos.com)", 19 | "license": "MIT", 20 | "devDependencies": { 21 | "chai": "^3.5.0", 22 | "mocha": "^5.2.0", 23 | "nock": "^9.3.1", 24 | "require-dir": "^0.3.0", 25 | "standard": "^11.0.1" 26 | }, 27 | "dependencies": { 28 | "github-url-to-object": "^2.2.3", 29 | "got": "^6.3.0" 30 | }, 31 | "standard": { 32 | "env": { 33 | "mocha": true 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # get-repo-package-json 2 | 3 | Fetch a GitHub repository's package.json file using the GitHub API 4 | 5 | ## Installation 6 | 7 | ```sh 8 | npm install get-repo-package-json --save 9 | ``` 10 | 11 | ## Usage 12 | 13 | The basics: 14 | 15 | ```js 16 | const getPackage = require('get-repo-package-json') 17 | 18 | getPackage('segmentio/nightmare').then(pkg => { console.log(pkg) }) 19 | ``` 20 | 21 | To fetch a specific commit/branch/tag, use a long-form URL: 22 | 23 | ```js 24 | await getPackage('https://github.com/monkey/business/tree/experiment') 25 | ``` 26 | 27 | Or specify a `ref` option: 28 | 29 | ```js 30 | await getPackage('monkey/business', {ref: '0e783153885ed78f71d138085a77644ff8e59aa1'}) 31 | ``` 32 | 33 | To see more supported repository string formats, see the 34 | [github-url-to-object](https://zeke.github.io/github-url-to-object/) demo. 35 | 36 | ## API 37 | 38 | This package exports a single function that returns a promise. 39 | 40 | ### `getPackage(repository, [options])` 41 | 42 | - `repository` (string) - Any string supported by 43 | [github-url-to-object](https://zeke.github.io/github-url-to-object/). 44 | - `options` (optional object) 45 | - `access_token` - GitHub API key. Can also be set as a `GITHUB_ACCESS_TOKEN` environment variable. 46 | - `ref` - The name of the commit/branch/tag. Defaults to nothing, so the GitHub API will return the repo's default branch. 47 | 48 | ## Tests 49 | 50 | ```sh 51 | npm install 52 | npm test 53 | ``` 54 | 55 | ## License 56 | 57 | MIT -------------------------------------------------------------------------------- /test/fixtures/nightmare.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "package.json", 3 | "path": "package.json", 4 | "sha": "9e963f8f6f67ae831a1303e2ec7417f7bb8a7575", 5 | "size": 1143, 6 | "url": "https://api.github.com/repos/segmentio/nightmare/contents/package.json?ref=master", 7 | "html_url": "https://github.com/segmentio/nightmare/blob/master/package.json", 8 | "git_url": "https://api.github.com/repos/segmentio/nightmare/git/blobs/9e963f8f6f67ae831a1303e2ec7417f7bb8a7575", 9 | "download_url": "https://raw.githubusercontent.com/segmentio/nightmare/master/package.json", 10 | "type": "file", 11 | "content": "ewogICJuYW1lIjogIm5pZ2h0bWFyZSIsCiAgInZlcnNpb24iOiAiMi42LjAi\nLAogICJsaWNlbnNlIjogIk1JVCIsCiAgIm1haW4iOiAibGliL25pZ2h0bWFy\nZS5qcyIsCiAgInNjcmlwdHMiOiB7CiAgICAidGVzdCI6ICJtYWtlIHRlc3Qi\nCiAgfSwKICAicmVwb3NpdG9yeSI6IHsKICAgICJ0eXBlIjogImdpdCIsCiAg\nICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZWdtZW50aW8vbmlnaHRt\nYXJlLmdpdCIKICB9LAogICJhdXRob3IiOiAiU2VnbWVudCIsCiAgImtleXdv\ncmRzIjogWwogICAgIm5pZ2h0bWFyZSIsCiAgICAiZWxlY3Ryb24iCiAgXSwK\nICAiZGVzY3JpcHRpb24iOiAiQSBoaWdoLWxldmVsIGJyb3dzZXIgYXV0b21h\ndGlvbiBsaWJyYXJ5LiIsCiAgImRlcGVuZGVuY2llcyI6IHsKICAgICJkZWJ1\nZyI6ICJeMi4yLjAiLAogICAgImRlZXAtZGVmYXVsdHMiOiAiXjEuMC4zIiwK\nICAgICJkZWZhdWx0cyI6ICJeMS4wLjIiLAogICAgImVsZWN0cm9uLXByZWJ1\naWx0IjogIl4xLjIuNSIsCiAgICAiZW5xdWV1ZSI6ICJeMS4wLjIiLAogICAg\nImZ1bmN0aW9uLXNvdXJjZSI6ICJeMC4xLjAiLAogICAgImpzZXNjIjogIl4w\nLjUuMCIsCiAgICAibWluc3RhY2hlIjogIl4xLjIuMCIsCiAgICAibWtkaXJw\nIjogIl4wLjUuMSIsCiAgICAib2JqZWN0LWFzc2lnbiI6ICJeNC4wLjEiLAog\nICAgIm9uY2UiOiAiXjEuMy4zIiwKICAgICJyaW1yYWYiOiAiXjIuNC4zIiwK\nICAgICJzbGljZWQiOiAiMS4wLjEiLAogICAgInNwbGl0MiI6ICJeMi4wLjEi\nCiAgfSwKICAiZGV2RGVwZW5kZW5jaWVzIjogewogICAgImJhc2ljLWF1dGgi\nOiAiXjEuMC4zIiwKICAgICJiYXNpYy1hdXRoLWNvbm5lY3QiOiAiXjEuMC4w\nIiwKICAgICJjaGFpIjogIl4zLjQuMSIsCiAgICAiY2hhaS1hcy1wcm9taXNl\nZCI6ICJeNS4zLjAiLAogICAgImV4cHJlc3MiOiAiXjQuMTMuMyIsCiAgICAi\nbW9jaGEiOiAiXjIuMy4wIiwKICAgICJtb2NoYS1nZW5lcmF0b3JzIjogIl4x\nLjIuMCIsCiAgICAibXVsdGVyIjogIjEuMS4wIiwKICAgICJwbmdqcyI6ICJe\nMi4yLjAiLAogICAgInNlcnZlLXN0YXRpYyI6ICJeMS4xMC4wIiwKICAgICJz\ncGxpdCI6ICJeMS4wLjAiCiAgfSwKICAiZW5naW5lcyI6IHsKICAgICJub2Rl\nIjoiPj00LjAuMCIKICB9Cn0K\n", 12 | "encoding": "base64", 13 | "_links": { 14 | "self": "https://api.github.com/repos/segmentio/nightmare/contents/package.json?ref=master", 15 | "git": "https://api.github.com/repos/segmentio/nightmare/git/blobs/9e963f8f6f67ae831a1303e2ec7417f7bb8a7575", 16 | "html": "https://github.com/segmentio/nightmare/blob/master/package.json" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /test/index.js: -------------------------------------------------------------------------------- 1 | const expect = require('chai').expect 2 | const nock = require('nock') 3 | const getPackage = require('..') 4 | const fixtures = require('require-dir')('./fixtures') 5 | const api = function (path) { 6 | return nock('https://api.github.com').get(path).once() 7 | } 8 | 9 | nock.disableNetConnect() 10 | 11 | describe('getPackage', () => { 12 | it('gets a package.json', async () => { 13 | let mock = api('/repos/segmentio/nightmare/contents/package.json') 14 | .reply(200, fixtures.nightmare) 15 | 16 | const pkg = await getPackage('segmentio/nightmare') 17 | expect(pkg).to.be.an('object') 18 | expect(pkg.name).to.be.a('string') 19 | expect(pkg.dependencies).to.be.an('object') 20 | expect(mock.isDone()).to.equal(true) 21 | }) 22 | 23 | it('detects GitHub `access_token` option and adds it as a query param', async () => { 24 | let mock = api('/repos/segmentio/nightmare/contents/package.json') 25 | .query({access_token: 'abc'}) 26 | .reply(200, fixtures.nightmare) 27 | 28 | await getPackage('segmentio/nightmare', {access_token: 'abc'}) 29 | expect(mock.isDone()).to.equal(true) 30 | }) 31 | 32 | it('detects process.env.GITHUB_ACCESS_TOKEN and adds it as a query param', async () => { 33 | process.env.GITHUB_ACCESS_TOKEN = 'xyz' 34 | let mock = api('/repos/segmentio/nightmare/contents/package.json') 35 | .query({access_token: 'xyz'}) 36 | .reply(200, fixtures.nightmare) 37 | 38 | await getPackage('segmentio/nightmare') 39 | expect(mock.isDone()).to.equal(true) 40 | delete process.env.GITHUB_ACCESS_TOKEN 41 | }) 42 | 43 | it('allows a custom commit/branch/tag using the `ref` option', async () => { 44 | let mock = api('/repos/segmentio/nightmare/contents/package.json') 45 | .query({ref: 'experimental-branch'}) 46 | .reply(200, fixtures.nightmare) 47 | 48 | await getPackage('segmentio/nightmare', {ref: 'experimental-branch'}) 49 | expect(mock.isDone()).to.equal(true) 50 | }) 51 | 52 | it('infers commit ref from a long URL', async () => { 53 | let mock = api('/repos/monkey/business/contents/package.json') 54 | .query({ref: 'experiment'}) 55 | .reply(200, fixtures.nightmare) 56 | await getPackage('https://github.com/monkey/business/tree/experiment') 57 | expect(mock.isDone()).to.equal(true) 58 | }) 59 | }) 60 | --------------------------------------------------------------------------------